public function actionIndex() { // $category = Category::model()->findByPk(5); // $childs = $category->descendants()->findAll(); // foreach ($childs as $c) // $ids[] = $c->id; // $ids_string = implode(',', $ids); // $criteria = new CDbCriteria(array( // 'condition' => 'status=' . Post::STATUS_PUBLISHED .' AND category_id in ('.$ids_string.')', // 'order' => 'create_time DESC', // 'with' => 'commentCount', // )); // if (isset($_GET['tag'])) // $criteria->addSearchCondition('tags', $_GET['tag']); $search = \Yii::$app->request->get('tag'); $catgegories = Tree::findOne(['name' => '单页分类']); $children = $catgegories->children()->all(); foreach ($children as $c) { $ids[] = $c->id; } $ids_string = implode(',', $ids); $dataProvider = new ActiveDataProvider(['query' => !empty($search) ? Post::find()->where('category_id not in (' . $ids_string . ')')->orderBy('id desc')->andWhere(['like', 'tags', $search]) : Post::find()->where('category_id not in (' . $ids_string . ')')->orderBy('id desc'), 'pagination' => ['pageSize' => 20]]); // $dataProvider = new ActiveDataProvider('Post', array( // 'pagination' => array( // 'pageSize' => Yii::app()->params['postsPerPage'], // ), // 'criteria' => $criteria, // )); return $this->render('index', array('dataProvider' => $dataProvider)); }
public function actionList() { $catalog = Yii::$app->request->get('catalog'); $items = Item::getItemsByCategory($catalog); $categories = Tree::getCategoriesById($catalog); if ($items && $categories) { $pages = new Pagination(['totalCount' => $items->count(), 'pageSize' => '3']); $items = $items->offset($pages->offset)->limit($pages->limit)->all(); if ($items) { return $this->render('list', ['currentCategory' => Tree::findOne(['id' => $catalog]), 'categories' => $categories, 'items' => $items, 'pages' => $pages]); } } return $this->render('//site/error', ['name' => 'catalog', 'message' => 'There is no product']); }
public static function getItemsByCategory($id) { $treeNodes = Tree::getTreesById($id); //category has children if ($treeNodes) { $categories = '('; foreach ($treeNodes as $key => $treeNode) { $categories = $categories . $key . ','; } $categories = substr($categories, 0, strlen($categories) - 1) . ')'; $items = static::find()->where('category_id in ' . $categories); } else { $tree = Tree::findOne(['id' => $id]); if ($tree) { $items = static::find()->where(['category_id' => $tree->id]); } else { return false; } } return $items; }