CClipWidget提供了類似錄制“宏”的功能,定義在CClipWidget的init和run之間的內容可以存放在Controller的Clip變量中 ,然後重新回放到任意其它位置。
CClipWidget封裝的是CBaseController的beginClip和 endClip,CBaseController的 beginClip和 endClip的基本用法如下:
首先定義Clip
$this->beginClip('clipID'); // ... display the clip contents $this->endClip();
然後再需要使用這個Clip的地方
echo $this->clips['clipID'];
如 果$this 指向的不是Controller,而是某個Widget,可以使用
echo $this->getController()->clips ['clipID'];
使用ClipWidget 的方法如下,
<center class="form"> <?php $form=$this->beginWidget('CClipWidget', array('id'=>'record')); ?> <?php echo 'This is first line'; ?> <br /> <?php echo 'This is second line'; ?> <br /> <?php echo 'This is third line'; ?> <?php $this->endWidget(); ?> <?php echo $this->clips['record']; ?> <p>-----------</p> <?php echo $this->clips['record']; ?> </center><!-- form -->
首先也是定義Clip,這是通過beginWidget 和 endWidget 來定義,clip 的ID由參 數id 傳入。然後就可以調用echo $this->clips['record']; 在需要的地方顯示這段錄制的內容。beginWidget 和 endWidget之間的內容可以根據需要自定義,本例顯示三行文字。
顯示結果如下:
本例下載:http://www.imobilebbs.com/download/yii/ClipWidgetDemo.zip