/** * Create page instance by type. * * @param string $type * @return Page */ public function getPageInstance($type = null) { /** @var \im\base\types\EntityTypesRegister $typesRegister */ $typesRegister = Yii::$app->get('typesRegister'); $class = $type && $typesRegister->hasEntityType($type) ? $typesRegister->getEntityClass($type) : Page::className(); return Yii::createObject(['class' => $class, 'type' => $type]); }
/** * @inheritdoc */ public function init() { parent::init(); $pageClass = Page::className(); if ($this->modelClass != $pageClass && !is_subclass_of($this->modelClass, $pageClass)) { throw new InvalidConfigException("The 'modelClass' property class must be '{$pageClass}' or it's subclass."); } }
/** * @inheritdoc */ protected function getModelClass() { return Page::className(); }
/** * Registers a class definitions in container. */ public function registerDefinitions() { Yii::$container->set(Page::className(), ['as seo' => ['class' => 'im\\seo\\components\\SeoBehavior', 'metaClass' => 'im\\cms\\models\\PageMeta', 'ownerType' => false], 'as template' => ['class' => 'im\\cms\\components\\TemplateBehavior']]); }