protected function getListControllerDefaultConfiguration($controllerModel, $controllerGenerator)
 {
     if (!$controllerModel->baseModelClassName) {
         throw new ApplicationException(Lang::get('rainlab.builder::lang.controller.error_behavior_requires_base_model', ['behavior' => 'List Controller']));
     }
     $pluginCodeObj = $controllerModel->getPluginCodeObj();
     $lists = ModelListModel::listModelFiles($pluginCodeObj, $controllerModel->baseModelClassName);
     if (!$lists) {
         throw new ApplicationException(Lang::get('rainlab.builder::lang.controller.error_model_doesnt_have_lists'));
     }
     $result = ['list' => $this->getModelFilePath($pluginCodeObj, $controllerModel->baseModelClassName, $lists[0]), 'modelClass' => $this->getFullModelClass($pluginCodeObj, $controllerModel->baseModelClassName), 'title' => $controllerModel->controller, 'noRecordsMessage' => 'backend::lang.list.no_records', 'showSetup' => true, 'showCheckboxes' => true, 'toolbar' => ['buttons' => 'list_toolbar', 'search' => ['prompt' => 'backend::lang.list.search_prompt']]];
     if (in_array('Backend\\Behaviors\\FormController', $controllerModel->behaviors)) {
         $updateUrl = $this->getControllerlUrl($pluginCodeObj, $controllerModel->controller) . '/update/:id';
         $createUrl = $this->getControllerlUrl($pluginCodeObj, $controllerModel->controller) . '/create';
         $result['recordUrl'] = $updateUrl;
         $controllerGenerator->setTemplateVariable('hasFormBehavior', true);
         $controllerGenerator->setTemplateVariable('createUrl', $createUrl);
     }
     return $result;
 }
 public function onPluginDataRegistryGetData()
 {
     $code = Input::get('registry_plugin_code');
     $type = Input::get('registry_data_type');
     $subtype = Input::get('registry_data_subtype');
     $result = null;
     switch ($type) {
         case 'localization':
             $result = LocalizationModel::getPluginRegistryData($code, $subtype);
             break;
         case 'model-classes':
             $result = ModelModel::getPluginRegistryData($code, $subtype);
             break;
         case 'model-forms':
             $result = ModelFormModel::getPluginRegistryData($code, $subtype);
             break;
         case 'model-lists':
             $result = ModelListModel::getPluginRegistryData($code, $subtype);
             break;
         case 'controller-urls':
             $result = ControllerModel::getPluginRegistryData($code, $subtype);
             break;
         case 'model-columns':
             $result = ModelModel::getPluginRegistryDataColumns($code, $subtype);
             break;
         case 'plugin-lists':
             $result = ModelListModel::getPluginRegistryDataAllRecords($code);
             break;
         case 'permissions':
             $result = PermissionsModel::getPluginRegistryData($code);
             break;
         default:
             throw new SystemException('Unknown plugin registry data type requested.');
     }
     return ['registryData' => $result];
 }
Example #3
0
 protected function getModelList($pluginCode)
 {
     $models = ModelModel::listPluginModels($pluginCode);
     $result = [];
     foreach ($models as $model) {
         $result[] = ['model' => $model, 'forms' => ModelFormModel::listModelFiles($pluginCode, $model->className), 'lists' => ModelListModel::listModelFiles($pluginCode, $model->className)];
     }
     return $result;
 }
 protected function mergeRegistryDataIntoResult(&$result, $model, $modelClass)
 {
     if (!array_key_exists('builderResponseData', $result)) {
         $result['builderResponseData'] = [];
     }
     $fullClassName = $model->getPluginCodeObj()->toPluginNamespace() . '\\Models\\' . $modelClass;
     $pluginCode = $model->getPluginCodeObj()->toCode();
     $result['builderResponseData']['registryData'] = ['lists' => ModelListModel::getPluginRegistryData($pluginCode, $modelClass), 'pluginCode' => $pluginCode, 'modelClass' => $fullClassName];
 }