Каждый элемент структуры сайта является экземпляром класса skeeks\cms\models\CmsTree, который в свою очередь является экземпляром класса yii\db\ActiveRecord​, а следовательно и обладает всеми его возможностями + индивидуальными.

 

Все имеющиеся свойства класса вынесены в докстринг, и поэтому при грамотной настройки вашей IDE вы всегда будете комфортно писать код, не вспоминя какие свойства есть у этого класса.

/**
 * This is the model class for table "{{%cms_tree}}".
 *
 * @property integer $id
 * @property integer $created_by
 * @property integer $updated_by
 * @property integer $created_at
 * @property integer $updated_at
 * @property string $name
 * @property string $description_short
 * @property string $description_full
 * @property string $code
 * @property integer $pid
 * @property string $pids
 * @property integer $level
 * @property string $dir
 * @property integer $has_children
 * @property integer $priority
 * @property string $tree_type_id
 * @property integer $published_at
 * @property string $redirect
 * @property string $tree_menu_ids
 * @property string $active
 * @property string $meta_title
 * @property string $meta_description
 * @property string $meta_keywords
 * @property string $site_code
 * @property string $description_short_type
 * @property string $description_full_type
 * @property integer $image_full_id
 * @property integer $image_id
 * @property integer $redirect_tree_id
 * @property integer $redirect_code
 * @property string $name_hidden
 *
 *
 * @property string $view_file //version > 2.4.8
 *
 * @property string $absoluteUrl
 * @property string $url
 *
 * @property CmsStorageFile $image
 * @property CmsStorageFile $imageFull
 *
 * @property CmsTreeFile[]  $cmsTreeFiles
 * @property CmsTreeImage[] $cmsTreeImages
 * @property CmsTree        $redirectTree
 *
 * @property CmsStorageFile[] $files
 * @property CmsStorageFile[] $images
 *
 * @property CmsContentElement[]        $cmsContentElements
 * @property CmsContentElementTree[]    $cmsContentElementTrees
 * @property CmsSite                    $site
 * @property CmsSite                    $cmsSiteRelation
 * @property CmsTreeType                $treeType
 * @property CmsTreeProperty[]          $cmsTreeProperties
 *
 * @property Tree                       $parent
 * @property Tree[]                     $parents
 * @property Tree[]                     $children
 * @property Tree                       $root
 * @property Tree                       $prev
 * @property Tree                       $next
 */

 

В зависимости от типа раздела $tree->treeType->code тот или иной раздел, будет отрисовываться в шаблоне совпадающим с кодом типа.

Так же у раздела может быть задано свойство $tree->view_file в этом случае шаблон будет совпадать с названием этого свойства.

В указанный шаблон приходит переменная $model которая является объектом раздела.

Пример шаблона раздела:

<?
/**
 * @author Semenov Alexander <semenov@skeeks.com>
 * @link http://skeeks.com/
 * @copyright 2010 SkeekS (СкикС)
 * @date 06.03.2015
 */
/* @var $this \yii\web\View */
/* @var \skeeks\cms\models\Tree $model */
?>
Привет я страница а зовут меня: <? echo $model->name; ?>
У меня есть главное изображение: <?= $model->image->src; ?>
Тип страницы понятное название: <?= $model->treeType->code; ?>
Тип страницы код: <?= $model->treeType->code; ?>
Анонс: <?= $model->description_short; ?>
Подробный контент: <?= $model->description_full; ?>
Уровень вложенности: <?= $model->level; ?>
Относительный путь к ней: <?= $model->url; ?>
Убсолютный путь: <?= $model->absoluteUrl; ?>
Активна или нет: <?= $model->active; ?>
Время создания: <?= $model->created_at; ?>
Создал меня юзер: <?= $model->createdBy->displayName; ?> [<?= $model->createdBy->id; ?>]
<hr />
Дочерние разделы: <? $model->children; ?>
<? foreach($model->children as $childTree) : ?>
    <?= $childTree->name; ?>
<? endforeach?>

<hr />
Изображения: <? $model->images; ?>
<? foreach($model->images as $image) : ?>
    <?= $image->src; ?>
    <?= $image->name; ?>
    <?= $image->image_width; ?>
    <?= $image->size; ?>
<? endforeach?>

В указанном шаблоне все достаточно понятно.


Создание новых типов разделов

Создать новый тип раздела можно через систему администрирования:


Все комментарии (0)
Нет комментариев