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 static function getSalesOrderBy($categoryId = '') { $where = ''; if ($categoryId) { $items = Tree::find()->where(['tree_id' => $categoryId])->all(); $itemIds = ArrayHelper::getColumn($items, 'item_id'); $where = ' where item_id in (' . implode(',', $itemIds) . ') '; } $sql = 'SELECT name, count(item_id) as count FROM `order_item` ' . $where . ' group by item_id order by count desc'; return Yii::$app->db->createCommand($sql)->queryAll(); }
public static function getTreesById($id) { /** @var \star\system\models\Tree|\creocoder\nestedsets\NestedSetsBehavior $root */ $root = static::find()->where(['id' => $id])->one(); if ($root) { $categories = Tree::find()->where('lft >= ' . $root->lft . ' and rgt <= ' . $root->rgt . ' and root = ' . $root->root . ' order by id desc')->indexBy('id')->all(); return array_map(function ($cate) use($root) { return $cate->name; }, $categories); } else { return false; } }
public function actionList() { $catalog = Yii::$app->request->get('catalog'); $item = Yii::createObject(Item::className()); $items = $item::getItemsByCategory($catalog)->andWhere(['is_show' => 1]); $tree = Yii::createObject(Tree::className()); $categories = $tree::getCategoriesById($catalog); if ($items && $categories) { $pages = new Pagination(['totalCount' => $items->count(), 'pageSize' => '24']); $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' => Yii::t('catalog', 'There is no product')]); }
<!--</figure>--> <!--</div>--> <hr class="divider_type_3 m_bottom_15"> <a href="category_grid.html" role="button" class="d_inline_b bg_light_color_2 color_dark tr_all_hover button_type_4 r_corners"><i class="fa fa-reply m_left_5 m_right_10 f_size_large"></i>Back to: Woman</a> </section> <!--right column--> <aside class="col-lg-3 col-md-3 col-sm-3"> <figure class="widget shadow r_corners wrapper m_bottom_30"> <figcaption> <h3 class="color_light">Categories</h3> </figcaption> <div class="widget_content"> <!--Categories list--> <ul class="categories_list"> <?php $tree = Tree::find()->where(['name' => '商品分类'])->one(); $childrenTags = $tree->children('1')->all(); foreach ($childrenTags as $childrenTag) { $secondChildren = $childrenTag->children('1')->all(); ?> <li> <a href="#" class="f_size_large color_dark d_block relative"> <b><?php echo $childrenTag->name; ?> </b> <span class="bg_light_color_1 r_corners f_right color_dark talign_c"></span> </a> <?php if ($secondChildren) { ?>
/** * @return \yii\db\ActiveQuery */ public function getCategory() { return $this->hasOne(Tree::className(), ['id' => 'category_id']); }
/* @var $this yii\web\View */ /* @var $model star\catalog\models\ItemProp */ /* @var $form yii\widgets\ActiveForm */ list($path, $url) = Yii::$app->assetManager->publish('@star/catalog/assets'); $this->registerJsFile($url . '/js/dynoTable.js', ['depends' => [\core\assets\AppAsset::className()]]); ?> <div class="content-body"> <div class="row"> <div class="col-md-12 col-sm-12 col-xs-12"> <?php $form = ActiveForm::begin(); ?> <?php echo $form->field($model, 'category_id')->dropDownList(Tree::getTreesByName('商品分类')); ?> <?php echo $form->field($model, 'prop_name')->textInput(['maxlength' => 100]); ?> <?php echo $form->field($model, 'prop_alias')->textInput(['maxlength' => 100]); ?> <?php echo $form->field($model, 'type')->radioList(['1' => '文本框', '2' => '下拉列表', '3' => '多选']); ?> <?php
$fields[] = $form->field($model, 'language')->dropDownList(ArrayHelper::map($language, 'language_id', 'name')); $fieldGroups[] = ['label' => Yii::t('catalog', 'Base Info'), 'content' => implode('', $fields)]; $fields = []; $fields[] = $form->field($model, 'desc')->widget(CKEditor::className(), ['editorOptions' => ['filebrowserBrowseUrl' => Url::to(['/elfinder/manager', 'filter' => 'image'])]]); $fieldGroups[] = ['label' => Yii::t('catalog', 'Detailed Info'), 'content' => implode('', $fields)]; $fields = []; $fields[] = $form->field($model, 'shipping_fee')->textInput(['maxlength' => 255]); $fields[] = $form->field($model, 'is_show')->radioList(['No', 'Yes']); $fields[] = $form->field($model, 'is_promote')->radioList(['No', 'Yes']); $fields[] = $form->field($model, 'is_new')->radioList(['No', 'Yes']); $fields[] = $form->field($model, 'is_hot')->radioList(['No', 'Yes']); $fields[] = $form->field($model, 'is_best')->radioList(['No', 'Yes']); $fieldGroups[] = ['label' => Yii::t('catalog', 'Other Info'), 'content' => implode('', $fields)]; $fields = []; $fields[] = $form->field($model, 'category_id')->dropDownList(Tree::getTreesByName('商品分类'), ['data-url' => Url::to(['/catalog/core/item/item-props']), 'data-item_id' => $model->item_id, 'data-tree_id' => $model->category_id ? $model->category_id : key(Tree::getTreesByName('商品分类'))]); $fields[] = $this->render('_form_prop', ['model' => $model, 'tree_id' => $model->category_id ? $model->category_id : key(Tree::getTreesByName('商品分类'))]); $fieldGroups[] = ['label' => Yii::t('catalog', 'Product Info'), 'content' => implode('', $fields)]; $fields = []; if ($model->isNewRecord) { $fields[] = $form->field($model, 'images[]')->widget(FileInput::classname(), ['options' => ['accept' => 'image/*', 'multiple' => true], 'pluginOptions' => ['allowedFileExtensions' => ['jpg', 'gif', 'png']]]); } else { $itemImages = $model->itemImgs; $initialPreview = $initialPreviewConfig = []; foreach ($itemImages as $itemImage) { $initialPreview[] = "<img src='" . Yii::$app->params['imageDomain'] . '/' . $itemImage->pic . "' class='file-preview-image'>"; $initialPreviewConfig[] = ['caption' => $itemImage->title, 'url' => Url::to(['/catalog/core/item-img/delete', 'id' => $itemImage->img_id])]; } $fields[] = $form->field($model, 'images[]')->label(Yii::t('catalog', 'Image(If update,Please upload first)'))->widget(FileInput::classname(), ['language' => 'zh', 'options' => ['accept' => 'image/*', 'multiple' => true], 'pluginOptions' => ['initialPreview' => $initialPreview, 'initialPreviewConfig' => $initialPreviewConfig, 'overwriteInitial' => false, 'uploadUrl' => Url::to(['/catalog/core/item-img/create']), 'uploadExtraData' => ['item_id' => $model->item_id, 'position' => count($itemImages)], 'maxFileCount' => 10, 'allowedFileExtensions' => ['jpg', 'gif', 'png']]]); } $fieldGroups[] = ['label' => Yii::t('catalog', 'Product Image'), 'content' => implode('', $fields)]; echo Tabs::widget(['items' => $fieldGroups]);
public function actions() { return ['nodeChildren' => ['class' => 'gilek\\gtreetable\\actions\\NodeChildrenAction', 'treeModelName' => Tree::className()], 'nodeCreate' => ['class' => 'gilek\\gtreetable\\actions\\NodeCreateAction', 'treeModelName' => Tree::className()], 'nodeUpdate' => ['class' => 'gilek\\gtreetable\\actions\\NodeUpdateAction', 'treeModelName' => Tree::className()], 'nodeDelete' => ['class' => 'gilek\\gtreetable\\actions\\NodeDeleteAction', 'treeModelName' => Tree::className()], 'nodeMove' => ['class' => 'gilek\\gtreetable\\actions\\NodeMoveAction', 'treeModelName' => Tree::className()]]; }
<span class="centered_db r_corners"></span> </button> <!--main menu--> <nav role="navigation" class="f_left f_xs_none d_xs_none"> <ul class="horizontal_list main_menu clearfix"> <li class="<?php echo Yii::$app->request->get('catalog') || Yii::$app->request->get('tab') ? '' : 'current'; ?> relative f_xs_none m_xs_bottom_5"> <a href="<?php echo Url::to(['/']); ?> " class="tr_delay_hover color_light tt_uppercase"><b>首页</b></a> </li> <?php $root = \star\system\models\Tree::find()->where(['name' => '商品分类'])->one(); if ($root) { $categories = $root->children(1)->indexBy('id')->limit(5)->all(); if ($categories) { foreach ($categories as $category) { ?> <li class="<?php echo Yii::$app->request->get('catalog') == $category->id ? 'current' : ''; ?> relative f_xs_none m_xs_bottom_5"> <a href="<?php echo Url::to(['/catalog/home/item/list', 'catalog' => $category->id]); ?> " class="tr_delay_hover color_light tt_uppercase"><b><?php echo $category->name; ?>
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; }