Код: Выделить всё
public function actionSearch()
{
if(isset($_GET['q'])&&(trim($_GET['q']) !== '')) {
$searchCriteria = new stdClass();
$posts_paginator = new CPagination();
$posts_paginator->pageSize = Yii::app()->params['postsPerPage'];
$searchCriteria->select = 'id';
$searchCriteria->query = htmlspecialchars($_GET['q']);
$searchCriteria->paginator = $posts_paginator;
$searchCriteria->from = 'postIndex';
$resArray = Yii::App()->search->searchRaw($searchCriteria);
$finded = array();
foreach($resArray['matches'] as $key=>$somefinded) {
$finded[] = $key;
}
if (count($finded) > 0) {
$findedPosts = implode(',',$finded);
}
}
if (isset($findedPosts)) {
$criteria=new CDbCriteria(array(
'condition'=>'status='.Post::STATUS_PUBLISHED. ' AND id in ('.$findedPosts.')',
'order'=>'update_time DESC',
'with'=>'commentCount',
));
} else {
$criteria=new CDbCriteria(array(
'condition'=>'status='.Post::STATUS_PUBLISHED.' AND id=0', # always not found
));
}
if(isset($_GET['tag']))
$criteria->addSearchCondition('tags',$_GET['tag']);
$dataProvider=new CActiveDataProvider('Post', array(
'pagination'=>array(
'pageSize'=>Yii::app()->params['postsPerPage'],
),
'criteria'=>$criteria,
));
$this->render('index',array(
'dataProvider'=>$dataProvider
));
}