CClipWidget 提供類似「錄製巨集」的功能:定義在 init 和 run 之間的內容可存放在控制器的 Clip 變數中,隨後在任意位置重播。
CClipWidget 封裝的是 CBaseController 的 beginClip 和 endClip。基本用法:
$this->beginClip('clipID');
// ... 顯示片段內容
$this->endClip();
需使用時:
echo $this->clips['clipID'];
若 $this 指向 Widget 而非控制器:
echo $this->getController()->clips['clipID'];
<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 -->
透過 beginWidget 和 endWidget 定義片段,ID 由參數 id 傳入。接著可在需要處呼叫 echo $this->clips['record'] 顯示錄製內容。範例顯示三行文字。

範例下載:ClipWidgetDemo.zip