Пример #1
0
 public function getRebuild(Request $request, $id = 0)
 {
     $row = \DB::table('tb_module')->where('module_id', $id)->get();
     if (count($row) <= 0) {
         return Redirect::to('sximo/module')->with('messagetext', 'Can not find module')->with('msgstatus', 'error');
     }
     $row = $row[0];
     $this->data['row'] = $row;
     $config = \SiteHelpers::CF_decode_json($row->module_config);
     $class = $row->module_name;
     $ctr = ucwords($row->module_name);
     $path = $row->module_name;
     // build Field entry
     $f = '';
     $req = '';
     // End Build Field Entry
     $codes = array('controller' => ucwords($class), 'class' => $class, 'fields' => $f, 'required' => $req, 'table' => $row->module_db, 'title' => $row->module_title, 'note' => $row->module_note, 'key' => $row->module_db_key, 'sql_select' => $config['sql_select'], 'sql_where' => $config['sql_where'], 'sql_group' => $config['sql_group']);
     if (!isset($config['form_layout'])) {
         $config['form_layout'] = array('column' => 1, 'title' => $row->module_title, 'format' => 'grid', 'display' => 'horizontal');
     }
     $codes['form_javascript'] = \SiteHelpers::toJavascript($config['forms'], $path, $class);
     $codes['form_entry'] = \SiteHelpers::toForm($config['forms'], $config['form_layout']);
     $codes['form_display'] = isset($config['form_layout']['display']) ? $config['form_layout']['display'] : 'horizontal';
     $codes['form_view'] = \SiteHelpers::toView($config['grid']);
     $codes['masterdetailmodel'] = '';
     $codes['masterdetailinfo'] = '';
     $codes['masterdetailgrid'] = '';
     $codes['masterdetailsave'] = '';
     $codes['masterdetailform'] = '';
     $codes['masterdetailview'] = '';
     $codes['masterdetailjs'] = '';
     $codes['masterdetaildelete'] = '';
     /* Master detail */
     if (isset($config['subgrid']) && count($config['subgrid']) >= 1) {
         $md = \SiteHelpers::toMasterDetail($config['subgrid'][0]);
         $codes['masterdetailmodel'] = $md['masterdetailmodel'];
         $codes['masterdetailinfo'] = $md['masterdetailinfo'];
         $codes['masterdetailgrid'] = $md['masterdetailgrid'];
         $codes['masterdetailsave'] = $md['masterdetailsave'];
         $codes['masterdetailform'] = $md['masterdetailform'];
         $codes['masterdetailjs'] = $md['masterdetailjs'];
         $codes['masterdetailview'] = $md['masterdetailview'];
         $codes['masterdetaildelete'] = $md['masterdetaildelete'];
     }
     /* End Master Detail */
     $dir = base_path() . '/resources/views/' . $class;
     $dirC = app_path() . '/Http/Controllers/';
     $dirM = app_path() . '/Models/';
     if (!is_dir($dir)) {
         mkdir($dir, 0777);
     }
     // BLANK TEMPLATE
     if ($row->module_type == 'generic') {
         $template = base_path() . '/resources/views/sximo/module/template/blank/';
         $controller = file_get_contents($template . 'controller.tpl');
         $grid = file_get_contents($template . 'grid.tpl');
         $view = file_get_contents($template . 'view.tpl');
         $form = file_get_contents($template . 'form.tpl');
         $model = file_get_contents($template . 'model.tpl');
         $build_controller = \SiteHelpers::blend($controller, $codes);
         $build_view = \SiteHelpers::blend($view, $codes);
         $build_form = \SiteHelpers::blend($form, $codes);
         $build_grid = \SiteHelpers::blend($grid, $codes);
         $build_model = \SiteHelpers::blend($model, $codes);
         file_put_contents($dirC . "{$ctr}Controller.php", $build_controller);
         file_put_contents($dirM . "{$ctr}.php", $build_model);
         file_put_contents($dir . "/index.blade.php", $build_grid);
         file_put_contents($dir . "/form.blade.php", $build_form);
         file_put_contents($dir . "/view.blade.php", $build_view);
     }
     if ($row->module_type == 'report') {
         $template = base_path() . '/resources/views/sximo/module/template/report/';
         $controller = file_get_contents($template . 'controller.tpl');
         $grid = file_get_contents($template . 'grid.tpl');
         $model = file_get_contents($template . 'model.tpl');
         $build_controller = \SiteHelpers::blend($controller, $codes);
         $build_grid = \SiteHelpers::blend($grid, $codes);
         $build_model = \SiteHelpers::blend($model, $codes);
         file_put_contents($dirC . "{$ctr}Controller.php", $build_controller);
         file_put_contents($dirM . "{$ctr}.php", $build_model);
         file_put_contents($dir . "/index.blade.php", $build_grid);
     }
     if ($row->module_type == 'addon') {
         $template = base_path() . '/resources/views/sximo/module/template/native/';
         $controller = file_get_contents($template . 'controller.tpl');
         $grid = file_get_contents($template . 'grid.tpl');
         $view = file_get_contents($template . 'view.tpl');
         $form = file_get_contents($template . 'form.tpl');
         $model = file_get_contents($template . 'model.tpl');
         $build_controller = \SiteHelpers::blend($controller, $codes);
         $build_view = \SiteHelpers::blend($view, $codes);
         $build_form = \SiteHelpers::blend($form, $codes);
         $build_grid = \SiteHelpers::blend($grid, $codes);
         $build_model = \SiteHelpers::blend($model, $codes);
         if (!is_null($request->input('rebuild'))) {
             // rebuild spesific files
             if ($request->input('c') == 'y') {
                 file_put_contents($dirC . "{$ctr}Controller.php", $build_controller);
             }
             if ($request->input('m') == 'y') {
                 file_put_contents($dirM . "{$ctr}.php", $build_model);
             }
             if ($request->input('g') == 'y') {
                 file_put_contents($dir . "/index.blade.php", $build_grid);
             }
             if ($row->module_db_key != '') {
                 if ($request->input('f') == 'y') {
                     file_put_contents($dir . "/form.blade.php", $build_form);
                 }
                 if ($request->input('v') == 'y') {
                     file_put_contents($dir . "/view.blade.php", $build_view);
                 }
             }
         } else {
             file_put_contents($dirC . "{$ctr}Controller.php", $build_controller);
             file_put_contents($dirM . "{$ctr}.php", $build_model);
             file_put_contents($dir . "/index.blade.php", $build_grid);
             file_put_contents($dir . "/form.blade.php", $build_form);
             file_put_contents($dir . "/view.blade.php", $build_view);
         }
     }
     self::createRouters();
     return Redirect::to('sximo/module')->with('messagetext', 'Code Script has been replaced successfull')->with('msgstatus', 'success');
 }