Hay casos en que las vistas muy voluminosas tardan en cargarse, y mientras eso sucede el sitio web se ve horrible, sin formato, luego de unos segundos aparece el maravilloso jQueryUi.tabs (manejado en Yii mediante CJuiTabs).
El truco: Ocultar el componente y mostrarlo cuando el html completo termine de cargarse.
Hay que crear el componente jQuery.tabs() con CJuiTabs pasandole un estilo CSS de ocultación inicial (display: none;) eso causara que no se vea...hasta que le digamos que se vea.
Cuando le diremos que se vea ?
cuando el html cargue completo.
Cuando sabemos eso ? mediante otra belleza de Yii: el CClientScript, al cual le pediremos que inserte un script javascript al final cuando la página haya finalizado de cargarse usando la opción: CClientScript::POS_LOAD
- <?php
- $this->widget('zii.widgets.jui.CJuiTabs',array(
- 'id'=>'article_tab',
- 'htmlOptions'=>array('style'=>'display: none;'), // INVISIBLE..
- 'tabs'=>array(
- 'Datos del Articulo'=>$this->renderPartial('_form',
- array('model'=>$model),true),
- 'Imagenes'=>$this->renderPartial('_form-images',
- array('model'=>$model),true),
- 'Opciones'=>$this->renderPartial('_form-options',
- array('model'=>$model),true),
- 'Stock'=>$this->renderPartial('_form-stock',
- array('model'=>$model),true),
- ),
- 'options'=>array(
- 'collapsible'=>false,
- 'cookie'=>9000,
- ),
- ));
- // VISIBLE solo cuando cargue todo..
- Yii::app()->getClientScript()->registerScript("articletab", // un ID unico tambien
- "$('#article_tab').show();" ,CClientScript::POS_LOAD); // el ID del tab
Hola,
ResponderEliminarMe parece un artículo interesante pero yo me he encontrado con un problema al trabajar con las CJuiTabs y es que no soy capaz de modificar el title de cada tab o bien aparece el dichoso "yw0_tab_0" o con el "{id}". ¿Sabes como cambiarlo?
Un saludo,
https://github.com/yiisoft/yii/issues/1805
Eliminaral momento de configurar el widget debes crearle un id a cada tab
Eliminar$this->widget('zii.widgets.jui.CJuiTabs', array(
'tabs'=>array(
'StaticTab 1'=>'Content for tab 1',
'StaticTab 2'=>array('content'=>'Content for tab 2', 'id'=>'MITABNOMBRE'),
),
// additional javascript options for the tabs plugin
'options'=>array(
'collapsible'=>true,
),
));
Hola Javier, si aun no lo has solucionado, debe agregar la siguiente opción
ResponderEliminardentro de la configuración del widget:
https://github.com/yiisoft/yii/issues/1805