Buenas, soy bastante newbie en Yii y he estado siguiendo el tutorial para crear un blog. Estoy tratando de mejorarlo con funciones que a mi parecer son necesarias. Una de ellas se trata de crear una sección de noticias destacadas en una vista renderizando primeramente las noticias destacadas para que queden por encima y después todas las noticias (destacadas y no destacadas). Para ello uso un solo modelo llamado Post (ambos cogen informacion de una tabla tbl_post) pero necesito dos $dataProvider’s diferentes debido a que en el $dataProviderDestacado marco un limite de items, quito la paginación y en general digamos que modifico algo la variable $criteria.
Las dos vistas se renderizan pero parece que se rompe algo de código y no se me codifica como debería dando problemas con los accentos a parte de que mi sección "destacados" no segue el mismo layout que las notícias.
Esta es la acción de mi actionIndex() (donde quiero mostrar destacados y las noticias):
$criteriaPost=new CDbCriteria(array(
'condition'=>'status='.Post::STATUS_PUBLICADO,
'order'=>'update_time DESC',
'with'=>'commentCount',
));
if(isset($_GET['tag']))
$criteria->addSearchCondition('tags',$_GET['tag']);
$dataProviderPost=new CActiveDataProvider('Post', array(
'pagination'=>array(
'pageSize'=>5,
),
'criteria'=>$criteriaPost,
));
$criteriaDestacados=new CDbCriteria(array(
'condition'=>'status='.Post::STATUS_PUBLICADO,
'order'=>'update_time DESC',
'with'=>'commentCount',
'offset' => 0,
'limit'=>6,
));
if(isset($_GET['tag']))
$criteria->addSearchCondition('tags',$_GET['tag']);
$dataProviderDestacados=new CActiveDataProvider('Post', array(
'pagination' => false,
'criteria'=>$criteriaDestacados,
));
$this->pageTitle = "SVGA - Noticias"; // It could be something from DB or...whatever
$this->renderPartial('destacados',array(
'dataProvider1'=>$dataProviderDestacados,
));
$this->render('index',array(
'dataProvider2'=>$dataProviderPost,
));
}
El index.php:
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider2,
'itemView'=>'_view',
'sortableAttributes'=>array(
'title',
'create_time'=>'Fecha',
),
));
?>
Y el destacado.php:
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider1,
'summaryText'=>'',
'itemView'=>'_destacadosview',
));
?>
Espero que me podáis ayudar, gracias!