[ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => [ 'POST' ], ], ], 'access' => [ 'class' => AccessControl::className(), 'rules' => [ [ 'allow' => true, 'roles' => [ '@' ], ], ], ], ]; } public function actions() { return [ 'index' => [ 'class' => Index::className(), 'columns' => [ 'title' => [ 'type' => Index::ACTION_COL, ], 'updated_at' => [ 'type' => Index::DATETIME_COL, ], 'sort' => [ 'type' => Index::POSITION_COL, ], 'status' => [ 'type' => Index::STATUS_COL, ], ], 'model' => Package::className(), 'hasLanguage' => true, 'enableMassDelete' => true, 'modelPrimaryKey' => 'id', ], 'create' => array_merge([ 'class' => Create::className() ], self::fieldsConfig()), 'update' => array_merge([ 'class' => Update::className() ], self::fieldsConfig()), 'view' => [ 'class' => View::className(), 'model' => Package::className(), 'hasAlias' => true, 'languageFields' => [ [ 'name' => 'title', 'type' => Form::STRING, ], [ 'name' => 'body', 'type' => Form::WYSIWYG, ], ], 'fields' => [ ], ], 'delete' => [ 'class' => Delete::className(), ], ]; } public function findModel($id) { $model = Package::find() ->with('languages') ->where([ 'id' => $id ]) ->one(); if ($model !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } } public function newModel() { return new Package(); } public function deleteModel($id) { $page = Package::find() ->with('languages.alias') ->where( [ 'id' => $id, ] ) ->one(); $langs = call_user_func( [ $page, 'getVariationModels', ] ); foreach ($langs as $lang) { if ($lang->alias !== null) { $lang->alias->delete(); } } return $page->delete(); } protected static function fieldsConfig() { return [ 'tinyMceConfig' => [ 'language' => 'ru', 'clientOptions' => [ 'file_browser_callback' => new JsExpression( "function(field_name, url, type, win) { window.open('" . Url::to( [ 'imagemanager/manager', 'view-mode' => 'iframe', 'select-type' => 'tinymce', ] ) . "&tag_name='+field_name,'','width=800,height=540 ,toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no'); }" ), 'plugins' => [ "advlist autolink lists link charmap print preview anchor", "searchreplace visualblocks code fullscreen", "insertdatetime media table contextmenu paste image", ], 'toolbar' => "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | code | button", 'setup' => new JsExpression('function (editor) { editor.addButton("button", { text: "Записаться на прием", icon: false, onclick: function () { editor.insertContent("[[button]]"); } }); }') ], ], 'model' => Package::className(), 'hasAlias' => true, 'languageFields' => [ [ 'name' => 'title', 'type' => Form::STRING, ], [ 'name' => 'body', 'type' => Form::WYSIWYG, ], ], 'fields' => [ [ 'name' => 'image_id', 'type' => Form::IMAGE ], [ 'name' => 'status', 'type' => Form::BOOL, ], [ 'name' => 'sort', 'type' => Form::NUMBER, ], [ 'name' => 'service_id', 'type' => Form::RELATION, 'relationAttribute' => 'title', 'relationName' => 'service', 'multiple' => false, ] ], ]; } }