public function updateNotice() { $moduleName = \common\populac\components\Module::getModuleName(get_class($this->owner)); if ($module = Module::findOne(['name' => $moduleName])) { $module->notice = call_user_func($this->callback); $module->update(); } }
/** * Module name getter * * @param $namespace * @return string|bool */ public static function getModuleName($namespace) { foreach (ModuleModel::findAllActive() as $module) { //'/[\w]+$/':结尾的单词 //获取 模块类 目录,eg: $module->class = 'yii\easyii\modules\article\ArticleModule' // 则 $moduleClassPath = 'yii\easyii\modules\article\'; $moduleClassPath = preg_replace('/[\\w]+$/', '', $module->class); if (strpos($namespace, $moduleClassPath) !== false) { return $module->name; } } return false; }
/** * @inheritdoc */ public function init() { parent::init(); // custom initialization code goes here parent::init(); if (Yii::$app->cache === null) { throw new ServerErrorHttpException('请在配置文件中配置cache组件!'); } $this->activeModules = Module::findAllActive(); $modules = []; foreach ($this->activeModules as $name => $module) { $modules[$name]['class'] = $module->class; if (is_array($module->settings)) { $modules[$name]['settings'] = $module->settings; } } $this->setModules($modules); //define('IS_ROOT', !Yii::$app->user->isGuest && Yii::$app->user->identity->isAdmin); //define('LIVE_EDIT', !Yii::$app->user->isGuest && Yii::$app->session->get('easyii_live_edit')); //后台登录的都算为ROOT define('IS_ROOT', !Yii::$app->user->isGuest && Yii::$app->homeUrl != '/'); define('LIVE_EDIT', !Yii::$app->user->isGuest && Yii::$app->session->get('easyii_live_edit')); }
public function rules() { return [[['title', 'name'], 'required'], ['name', 'match', 'pattern' => '/^[a-z]+$/'], ['name', 'unique', 'targetClass' => Module::className()]]; }
public function actionDelete($id) { if ($model = Module::findOne($id)) { $model->delete(); } else { $this->error = 'Not found'; } return $this->formatResponse('模块已删除!'); }
public function actionViewall() { Guestbook::updateAll(['new' => 0]); $module = \common\populac\models\Module::findOne(['name' => 'guestbook']); $module->notice = 0; $module->save(); $this->flash('success', Yii::t('easyii/guestbook', 'Guestbook updated')); return $this->back(); }