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