示例#1
0
 /**
  * Build the model class with the given name.
  *
  * @param  string  $name
  * @return string
  */
 protected function buildClass($name)
 {
     $stub = $this->files->get($this->getStub());
     // Setta as variaveis de classe
     $this->setClassVariables();
     // Traduz a stub
     Logic\UtilLogic::translateStub($this->translation, $stub);
     // Termina a traducao da stub e retorna
     return $this->replaceNamespace($stub, $name)->replaceClass($stub, $name);
 }
示例#2
0
文件: Admin.php 项目: mkny/cinimod
 public function __construct()
 {
     Logic\UtilLogic::addViewVar('scripts', ['/js/cinimod.js']);
 }
示例#3
0
 /**
  * Funcao para buscar a configuracao do [Model], baseado na area que ele esteja sendo chamado
  * 
  * @param string $type
  * @return array
  */
 public function _getConfig($model, $type = 'all')
 {
     $config = [];
     $cfg = UtilLogic::load(mkny_model_config_path($model) . '.php')['fields'];
     // mdd($cfg);
     // $cfg = Logic\UtilLogic::load(mkny_model_config_path(class_basename($model)).'.php')['fields'];
     switch ($type) {
         case 'datagrid':
             $config = array_filter($cfg, function ($var) {
                 return isset($var['grid']) && $var['grid'] == 1;
             });
             break;
         case 'form_add':
             $config = array_filter($cfg, function ($var) {
                 return isset($var['form_add']) && $var['form_add'] == 1;
             });
             break;
         case 'form_edit':
             $config = array_filter($cfg, function ($var) {
                 return isset($var['form_edit']) && $var['form_edit'] == 1;
             });
             break;
         case 'search':
             $config = array_filter($cfg, function ($var) {
                 return isset($var['searchable']) && $var['searchable'] == 1;
             });
             break;
         case 'all':
         default:
             $config = $cfg;
             break;
     }
     if (isset(array_values($config)[1]['order'])) {
         usort($config, function ($dt, $db) {
             if (!isset($db['order'])) {
                 $db['order'] = 0;
             }
             if (isset($dt['order'])) {
                 return $dt['order'] - $db['order'];
             } else {
                 return 0;
             }
         });
         // mdd($config);
         $newConfig = [];
         foreach ($config as $sortfix) {
             $newConfig[$sortfix['name']] = $sortfix;
         }
         $config = $newConfig;
     }
     return $config;
 }
示例#4
0
 /**
  * Retorna as configuracoes do datagrid
  * //Retorna o filtro padrao (definido no arquivo de configuracao)
  * 
  * @return array Filtros where em 'raw' ja tratado
  */
 protected function _getDefaultFilter()
 {
     // exit('abacate');
     $filters = Logic\UtilLogic::load(mkny_model_config_path(class_basename($this)) . '.php')['grid']['pre-filter'];
     foreach ($filters as $kfilter => $filter) {
         // Tratamento para parametros de where
         $matches = array();
         // Verifica as ocorrencias de variaveis enclausuradas
         preg_match('/\\{(.*?)\\}/', $filter, $matches);
         if (count($matches)) {
             $replace = null;
             eval('$replace = ' . $matches[1] . ';');
             $filters[$kfilter] = str_replace($matches[0], $replace, $filter);
         }
     }
     return $filters;
 }
示例#5
0
 /**
  * Funcao para buscar e montar o sistema de relacionamentos do Eloquent
  * 
  * @param string $table Nome da tabela que sera gerada
  * @return string Funcao gerada
  */
 public function _getRelations($table)
 {
     $this->var_config_relations = [];
     $stubModelConfig = $this->files->get(__DIR__ . '/stubs/model_function_relation.stub');
     // Pega os relacionamentos no banco
     $AppLogic = new Logic\AppLogic();
     $relations = $AppLogic->buildRelationships($table);
     // dd($relations);
     $field_types = $AppLogic->_getFieldTypes();
     if ($relations) {
         $stubs = [];
         foreach ($relations as $rel) {
             // Copia a stub mae
             $stub_child = trim(substr(trim($stubModelConfig), 5)) . "\n\n";
             // Tentativa fim
             // Trampo pra pegar a primeira coluna para o possivel nome do campo
             $columns = $AppLogic->buildColumns($rel->table_primary, $rel->schema_primary);
             $field_name = $columns[0]->name;
             foreach ($columns as $column) {
                 if ($field_types[$column->type] == 'string') {
                     $field_name = $column->name;
                     break;
                 }
             }
             // Setta as configuracoes
             $arrConfig = array('relation_class_name' => $AppLogic->controllerName($rel->table_primary), 'relation_field_id' => $rel->table_foreign_field, 'relation_field_fkey' => $rel->table_primary_field, 'relation_field_name' => $field_name);
             // Tentativa de automatizar o processo, na criacao da var_config
             $this->var_config_relations[$rel->table_foreign_field] = $arrConfig;
             // Traduz a stub
             Logic\UtilLogic::translateStub($arrConfig, $stub_child);
             $stubs[] = $stub_child;
         }
         return implode("\n\n", $stubs);
     } else {
         return '';
     }
 }
示例#6
0
 /**
  * Recebe o array da config e monta corretamente
  * 
  * @param string $controller Nome do controlador
  * @return void
  */
 public function postFile($module)
 {
     // Arquivo de configuracao
     $cfg_file = mkny_model_config_path($module) . '.php';
     \Mkny\Cinimod\Logic\UtilLogic::updateConfigFile($cfg_file, \Request::all());
     // Volta para a tela de selecao
     return redirect()->route('adm::config')->with(array('status' => 'success', 'message' => 'Arquivo atualizado!'));
 }
示例#7
0
 /**
  * Monta o template do configurador de model (var)
  * 
  * @return  array Dados do config
  */
 private function _getModelConfig($table)
 {
     $stubModelConfig = $this->files->get(__DIR__ . '/stubs/model_config_fields.stub');
     // Pega as colunas da tabela do banco
     $AppLogic = new Logic\AppLogic();
     $columns = $AppLogic->buildColumnsWithKeys($table);
     $field_types = $AppLogic->_getFieldTypes();
     $stubs = [];
     foreach ($columns as $indice => $row) {
         // Copia a stub mae
         $stub_child = trim(substr(trim($stubModelConfig), 5)) . "\n\n";
         // Setta as configuracoes
         $arrConfig = array('var_name' => $row->name, 'var_type' => $indice === 0 ? 'primaryKey' : $row->type, 'var_type_laravel' => $indice === 0 ? 'primaryKey' : $field_types[$row->type], 'go_to_grid' => 'true', 'go_to_form_add' => $indice === 0 ? 'false' : 'true', 'go_to_form_edit' => $indice === 0 ? 'false' : 'true', 'is_required' => $row->is_null == 'NO' ? 'true' : 'false', 'var_relationship' => 'false', 'var_values' => 'false', 'num_ordem' => $indice);
         // Trampa nos values pre-definidos
         if (isset($row->def_constraint) && !empty($row->def_constraint)) {
             // var_dump($col->def_constraint);exit;
             $check = $AppLogic->_getCheck($row->def_constraint);
             $arrConfig['var_type_laravel'] = 'select';
             $arrConfig['var_values'] = "['" . implode("','", $check) . "']";
         }
         // Trampa na relacao
         if (isset($this->var_config_relations[$row->name])) {
             $arrConfig['var_type_laravel'] = 'select';
             // variabilizar o relationship
             $arrConfig['var_relationship'] = "\n\t[\n\t\t" . "'model' => '\\App\\Models\\" . $this->var_config_relations[$row->name]['relation_class_name'] . "',\n\t\t" . "'field_key' => '{$this->var_config_relations[$row->name]['relation_field_id']}',\n\t\t" . "'field_fkey' => '{$this->var_config_relations[$row->name]['relation_field_fkey']}',\n\t\t" . "'field_show' => '{$this->var_config_relations[$row->name]['relation_field_name']}',\n\t\t" . "'where' => false,\n\t\t" . "]\n\t";
         }
         // Trampa fim
         // Traduz a stub
         Logic\UtilLogic::translateStub($arrConfig, $stub_child);
         $stubs[] = $stub_child;
     }
     return implode("\n\n", $stubs);
 }
示例#8
0
 public function getCombo()
 {
     $fields = app()->make('\\Mkny\\Cinimod\\Logic\\UtilLogic')->_getConfig($this->_getControllerName(), 'form_add');
     $field_request = \Request::input('method_name');
     $data = $this->model->relation($fields[Logic\UtilLogic::array_finder($fields, $field_request)]['relationship'], \Request::input('filter'));
     // return jsonp([
     //         'status' => 'success',
     //         'data' => $data
     //         ]);
     return ['status' => 'success', 'data' => $data];
 }
示例#9
0
 public function postFile($lang, $module = false)
 {
     // Armazena os dados enviados
     $req_fields = \Request::all();
     if (isset($req_fields['new_fields'])) {
         // Percorre todos os indices, em busca de novos fields
         foreach ($req_fields['new_fields']['key'] as $key_field => $new_field) {
             $to_set = $req_fields['new_fields']['value'][$key_field];
             // Faz o nest pro item
             \Mkny\Cinimod\Logic\UtilLogic::setNestedArrayValue($req_fields, $new_field, $to_set, '.');
         }
         unset($req_fields['new_fields']);
     }
     // mdd($req_fields);
     // if (isset($req_fields['new_file_name'])) {
     // return redirect()->route('adm::trans', [$lang, $req_fields['new_file_name']]);
     // }
     // Arquivo de configuracao
     $cfg_file = mkny_lang_path($lang . '/' . $module) . '.php';
     \Mkny\Cinimod\Logic\UtilLogic::updateConfigFile($cfg_file, $req_fields);
     // Volta para a tela de selecao
     return redirect()->action('\\' . get_class($this) . '@postFile', [$lang, $module])->with(array('status' => 'success', 'message' => 'Arquivo atualizado!'));
 }