Exemplo n.º 1
0
 /**
  * Lists all AliasUrl models.
  *
  * @return mixed
  */
 public function actionIndex()
 {
     $view = $this->getView();
     AppAssets::register($view);
     $model = new Crud();
     $model->db_connection = 'db';
     $basePath = str_replace('/vendor/yiisoft/yii2', '', AppFile::useBackslash(Yii::getAlias('@yii')));
     if (is_dir($basePath . '/models')) {
         $model->models_path = 'app/models';
         if (!is_dir($basePath . '/models/search')) {
             mkdir($basePath . '/models/search');
         }
         $model->models_search_path = 'app/models/search';
     } else {
         $model->models_path = 'common/models';
         if (!is_dir(Yii::getAlias('@common') . '/models/search')) {
             mkdir(Yii::getAlias('@common') . '/models/search');
         }
         $model->models_search_path = 'common/models/search';
     }
     if (is_dir($basePath . '/controllers')) {
         $model->controllers_path = 'app/controllers';
     } else {
         $model->controllers_path = 'frontend/controllers';
     }
     $model->exclude_models = 'user,migration';
     $model->exclude_controllers = 'user,migration';
     return $this->render('index', ['model' => $model, 'tables' => self::getTables()]);
 }
Exemplo n.º 2
0
 /**
  * @param $path
  *
  * @return int
  */
 public static function folderCountInPath($path)
 {
     $path = AppFile::useBackslash($path);
     $path = AppFile::removeTrailingBackSlash($path);
     return sizeof(explode('/', $path));
 }
Exemplo n.º 3
0
 /**
  * @param $model
  */
 private function makeCrud($model)
 {
     $generator = new \yii\gii\generators\crud\Generator();
     $generator->enableI18N = TRUE;
     $generator->modelClass = AppFile::useForwardSlash($this->models_path . chr(92) . $model);
     $generator->searchModelClass = AppFile::useForwardSlash($this->models_search_path . chr(92) . $model);
     $generator->controllerClass = AppFile::useForwardSlash($this->controller_path . chr(92) . $model . 'Controller');
     if ($this->crud_template != 'default') {
         $generator->templates[$this->crud_template] = Yii::getAlias($this->crud_template_path);
         $generator->template = $this->crud_template;
     } else {
         $generator->template = 'default';
     }
     $files = $generator->generate();
     foreach ($files as $file) {
         $file->path = AppFile::useBackslash($file->path);
         $dir = AppFile::removeFileInPath($file->path);
         AppFile::buildPath($dir);
         $content = $file->content;
         if (strpos($file->path, '/views/') != FALSE) {
             $dir_name = trim(preg_replace('/([A-Z])/', " \$1", $model));
             $dir_name = strtolower(str_replace(' ', '-', $dir_name));
             $path = AppFile::useBackslash(Yii::getAlias('@' . $this->controller_path)) . '/' . $dir_name;
             $file->path = AppFile::fileFromPath($file->path);
             $path = preg_replace('/\\/controllers\\//', '/views/', $path);
             AppFile::buildPath($path);
             $file->path = $path . '/' . $file->path;
         }
         AppFile::writeFile($file->path, $content);
     }
 }