public function actionTagPages($tag_name) { $tag = Tag::model()->findByAttributes(['name' => $tag_name]); if (!$tag) { $this->pageNotFound(); } $this->page_title = t('Страницы с тегом') . ' ' . $tag->name; $tag_rel_table = TagRel::model()->tableName(); $criteria = new CDbCriteria(); $criteria->compare('t.status', Page::STATUS_PUBLISHED); $criteria->with = ['tags', 'sections']; $criteria->addCondition("t.id IN (\r\n SELECT object_id FROM {$tag_rel_table}\r\n WHERE tag_id = {$tag->id} AND\r\n model_id = 'Page'\r\n )"); $data_provider = new CActiveDataProvider('Page', ['criteria' => $criteria, 'pagination' => ['pageSize' => '10']]); $this->render('index', ['data_provider' => $data_provider, 'tag' => $tag]); }
public function _deleteRels($exclude_ids) { $criteria = new CDbCriteria(['condition' => 'model_id=:model_id AND object_id=:object_id', 'params' => ['object_id' => $this->owner->id, 'model_id' => get_class($this->owner)]]); $criteria->addNotInCondition('tag_id', $exclude_ids); TagRel::model()->deleteAll($criteria); }
public function _deleteRels() { TagRel::model()->deleteAll("object_id = '{$this->owner->id}' AND model_id = '" . get_class($this->owner) . "'"); }