/** * Lists all TabAd models. * @return mixed */ public function actionIndex() { $searchModel = new TabAdSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); $gridColumns[] = ['class' => 'kartik\\grid\\SerialColumn', 'contentOptions' => ['class' => 'kartik-sheet-style'], 'width' => '36px', 'header' => '序号', 'headerOptions' => ['class' => 'kartik-sheet-style']]; $gridColumns[] = ['attribute' => 'id', 'vAlign' => 'middle']; $gridColumns[] = ['attribute' => 'tab_id', 'vAlign' => 'middle', 'width' => '180px', 'value' => function ($searchModel, $key, $index, $widget) { return empty($searchModel->tab->name) ? null : $searchModel->tab->name; }, 'filterType' => GridView::FILTER_SELECT2, 'filter' => ArrayHelper::map(Tab::find()->orderBy('name')->asArray()->all(), 'id', 'name'), 'filterWidgetOptions' => ['pluginOptions' => ['allowClear' => true]], 'filterInputOptions' => ['placeholder' => 'tab'], 'format' => 'raw']; $gridColumns[] = 'content'; $gridColumns[] = ['class' => 'kartik\\grid\\BooleanColumn', 'attribute' => 'status', 'width' => '100px', 'vAlign' => 'middle', 'trueLabel' => '启用', 'falseLabel' => '禁用']; $gridColumns[] = ['class' => '\\kartik\\grid\\ActionColumn', 'template' => '{view} {update} {delete}']; return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'gridColumns' => $gridColumns]); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Tab::find(); $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['id' => SORT_DESC]]]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'sort' => $this->sort]); $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'enname', $this->enname]); return $dataProvider; }
/** * Lists all Node models. * @return mixed */ public function actionIndex() { $searchModel = new NodeSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); $gridColumns[] = ['class' => 'kartik\\grid\\SerialColumn', 'contentOptions' => ['class' => 'kartik-sheet-style'], 'width' => '36px', 'header' => '序号', 'headerOptions' => ['class' => 'kartik-sheet-style']]; $gridColumns[] = ['mergeHeader' => true, 'attribute' => 'logo24Show', 'header' => '图片', 'format' => 'html']; $gridColumns[] = ['attribute' => 'id', 'vAlign' => 'middle']; $gridColumns[] = ['attribute' => 'name', 'vAlign' => 'middle']; $gridColumns[] = ['attribute' => 'tab_id', 'vAlign' => 'middle', 'width' => '180px', 'value' => function ($searchModel, $key, $index, $widget) { return empty($searchModel->tab->name) ? null : $searchModel->tab->name; }, 'filterType' => GridView::FILTER_SELECT2, 'filter' => ArrayHelper::map(Tab::find()->orderBy('name')->asArray()->all(), 'id', 'name'), 'filterWidgetOptions' => ['pluginOptions' => ['allowClear' => true]], 'filterInputOptions' => ['placeholder' => 'tab'], 'format' => 'raw']; $gridColumns[] = ['attribute' => 'enname', 'vAlign' => 'middle']; $gridColumns[] = ['attribute' => 'parent_id', 'vAlign' => 'middle', 'width' => '180px', 'value' => function ($searchModel, $key, $index, $widget) { return empty($searchModel->parent->name) ? null : $searchModel->parent->name; }, 'filterType' => GridView::FILTER_SELECT2, 'filter' => ArrayHelper::map(Node::find()->orderBy('name')->asArray()->all(), 'id', 'name'), 'filterWidgetOptions' => ['pluginOptions' => ['allowClear' => true]], 'filterInputOptions' => ['placeholder' => '父节点'], 'format' => 'raw']; $gridColumns[] = ['attribute' => 'desc', 'vAlign' => 'middle']; $gridColumns[] = ['class' => 'kartik\\grid\\BooleanColumn', 'attribute' => 'is_hidden', 'width' => '100px', 'vAlign' => 'middle', 'trueLabel' => '是', 'falseLabel' => '否']; $gridColumns[] = ['class' => 'kartik\\grid\\BooleanColumn', 'attribute' => 'need_login', 'width' => '100px', 'vAlign' => 'middle', 'trueLabel' => '是', 'falseLabel' => '否']; $gridColumns[] = ['attribute' => 'sort', 'vAlign' => 'middle']; $gridColumns[] = ['mergeHeader' => true, 'attribute' => 'created', 'format' => 'datetime']; $gridColumns[] = ['class' => '\\kartik\\grid\\ActionColumn']; return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'gridColumns' => $gridColumns]); }
/** * 获取节点的子节点,有缓存就获取缓存,用于主tab下面的子tab显示 * @return array|\yii\db\ActiveRecord[] */ static function SubTab($enname) { if (!($SubTab = Yii::$app->cache->get('SubTab' . $enname))) { $SubTab = Tab::find()->where(['enname' => $enname])->with('tabRight')->with('nodes')->asArray()->one(); Yii::$app->cache->set('SubTab' . $enname, $SubTab, 0); } return $SubTab; }
public function actionIndex() { $this->title = Yii::$app->name; $this->description = 'V2SEX,一个很实在的技术宅的专属社区。在这里交流技术,各种创意点子,聊妹子,聊男人,同性恋,各种兴趣爱好,提问,甚至可以交流AV。'; $tab = Yii::$app->request->get('tab'); $sessionTab = Yii::$app->session->get('tab'); if (Yii::$app->request->get('tab') === null) { if (empty($sessionTab)) { Yii::$app->session->set('tab', 'tech'); $tab = 'tech'; } else { $tab = $sessionTab; } } else { if (Tab::findOne(['enname' => $tab]) !== null) { Yii::$app->session->set('tab', $tab); } else { Yii::$app->session->set('tab', 'tech'); $tab = 'tech'; } } $tabModel = Tab::find()->where(['enname' => $tab])->one(); if (!empty($tabModel->bg) && $tabModel->use_bg == 1) { $this->bg = $tabModel->bg; } if (!empty($tabModel->bg_color)) { $this->bg_color = $tabModel->bg_color; } if ($tab == 'new') { $topic = (new Query())->select('topic.*, node.enname, node.name, user.username, user.avatar')->from(Topic::tableName() . ' topic')->leftJoin(Node::tableName() . ' node', 'node.id = topic.node_id')->leftJoin(User::tableName() . ' user', 'user.id = topic.user_id')->where('node.is_hidden = 0')->orderBy(['topic.updated_at' => SORT_DESC])->limit(20)->all(); } else { $topic = (new Query())->select('topic.*, node.enname, node.name, user.username, user.avatar')->from(Topic::tableName() . ' topic')->leftJoin(Node::tableName() . ' node', 'node.id = topic.node_id')->leftJoin(User::tableName() . ' user', 'user.id = topic.user_id')->where('node.is_hidden = 0')->andWhere(['in', 'topic.node_id', Tab::SubNodeId($tab)])->orderBy(['topic.updated_at' => SORT_DESC])->limit(20)->all(); } return $this->render('index', ['topic' => $topic]); }
use yii\helpers\Html; use yii\widgets\ActiveForm; /* @var $this yii\web\View */ /* @var $model common\models\TabNav */ /* @var $form yii\widgets\ActiveForm */ ?> <div class="tab-nav-form"> <?php $form = ActiveForm::begin(); ?> <?php echo $form->field($model, 'tab_id')->widget(\kartik\select2\Select2::classname(), ['data' => \yii\helpers\ArrayHelper::map(\common\models\Tab::find()->all(), 'id', 'name'), 'options' => ['placeholder' => 'TAB'], 'pluginOptions' => ['allowClear' => true]]); ?> <?php echo $form->field($model, 'name')->textInput(['maxlength' => true]); ?> <?php echo $form->field($model, 'link')->textInput(['maxlength' => true]); ?> <?php echo $form->field($model, 'sort')->textInput(); ?> <div class="form-group">