Пример #1
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $c = strtolower($this->argument('controller'));
     $files = [];
     $files[] = mkny_models_path($c) . '.php';
     $files[] = mkny_model_config_path($c) . '.php';
     $files[] = mkny_presenters_path($c) . 'Presenter.php';
     $files[] = mkny_controllers_path($c) . 'Controller.php';
     $files[] = mkny_requests_path($c) . 'Request.php';
     $files[] = mkny_lang_path(\App::getLocale() . '/' . $c) . '.php';
     $errors = [];
     foreach ($files as $file) {
         if (!$this->files->exists($file)) {
             $errors[] = $file;
         }
     }
     if (!$this->option('force') && count($errors)) {
         $this->error("Nao foi possivel executar o delete-automatico!\nAlguns arquivos estao ausentes!");
     } else {
         if ($this->option('force') || $this->confirm("Deseja realmente remover os arquivos: \n'" . implode("',\n'", $files))) {
             foreach ($files as $file) {
                 $this->files->delete($file);
             }
             $this->info('Deleted!');
         }
     }
 }
Пример #2
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;
 }
Пример #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
 /**
  * Varre o diretorio em busca de arquivos de configuracao
  * 
  * @return array
  */
 private function _getConfigFiles()
 {
     // Pega todos os arquivos do diretorio
     $configs = \File::files(mkny_model_config_path());
     // Monta o array
     $arrConfig = array();
     foreach ($configs as $config) {
         $arrConfig[] = substr(class_basename($config), 0, -4);
     }
     return $arrConfig;
 }
Пример #5
0
 protected function _datagrid(array $fields, $Model = null, $datasourceAction = null, $recordOnly = false)
 {
     // Nao sei pq fiz isso, nao tem como sair por enquanto haha
     $field_names = array_keys($fields);
     // Ordenacao dos campos {
     // Busca no Model, o valor para orderBy (ou diz que e a primeira chave asc)
     $orderModel = $Model ? $Model->orderBy : array('0', 'asc');
     // Vindo de parametrizacao (url)
     $order = \Request::input('order', $orderModel[0]);
     // Se for numerico, traduz para o nome do campo propriamente dito
     if (is_numeric($order)) {
         $order = $field_names[$order];
     }
     // Trava anti bug (verifica se existe o campo que ta sendo passado)
     if (!in_array($order, $field_names)) {
         $order = $orderModel[0];
     }
     // Ordenacao dos campos }
     // Quantidade por pagina {
     // Recupera a quantidade de campos
     //
     // *Existe um campo no model eloquent que parece que faz isso automatico, verificar depois*
     $limit = \Request::input('perpage', $Model ? $Model->maxPerPage : 10) ?: 10;
     // Para nao deixar o sistema sobrecarregar, deixa o limit maximo em 1000 registros;
     $limit = $limit > 1000 ? 1000 : $limit;
     // Quantidade por pagina }
     // Pagina atual {
     // Complementando o Limit, vem o offset
     // A acao de datagrid principal ja trata isso automaticamente, mas quando e uma dependendte elas precisam dessa informacao pra cortar o array
     $page = \Request::input('page', 1);
     $offset = $page * $limit - $limit;
     // Pagina atual }
     // Cardinalidade {
     $card = \Request::input('card', $orderModel[1]);
     if (!in_array($card, array('asc', 'desc'))) {
         $card = 'asc';
     }
     // Cardinalidade }
     // Escolhe o _datasource que sera utilizado
     $datasourceAction = $datasourceAction ? $datasourceAction : '_datasource';
     // Faz a chamada do _datasource
     $_datasource = $this->{$datasourceAction}($field_names, $order, $card, $limit, $offset, $fields);
     // Se quiser buscar apenas os registros basicos
     if ($recordOnly) {
         return $_datasource->toArray();
     }
     $datagrid_config = Logic\UtilLogic::load(mkny_model_config_path($this->_getControllerName()) . '.php')['grid'];
     // mdd($datagrid_config);
     $datagrid = app()->make('\\Mkny\\Cinimod\\Logic\\DatagridLogic', [$datagrid_config])->get(is_object($_datasource) ? $_datasource->items() : $_datasource, $fields);
     // dd($_datasource);
     // echo $_datasource->currentPage();
     // echo $_datasource->currentPage();
     // exit;
     return array('configuration' => $datagrid_config, 'table' => $datagrid, 'info' => array('total' => $_datasource->total(), 'links' => $_datasource->links()));
 }