public function validateModelName($attr) { $value = $this->{$attr}; $modules = MobileModule::supportedModules(new CDbCriteria(array('condition' => 'editable'))); $validNames = array_map(function ($module) { return X2Model::getModelName($module->name); }, $modules); if (!in_array($value, $validNames)) { $this->addError($attr, Yii::t('app', 'Invalid model name')); } }
public function getModuleItems() { $modules = MobileModule::supportedModules(); $modules = array_filter($modules, function ($module) { if ($module->name === 'users') { $action = 'ProfileMobileIndex'; } else { $action = ucfirst($module->name) . 'Index'; } $authItem = Yii::app()->authManager->getAuthItem($action); return Yii::app()->params->isAdmin || is_null($authItem) || Yii::app()->user->checkAccess($action); }); return array_map(function ($module) { $item = new ModulePanelItem(); $item->module = $module; return $item; }, $modules); }
public function actionEditMobileForms() { Yii::import('application.modules.mobile.models.*'); Yii::import('application.modules.mobile.*'); Yii::import('application.models.formModels.*'); $model = new EditMobileFormsFormModel(); if (isset($_POST['EditMobileFormsFormModel'])) { $model->setAttributes($_POST['EditMobileFormsFormModel']); if ($model->validate()) { Yii::app()->db->createCommand()->delete('x2_mobile_layouts', 'modelName=:modelName', array(':modelName' => $model->modelName)); foreach (array('defaultView', 'defaultForm') as $layoutName) { $layout = new MobileLayouts(); $layout->modelName = $model->modelName; $layout->layout = $model->{$layoutName}; $layout->defaultView = $layoutName === 'defaultView'; $layout->defaultForm = $layoutName === 'defaultForm'; $layout->save(); } Yii::app()->user->setFlash('success', Yii::t('app', 'Layout updated')); } } $modules = MobileModule::supportedModules(new CDbCriteria(array('condition' => 'editable'))); $modelList = array('' => '---'); foreach ($modules as $module) { if ($module->name == 'marketing') { $modelList['Campaign'] = Yii::t('marketing', 'Campaign'); } elseif ($module->name == 'opportunities') { $modelList['Opportunity'] = Yii::t('opportunities', 'Opportunity'); } elseif ($module->name == 'products') { $modelList['Product'] = Yii::t('products', 'Product'); } elseif ($module->name == 'quotes') { $modelList['Quote'] = Yii::t('quotes', 'Quote'); } else { $modelList[ucfirst($module->name)] = Yii::t('app', $module->title); } } $this->render('editMobileForms', array('model' => $model, 'recordTypes' => $modelList)); }