Пример #1
0
 /**
  * Lists all NodeLink models.
  * @return mixed
  */
 public function actionIndex()
 {
     $searchModel = new NodeLinkSearch();
     $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' => 'node_id', 'vAlign' => 'middle', 'width' => '180px', 'value' => function ($searchModel, $key, $index, $widget) {
         return empty($searchModel->node->name) ? null : $searchModel->node->name;
     }, 'filterType' => GridView::FILTER_SELECT2, 'filter' => ArrayHelper::map(Node::find()->orderBy('name')->asArray()->all(), 'id', 'name'), 'filterWidgetOptions' => ['pluginOptions' => ['allowClear' => true]], 'filterInputOptions' => ['placeholder' => 'node'], '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]);
 }
Пример #2
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Node::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, 'tab_id' => $this->tab_id, 'parent_id' => $this->parent_id, 'is_hidden' => $this->is_hidden, 'need_login' => $this->need_login, 'sort' => $this->sort, 'created' => $this->created]);
     $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'enname', $this->enname])->andFilterWhere(['like', 'desc', $this->desc])->andFilterWhere(['like', 'logo', $this->logo]);
     return $dataProvider;
 }
Пример #3
0
 /**
  * Lists all Topic models.
  * @return mixed
  */
 public function actionIndex()
 {
     $searchModel = new TopicSearch();
     $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' => 'user_id', 'vAlign' => 'middle', 'width' => '180px', 'value' => function ($searchModel, $key, $index, $widget) {
         return $searchModel->user->username;
     }, 'filterType' => GridView::FILTER_SELECT2, 'filter' => ArrayHelper::map(User::find()->orderBy('username')->asArray()->all(), 'id', 'username'), 'filterWidgetOptions' => ['pluginOptions' => ['allowClear' => true]], 'filterInputOptions' => ['placeholder' => '用户'], 'format' => 'raw'];
     $gridColumns[] = ['attribute' => 'node_id', 'vAlign' => 'middle', 'width' => '180px', 'value' => function ($searchModel, $key, $index, $widget) {
         return $searchModel->node->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[] = ['class' => 'kartik\\grid\\BooleanColumn', 'attribute' => 'need_login', 'vAlign' => 'middle', 'trueLabel' => '是', 'falseLabel' => '否'];
     $gridColumns[] = 'title';
     $gridColumns[] = 'click';
     $gridColumns[] = 'follow';
     $gridColumns[] = 'reply';
     $gridColumns[] = ['mergeHeader' => true, 'attribute' => 'created', 'format' => 'datetime'];
     $gridColumns[] = ['class' => '\\kartik\\grid\\ActionColumn', 'template' => '{view} {update} {delete}', 'buttons' => ['view' => function ($url, $model) {
         return Html::a('<span class="glyphicon glyphicon-eye-open"></span>', Yii::$app->params['domain'] . $url, ['title' => '查看', 'target' => '_blank']);
     }]];
     return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'gridColumns' => $gridColumns]);
 }
Пример #4
0
 /**
  * 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]);
 }
Пример #5
0
 public function actionView($nodeName)
 {
     $node = $this->findModel($nodeName);
     if ($node->need_login == 1 && Yii::$app->user->isGuest) {
         Yii::$app->getSession()->setFlash('danger', '你访问的节点需要登陆之后才能查看');
         return $this->redirect('/account/login?next=/node/' . $nodeName);
     }
     if (!empty($node->bg) && $node->use_bg == 1) {
         $this->bg = $node->bg;
     }
     if (!empty($node->bg_color)) {
         $this->bg_color = $node->bg_color;
     }
     $this->title = $node->name . ' - ' . Yii::$app->name;
     $this->description = '';
     $SubNode[$node->id] = $node->id;
     $SubSubNode = ArrayHelper::map(Node::find()->where(['parent_id' => $node->id])->andWhere(['is_hidden' => 0])->all(), 'id', 'id');
     $SubNode = array_merge($SubNode, $SubSubNode);
     array_unique($SubNode);
     $query = Topic::find()->where(['in', 'node_id', $SubNode]);
     $pagination = new Pagination(['defaultPageSize' => Yii::$app->params['pageSize'], 'totalCount' => $query->count()]);
     $model = $query->orderBy(['id' => SORT_DESC])->offset($pagination->offset)->limit($pagination->limit)->all();
     return $this->render('view', ['model' => $model, 'node' => $node, 'pagination' => $pagination]);
 }
Пример #6
0
 /**
  * 获取tab的节点id,有缓存就获取缓存,用来取tab下面的节点建议
  * @return array|\yii\db\ActiveRecord[]
  */
 static function SubNodeId($enname)
 {
     if (!($SubNodeId = Yii::$app->cache->get('subnodeid' . $enname))) {
         $tab = Tab::findOne(['enname' => $enname]);
         if (empty($tab->id)) {
             return [];
         }
         $SubNodeId = ArrayHelper::map(Node::find()->where(['tab_id' => $tab->id])->andWhere(['is_hidden' => 0])->all(), 'id', 'id');
         Yii::$app->cache->set('subnodeid' . $enname, $SubNodeId, 0);
     }
     return $SubNodeId;
 }
Пример #7
0
Файл: Node.php Проект: npk/v2sex
 static function Info($id)
 {
     if (!($nodeInfo = Yii::$app->cache->get('node' . $id))) {
         $nodeInfo = Node::find()->where(['id' => $id])->asArray()->one();
         Yii::$app->cache->set('node' . $id, $nodeInfo, 0);
     }
     return $nodeInfo;
 }
Пример #8
0
 /**
  * 获取相关节点
  * @param $node_id
  * @param $parent_id
  * @param bool $onlyId
  * @return array|\yii\db\ActiveRecord[]
  */
 static function RelatedNode($node_id, $parent_id, $onlyId = true)
 {
     if ($onlyId) {
         if (!($NodeRelatedNode = Yii::$app->cache->get('NodeRelatedNodeId' . $node_id))) {
             $NodeRelatedNode = ArrayHelper::map(Node::find()->select('id')->where(['parent_id' => $parent_id])->andWhere('id != ' . $node_id)->asArray('id')->all(), 'id', 'id');
             Yii::$app->cache->set('NodeRelatedNodeId' . $node_id, $NodeRelatedNode, 0);
         }
     } else {
         if (!($NodeRelatedNode = Yii::$app->cache->get('NodeRelatedNode' . $node_id))) {
             $NodeRelatedNode = (new Query())->from(Node::tableName())->select('enname, name, logo')->where(['parent_id' => $parent_id])->andWhere('id != ' . $node_id)->all();
             Yii::$app->cache->set('NodeRelatedNode' . $node_id, $NodeRelatedNode, 0);
         }
     }
     return $NodeRelatedNode;
 }
Пример #9
-1
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model common\models\Topic */
/* @var $form yii\widgets\ActiveForm */
?>

<div class="topic-form">

    <?php 
$form = ActiveForm::begin();
?>

    <?php 
echo $form->field($model, 'node_id')->widget(\kartik\select2\Select2::classname(), ['data' => \yii\helpers\ArrayHelper::map(\common\models\Node::find()->all(), 'id', 'name'), 'options' => ['placeholder' => '节点'], 'pluginOptions' => ['allowClear' => true]]);
?>

    <?php 
echo $form->field($model, 'need_login')->dropDownList(['1' => '是', '0' => '否']);
?>

    <div class="form-group">
        <?php 
echo Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']);
?>
    </div>

    <?php 
ActiveForm::end();
?>