public function getBaseModelClassNameOptions() { $models = ModelModel::listPluginModels($this->getPluginCodeObj()); $result = []; foreach ($models as $model) { $result[$model->className] = $model->className; } return $result; }
public function onModelListGetModelFields() { $columnNames = ModelModel::getModelFields($this->getPluginCode(), Input::get('model_class')); $result = []; foreach ($columnNames as $columnName) { $result[] = ['title' => $columnName, 'value' => $columnName]; } return ['responseData' => ['options' => $result]]; }
public function onModelSave() { $pluginCode = Request::input('plugin_code'); $model = $this->loadOrCreateBaseModel(null); $model->setPluginCode($pluginCode); $model->fill($_POST); $model->save(); $result = $this->controller->widget->modelList->updateList(); $builderResponseData = ['registryData' => ['models' => ModelModel::getPluginRegistryData($pluginCode, null), 'pluginCode' => $pluginCode]]; $result['builderResponseData'] = $builderResponseData; return $result; }
public function onModelFormGetModelFields() { $columnNames = ModelModel::getModelFields($this->getPluginCode(), Input::get('model_class')); $asPlainList = Input::get('as_plain_list'); $result = []; foreach ($columnNames as $columnName) { if (!$asPlainList) { $result[] = ['title' => $columnName, 'value' => $columnName]; } else { $result[$columnName] = $columnName; } } return ['responseData' => ['options' => $result]]; }
public function listModelColumnNames() { $modelClass = $this->getModelClassDesignTime(); $key = md5('builder-global-model-list-' . $modelClass); $cached = Cache::get($key, false); if ($cached !== false && ($cached = @unserialize($cached)) !== false) { return $cached; } $pluginCodeObj = PluginCode::createFromNamespace($modelClass); $modelClassParts = explode('\\', $modelClass); // The full class name is already validated in PluginCode::createFromNamespace() $modelClass = array_pop($modelClassParts); $columnNames = ModelModel::getModelFields($pluginCodeObj, $modelClass); $result = []; foreach ($columnNames as $columnName) { $result[$columnName] = $columnName; } Cache::put($key, serialize($result), 1); 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; }
public static function getPluginRegistryDataAllRecords($pluginCode) { $pluginCodeObj = new PluginCode($pluginCode); $pluginDirectoryPath = $pluginCodeObj->toPluginDirectoryPath(); $models = ModelModel::listPluginModels($pluginCodeObj); $result = []; foreach ($models as $model) { $modelRecords = self::listModelFiles($pluginCodeObj, $model->className); $modelDirectoryPath = $pluginDirectoryPath . '/models/' . strtolower($model->className) . '/'; foreach ($modelRecords as $fileName) { $label = $model->className . '/' . $fileName; $key = $modelDirectoryPath . $fileName; $result[$key] = $label; } } return $result; }