Пример #1
0
 /**
  * Поиск по категории
  * @param array $ids массив идентификаторов категорий новостей
  * @return $this
  */
 public function bySections($ids)
 {
     $class = $this->modelClass;
     $table = $class::tableName();
     $relTable = CatalogSection::tableName();
     $this->published();
     if ($ids) {
         $this->joinWith('sections', true)->andWhere(["{$relTable}.id" => $ids])->groupBy("{$table}.id");
     }
     return $this;
 }
 /**
  * Действия
  * @return array
  */
 public function actions()
 {
     $class = CatalogSection::className();
     return ['index' => ['class' => crud\TAdmin::className(), 'modelClass' => $class], 'create' => ['class' => crud\TCreate::className(), 'modelClass' => $class], 'update' => ['class' => crud\TUpdate::className(), 'modelClass' => $class], 'view' => ['class' => crud\View::className(), 'modelClass' => $class], 'delete' => ['class' => crud\TDelete::className(), 'modelClass' => $class], 'groupdelete' => ['class' => crud\TGroupDelete::className(), 'modelClass' => $class], 'up' => ['class' => crud\TUp::className(), 'modelClass' => $class], 'down' => ['class' => crud\TDown::className(), 'modelClass' => $class], 'replace' => ['class' => crud\TReplace::className(), 'modelClass' => $class], 'editable' => ['class' => crud\XEditable::className(), 'modelClass' => $class]];
 }
Пример #3
0
 /**
  * Связь с категориями
  * @return \yii\db\ActiveQueryInterface
  */
 public function getSections()
 {
     return $this->hasMany(CatalogSection::className(), ['id' => 'section_id'])->viaTable('catalog_catalog_to_sections', ['catalog_id' => 'id']);
 }
Пример #4
0
<?php

use app\modules\catalog\models;
return ['controllerMap' => ['migrate' => ['migrationLookup' => ['@webapp/modules/catalog/migrations']]], 'modules' => ['catalog' => ['class' => app\modules\catalog\Catalog::className(), 'controllerNamespace' => 'app\\modules\\catalog\\controllers', 'modules' => ['admin' => ['class' => app\modules\catalog\modules\admin\Admin::className(), 'controllerNamespace' => 'app\\modules\\catalog\\modules\\admin\\controllers', 'menuItems' => function () {
    return [['label' => Yii::t('catalog/app', 'Catalog module'), 'icon' => 'glyphicon glyphicon-folder-open', 'items' => [['label' => Yii::t('catalog/app', 'Catalogs'), 'url' => ['/admin/catalog/catalog'], "permission" => ["listModels", ["model" => Yii::createObject(models\Catalog::className())]]], ['label' => Yii::t('catalog/app', 'Catalog Sections'), 'url' => ['/admin/catalog/catalog-section'], "permission" => ["listModels", ["model" => Yii::createObject(models\CatalogSection::className())]]], ['label' => Yii::t('catalog/app', 'Producers'), 'url' => ['/admin/catalog/producer'], "permission" => ["listModels", ["model" => Yii::createObject(models\Producer::className())]]]]]];
}]]]], 'components' => ['i18n' => ['translations' => ['catalog/*' => ['class' => 'yii\\i18n\\PhpMessageSource', 'basePath' => '@webapp/modules/catalog/messages', 'fileMap' => ['catalog/app' => 'app.php']]]], 'urlManager' => ['rules' => ['catalog/<section:[A-z0-9_-]+>/<code:[A-z0-9_-]+>' => 'catalog/catalog/detail', 'catalog/<section:[A-z0-9_-]+>' => 'catalog/catalog/index', 'catalog' => 'catalog/catalog/index']]]];
Пример #5
0
 /**
  * Возвращает категории каталога для dropDown
  * @return array
  * @throws \yii\base\InvalidConfigException
  */
 public function getSectionsList()
 {
     $model = \Yii::createObject(CatalogSection::className());
     return $model->getDataByParent();
 }
Пример #6
0
<?php

/**
 * @var yii\web\View $this
 */
use app\modules\catalog\models\CatalogSection;
use yii\helpers\Url;
echo app\modules\main\widgets\treelist\TreeList::widget(["modelClass" => CatalogSection::className(), "parentId" => 1, "urlCreate" => function ($model) {
    return Url::toRoute(['/catalog/catalog/index', 'section' => $model->code]);
}]);
Пример #7
0
 /**
  * Отображение карточки элемента каталога
  * @param string $code символьный идентификатор элемента каталога
  * @param string $section символьный идентификатор категории каталога
  * @return string
  * @throws \yii\web\NotFoundHttpException
  */
 public function actionDetail($code, $section)
 {
     $model = Catalog::find()->published()->andWhere(["code" => $code])->one();
     if (!$model) {
         throw new NotFoundHttpException();
     }
     $sectionModel = CatalogSection::find()->published()->andWhere(["code" => $section])->one();
     $this->view->addBreadCrumbs($sectionModel->getBreadCrumbsItems($sectionModel, function ($model) {
         return ['/catalog/catalog/index', 'section' => $model->code];
     }));
     $this->view->addBreadCrumb(["label" => $model->title, "url" => Url::toRoute(["/catalog/catalog/detail", "code" => $code, "section" => $section])]);
     $this->view->registerMetaTags($model);
     return $this->render('detail', ["model" => $model, "detailImageWidth" => $this->detailImageWidth]);
 }