MenuItem.php 2.26 KB
<?php

namespace backend\modules\menu\models;

use yii\helpers\ArrayHelper;
use thread\app\model\interfaces\BaseBackendModel;

/**
 * Class MenuItem
 *
 * @package backend\modules\menu\models
 * @author FilamentV <vortex.filament@gmail.com>
 * @copyright (c), Thread
 */
class MenuItem extends \thread\modules\menu\models\MenuItem implements BaseBackendModel
{
    /**
     * @var string
     */
    public $title;

    /**
     * @var string
     */
    private $_permanent_link;

    /**
     * @param $permanent_link
     */
    public function setPermanent_link($permanent_link)
    {
        $this->_permanent_link = $permanent_link;
    }

    /**
     * @return string
     */
    public function getPermanent_link()
    {
        return $this->link;
    }

    /**
     * @return array
     */
    public function rules()
    {
        return ArrayHelper::merge(parent::rules(), [
            [['permanent_link'], 'string', 'max' => 255],
        ]);
    }

    /**
     * @return array
     */
    public function scenarios()
    {
        return ArrayHelper::merge(parent::scenarios(), [
            'backend' => [
                'permanent_link',
            ],
        ]);
    }

    /**
     * @param bool $insert
     * @return bool
     */
    public function beforeSave($insert)
    {
        $this->link = ($this->link_type == 'permanent') ? $this->_permanent_link : '';
//        if ($this->link === null) {
//            $this->link = '';
//        }

        return parent::beforeSave($insert);
    }

    /**
     * @param $params
     * @return \yii\data\ActiveDataProvider
     */
    public function search($params)
    {
        return (new search\MenuItem())->search($params);
    }

    /**
     * @param $params
     * @return \yii\data\ActiveDataProvider
     */
    public function trash($params)
    {
        return (new search\MenuItem())->trash($params);
    }

    use \thread\app\helpers\tree\multi\MultiTreeModelTrait;

    /**
     * @param integer $tree
     */
    public static function findTreeModel($tree = 0)
    {
        $models = self::find()->undeleted()->addOrderBy(['position' => SORT_ASC])->all();
        foreach ($models as $model) {
            //заповнюємо моделі
            static::$treeModelCache[$model->id] = $model;
        }
    }
}