Olá, brazucas!
Eu cansei de procurar nesse fórum, mas não encontrei nada sobre ativar uma tab específica quando carregar a página. Tem uma extensão que não consegui fazer funcionar e as jQuery tabs da Jui, mas nada muito prático.
Fuçando um pouco mais, consegui fazer isso modificando um pouco a dica do CClipWidget:
<?php $this->beginWidget('system.web.widgets.CClipWidget', array('id'=>'Tab1')); $ativarTab='tab3'; ?>
Conteúdo da Tab1 aqui
<?php $this->endWidget(); ?>
<?php $this->beginWidget('system.web.widgets.CClipWidget', array('id'=>'Tab2')); ?>
Conteúdo da Tab 2
<?php $this->endWidget(); ?>
<?php $this->beginWidget('system.web.widgets.CClipWidget', array('id'=>'My tab 3')); ?>
Conteúdo da tab 3 …
<?php $this->endWidget(); ?>
<?php
$tabParameters = array();
foreach($this->clips as $key=>$clip)
$tabParameters['tab'.(count($tabParameters)+1)] = array('title'=>$key, 'content'=>$clip, 'id'=>'tab'.(count($tabParameters)+1));
?>
<?php $this->widget('system.web.widgets.CTabView', array('tabs'=>$tabParameters,'activeTab'=>$activeTab)); ?>
O segredo está aqui, atribuir o ID para as tabs dinamicamente
$tabParameters = array();
foreach($this->clips as $key=>$clip)
$tabParameters['tab'.(count($tabParameters)+1)] = array('title'=>$key, 'content'=>$clip, 'id'=>'tab'.(count($tabParameters)+1));
E depois passar o ID da tab a ser ativada por uma variável como abaixo:
<?php $this->widget('system.web.widgets.CTabView', array('tabs'=>$tabParameters,'activeTab'=>$ativarTab)); ?>
Óbvio que a variável $ativarTab deve ser passada de alguma forma e não setada no início do script como eu fiz no exemplo…mas isto já é um começo…
Se alguém tiver uma solução mais elegante, por favor, compartilhe aqui para que possamos dar uma solução definitiva para este problema que, tenho certeza de que muitos iniciantes na framework como eu vão enfrentar…
Abraços!!!