You are viewing revision #4 of this wiki article.
This version may not be up to date with the latest version.
You may want to view the differences to the latest version or see the changes made in this revision.
Here is a way to dynamically extend tabs based on clips.
Probably even more complex things could be done.
<?php $this->beginWidget('system.web.widgets.CClipWidget', array('id'=>'My tab 1')); ?>
My tab 1 ...
<?php $this->endWidget(); ?>
<?php $this->beginWidget('system.web.widgets.CClipWidget', array('id'=>'My tab 2')); ?>
My tab 2 ...
<?php $this->endWidget(); ?>
<?php $this->beginWidget('system.web.widgets.CClipWidget', array('id'=>'My tab 3')); ?>
My tab 3 ...
<?php $this->endWidget(); ?>
<?php
$tabParameters = array();
foreach($this->clips as $key=>$clip)
$tabParameters['tab'.(count($tabParameters)+1)] = array('title'=>$key, 'content'=>$clip);
?>
<?php $this->widget('system.web.widgets.CTabView', array('tabs'=>$tabParameters)); ?>
Another way of doing this...
I use tabs extensively in the admin module and was looking for something like this... Initially I didn't know about CClipWidget and hence implemented this using ob_start() and ob_get_clean(), but this is a much better solution. The only thing I would say is that these days you should be using CJuiTabs. If you have some tabs that use ajax you may also consider setting the tabs for the CJuiTabs manually rather than using a foreach loop as it's more trouble than it's worth.
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.