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 \common\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'); $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']); }
$form = ActiveForm::begin(); $fieldGroups = []; $fields = []; $stations = \core\models\Station::findAll(['enabled' => 1]); $stationArray = ArrayHelper::map($stations, 'id', 'name'); $fields[] = $form->field($model, 'star_id')->dropDownList($stationArray); $fields[] = $form->field($model, 'total')->textInput(['maxlength' => true]); $fields[] = $form->field($model, 'desc')->textarea(['maxlength' => true]); $fields[] = $form->field($model, 'status')->dropDownList([1 => '是', 0 => '否']); $fields[] = $form->field($model, 'start_at')->widget(DateTimePicker::className(), ['options' => ['value' => $start_at], 'pluginOptions' => ['language' => 'zh-CN', 'autoclose' => true]]); $fields[] = $form->field($model, 'end_at')->widget(DateTimePicker::className(), ['options' => ['value' => $end_at], 'pluginOptions' => ['language' => 'zh-CN', 'autoclose' => true]]); $fieldGroups[] = ['label' => Yii::t('marketing', 'Coupon Info'), 'content' => implode('', $fields)]; $fields = []; $fields[] = $form->field($model, 'total_price')->textInput(['maxlength' => true]); $fields[] = $form->field($model, 'qty')->textInput(['maxlength' => true]); $root = \common\models\Tree::find()->where(['name' => '商品分类'])->one(); $categories = $root->children(1)->all(); $categories = ArrayHelper::map($categories, 'id', 'name'); $fields[] = $form->field($model, 'category_id')->widget(Select2::classname(), ['data' => $categories, 'language' => 'en', 'pluginOptions' => ['placeholder' => 'Select a state ...'], 'options' => ['multiple' => true]]); $fieldGroups[] = ['label' => Yii::t('marketing', 'Coupon Conditions'), 'content' => implode('', $fields)]; $fields = []; $fields[] = $form->field($model, 'type')->dropDownList([0 => '满减', 1 => '打折']); $fields[] = $form->field($model, 'number')->textInput(['maxlength' => true]); $fields[] = $form->field($model, 'shipping')->dropDownList([0 => '邮费不变', 1 => '减邮费', 2 => '包邮']); $fields[] = $form->field($model, 'shippingFee')->textInput(['maxlength' => true]); $fieldGroups[] = ['label' => Yii::t('marketing', 'Coupon Result'), 'content' => implode('', $fields)]; echo Tabs::widget(['items' => $fieldGroups]); ?> <div class="form-group"> <?php
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()]]; }
/** * @return \yii\db\ActiveQuery */ public function getCategory() { return $this->hasOne(Tree::className(), ['id' => 'category_id']); }
</fieldset> <button type="reset" class="color_dark bg_tr text_cs_hover tr_all_hover"><i class="fa fa-refresh lh_inherit m_right_10"></i>Reset </button> </form> </div> </figure> <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="<?php echo Url::to(['/catalog/home/item/list', 'catalog' => $childrenTag->id]); ?> " 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>
use yii\helpers\Html; use yii\widgets\ActiveForm; use common\models\Tree; /* @var $this yii\web\View */ /* @var $model common\modules\blog\models\Post */ /* @var $form yii\widgets\ActiveForm */ ?> <div class="post-form"> <?php $form = ActiveForm::begin(); ?> <?php echo $form->field($model, 'category_id')->dropDownList(Tree::getTreesByName('内容分类')); ?> <?php echo $form->field($model, 'title')->textInput(['maxlength' => 200]); ?> <?php echo $form->field($model, 'url')->textInput(['maxlength' => 100]); ?> <?php echo $form->field($model, 'source')->textInput(['maxlength' => 50]); ?> <?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 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; }