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'); }