CClipWidget 提供了類似錄制“宏”的功能,定義在 CClipWidget 的 init 和 run 之間的內(nèi)容可以存放在 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 的方法如下,
<div 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']; ?>
</div><!-- form -->
首先也是定義 Clip,這是通過 beginWidget 和 endWidget 來定義,clip 的 ID 由參數(shù) id 傳入。然后就可以調(diào)用 echo $this->clips[‘record’]; 在需要的地方顯示這段錄制的內(nèi)容。beginWidget 和 endWidget 之間的內(nèi)容可以根據(jù)需要自定義,本例顯示三行文字。 顯示結果如下:
http://wiki.jikexueyuan.com/project/yii-development-tutorial/images/12.1.jpg" alt="picture12.1" />
本例下載