public function actionGetMobileLayouts($modelName) { Yii::import('application.modules.mobile.models.*'); // find or generate layouts $formLayout = MobileLayouts::model()->findByAttributes(array('modelName' => $modelName, 'defaultView' => 1)); $viewLayout = MobileLayouts::model()->findByAttributes(array('modelName' => $modelName, 'defaultForm' => 1)); $formLayout = $formLayout ? $formLayout->layout : null; $viewLayout = $viewLayout ? $viewLayout->layout : null; if (!$formLayout) { $formLayout = MobileLayouts::generateDefaultLayout('form', $modelName); } if (!$viewLayout) { $viewLayout = MobileLayouts::generateDefaultLayout('view', $modelName); } list($formLayout, $unselectedForm) = MobileLayouts::getFieldOptions($formLayout, $modelName); list($viewLayout, $unselectedView) = MobileLayouts::getFieldOptions($viewLayout, $modelName); echo CJSON::encode(array('defaultForm' => $formLayout, 'defaultView' => $viewLayout, 'defaultFormUnselected' => $unselectedForm, 'defaultViewUnselected' => $unselectedView)); }
public function getLayoutData() { if (!$this->mobileLayout) { // if there's no mobile layout, generate layout from default desktop app record layout $layoutData = MobileLayouts::generateDefaultLayout($this->layoutType, $this->modelName); } else { $layoutData = $this->mobileLayout->layout; } return $layoutData; }