public function run() { $cacheId = Yii::$app->params["domain"] . '_blog_catalog'; $catalogs = Yii::$app->cache->get($cacheId); if ($catalogs === false) { $queryCatalogs = BlogCatalog::find(); $catalogs = $queryCatalogs->all(); Yii::$app->cache->set($cacheId, $catalogs, $this->cacheDuration); } $dataProvider = BlogCatalog::get(0, $catalogs, 0, 2, ' '); return $this->render('catalogsList', ['title' => $this->title, 'dataProvider' => $dataProvider, 'cacheDuration' => $this->cacheDuration]); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = BlogCatalog::find(); $query->orderBy(['sort_order' => SORT_ASC, 'create_time' => SORT_DESC]); $dataProvider = new ActiveDataProvider(['query' => $query]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'parent_id' => $this->parent_id, 'is_nav' => $this->is_nav, 'sort_order' => $this->sort_order, 'page_size' => $this->page_size, 'status' => $this->status, 'create_time' => $this->create_time, 'update_time' => $this->update_time]); $query->andFilterWhere(['like', 'title', $this->title])->andFilterWhere(['like', 'surname', $this->surname])->andFilterWhere(['like', 'banner', $this->banner])->andFilterWhere(['like', 'template', $this->template])->andFilterWhere(['like', 'redirect_url', $this->redirect_url]); return $dataProvider; }
<?php use yii\helpers\Html; use yii\helpers\StringHelper; $catalogsBreadcrumbs = \sircovsw\blog\models\BlogCatalog::getBreadcrumbs($data->catalog->id, $catalogs); $breadcrumbsUrls = []; $catalogsBreadcrumbsCnt = count($catalogsBreadcrumbs); $counter = 0; foreach ($catalogsBreadcrumbs as $breadcrumbs => $breadcrumbsData) { $breadcrumbsId = $breadcrumbsData['id']; $breadcrumbsSurname = $breadcrumbsData['surname']; $breadcrumbsTitle = $breadcrumbsData['title']; if ($counter == $catalogsBreadcrumbsCnt - 1) { $breadcrumbsUrl = Yii::$app->getUrlManager()->createUrl(['/blog/default/catalog/', 'surname' => $breadcrumbsSurname]); $breadcrumbsUrl = '<a href="' . $breadcrumbsUrl . '">' . $breadcrumbsTitle . '</a>'; } else { $breadcrumbsUrl = $breadcrumbsTitle; } $breadcrumbsUrls[] = $breadcrumbsUrl; $counter++; } $breadcrumbsUrlsStr = implode(' / ', $breadcrumbsUrls); ?> <div class="row well well-sm"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> <h3> <?php echo Html::a(Html::encode($data->title), $data->url); ?> </h3>
public function actionView() { $this->layout = 'mainView'; if (Yii::$app->request->get('surname')) { $post = BlogPost::findOne(['surname' => Yii::$app->request->get('surname')]); if ($post) { $post->updateCounters(['click' => 1]); } else { $this->redirect(['blog']); } } else { $this->redirect(['blog']); } $cacheId = Yii::$app->params["domain"] . '_blog_catalog'; $catalogs = Yii::$app->cache->get($cacheId); if ($catalogs === false) { $queryCatalogs = BlogCatalog::find(); $catalogs = $queryCatalogs->all(); Yii::$app->cache->set($cacheId, $catalogs, $this->cacheDuration); } return $this->render('view', ['catalogs' => $catalogs, 'post' => $post]); }
/** * Finds the BlogCatalog model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return BlogCatalog the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = BlogCatalog::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
use sircovsw\blog\models\BlogCatalog; use kartik\markdown\MarkdownEditor; use mihaildev\ckeditor\CKEditor; /* @var $this yii\web\View */ /* @var $model backend\modules\blog\models\BlogPost */ /* @var $form yii\widgets\ActiveForm */ ?> <div class="blog-post-form"> <?php $form = ActiveForm::begin(['options' => ['class' => 'form-horizontal', 'enctype' => 'multipart/form-data'], 'fieldConfig' => ['template' => "{label}\n<div class=\"col-lg-10\">{input}</div>\n<div class=\"col-lg-5\">{error}</div>", 'labelOptions' => ['class' => 'col-lg-2 control-label']]]); ?> <?php echo $form->field($model, 'catalog_id')->dropDownList(ArrayHelper::map(BlogCatalog::get(0, BlogCatalog::find()->all()), 'id', 'str_label')); ?> <?php echo $form->field($model, 'title')->textInput(['maxlength' => 128]); ?> <?php echo $form->field($model, 'brief')->textarea(['rows' => 6]); ?> <?php echo $form->field($model, 'content')->widget(CKEditor::className(), ['editorOptions' => ['preset' => 'full', 'inline' => false]]); ?> <?php
use yii\helpers\StringHelper; if (!empty($title)) { ?> <div class="row"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> <h3> <?php echo $title; ?> </h3> </div> </div> <?php } foreach ($dataProvider as $item) { $query = \sircovsw\blog\models\BlogCatalog::find(); $query->where(['parent_id' => $item['id']]); $cacheId = Yii::$app->params["domain"] . '_blog_catalog_' . md5(serialize($query)); $catalogs = Yii::$app->cache->get($cacheId); if ($catalogs === false) { $catalogs = $query->all(); Yii::$app->cache->set($cacheId, $catalogs, $cacheDuration); } $isLink = 0; if (empty($catalogs)) { $isLink = 1; } ?> <div class="row"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> <?php
?> </td> <td><?php echo $item['str_label']; ?> </td> <td><?php echo $item['sort_order']; ?> </td> <td><?php echo $item['template']; ?> </td> <td><?php echo BlogCatalog::getOneIsNavLabel($item['is_nav']); ?> </td> <td><?php echo \sircovsw\blog\models\Status::labels()[$item['status']]; ?> </td> <td> <a href="<?php echo \Yii::$app->getUrlManager()->createUrl(['blog/blog-catalog/create', 'parent_id' => $item['id']]); ?> " title="<?php echo Module::t('blog', 'Add Sub Catelog'); ?> " data-pjax="0"><span class="glyphicon glyphicon-plus-sign"></span></a>
<?php use yii\helpers\Html; use yii\widgets\ListView; use yii\widgets\LinkPager; use sircovsw\blog\models\BlogCatalog; if (!empty($_GET['surname'])) { $surname = $_GET['surname']; $mSurname = BlogCatalog::find()->where(['surname' => $surname])->one(); $this->title = yii\helpers\Html::decode(Yii::$app->params['blogTitle'] . ' - статьи по рубрике "' . $mSurname->title . '"'); $this->registerMetaTag(['content' => $this->title, 'name' => 'description']); $this->registerMetaTag(['content' => Yii::$app->params['blogKeywords'], 'name' => 'keywords']); $this->params['breadcrumbs'][] = ['url' => yii\helpers\Url::toRoute('/blog'), 'label' => '<span itemprop="title">Блог</span>', 'itemTemplate' => "<li itemscope itemtype='http://data-vocabulary.org/Breadcrumb'>{link}</li>"]; $this->params['breadcrumbs'][] = ['label' => '<span itemprop="title">' . $mSurname->title . '</span>', 'itemTemplate' => "<li itemscope itemtype='http://data-vocabulary.org/Breadcrumb'>{link}</li>"]; } else { if (!empty($_GET['tag'])) { $tag = $_GET['tag']; $this->title = yii\helpers\Html::decode(Yii::$app->params['blogTitle'] . ' - статьи по тегу "' . $tag . '"'); $this->registerMetaTag(['content' => $this->title, 'name' => 'description']); $this->registerMetaTag(['content' => Yii::$app->params['blogKeywords'], 'name' => 'keywords']); $this->params['breadcrumbs'][] = ['url' => yii\helpers\Url::toRoute('/blog'), 'label' => '<span itemprop="title">Блог</span>', 'itemTemplate' => "<li itemscope itemtype='http://data-vocabulary.org/Breadcrumb'>{link}</li>"]; $this->params['breadcrumbs'][] = ['label' => '<span itemprop="title">' . $tag . '</span>', 'itemTemplate' => "<li itemscope itemtype='http://data-vocabulary.org/Breadcrumb'>{link}</li>"]; } else { $this->params['breadcrumbs'][] = 'Блог'; $this->title = yii\helpers\Html::decode(Yii::$app->params['blogTitle'] . ' - ' . Yii::$app->params['blogTitleSeo']); $this->registerMetaTag(['content' => Yii::$app->params['blogDescription'], 'name' => 'description']); $this->registerMetaTag(['content' => Yii::$app->params['blogKeywords'], 'name' => 'keywords']); } } ?> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
?> <?php echo $form->field($model, 'title')->textInput(['maxlength' => 255]); ?> <?php echo $form->field($model, 'surname')->textInput(['maxlength' => 128]); ?> <?php echo $form->field($model, 'banner')->fileInput(); ?> <?php echo $form->field($model, 'is_nav')->dropDownList(BlogCatalog::getArrayIsNav()); ?> <?php echo $form->field($model, 'sort_order')->textInput(); ?> <?php echo $form->field($model, 'page_size')->textInput(); ?> <?php echo $form->field($model, 'template')->textInput(['maxlength' => 255]); ?> <?php
/** * Normalizes the user-entered tags. */ public static function getArrayCatalog() { return ArrayHelper::map(BlogCatalog::find()->all(), 'id', 'title'); }
/** * @return \yii\db\ActiveQuery */ public function getParent() { return $this->hasOne(BlogCatalog::className(), ['id' => 'parent_id']); }