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]; }
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]; }