public function redirect($action, $controller = null, $args = []) { $controller = is_null($controller) ? $this->route['controller'] : $controller; $url = URLSITE . $controller . '/' . $action; foreach ($args as $k => $v) { $url .= "/{$k}/{$v}"; } Utils::go($url); }
public function redirect($action = 'index', $args = [], $controller = null, $module = null) { if (is_null($controller) && is_null($module)) { $url = urlAction($action); } elseif (is_null($module) && !is_null($controller)) { $url = URLSITE . $controller . '/' . $action; } elseif (!is_null($module) && !is_null($controller)) { $url = URLSITE . $module . '/' . $controller . '/' . $action; } else { $url = URLSITE; } if (count($args)) { foreach ($args as $key => $value) { $url .= "/{$key}/{$value}"; } } Utils::go($url); }
private function csv($data) { $csv = implode("\n", $data); $name = date('d_m_Y_H_i_s') . '_' . $this->entity . '_export.csv'; $file = TMP_PUBLIC_PATH . DS . $name; File::delete($file); File::put($file, $csv); Utils::go(repl('nma.php', '', URLSITE) . 'tmp/' . $name); }
private function export($type, $rows) { $fieldInfos = isAke($this->config, 'fields'); $fields = $this->fields(); if ('excel' == $type) { $excel = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="ProgId" content="Excel.Sheet"> <meta name="Generator" content="Microsoft Excel 11"> <style id="Classeur1_17373_Styles"> <!--table {mso-displayed-decimal-separator:"\\,"; mso-displayed-thousand-separator:" ";} .xl1517373 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:windowtext; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Arial; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:general; vertical-align:bottom; mso-background-source:auto; mso-pattern:auto; white-space:nowrap;} .xl2217373 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#FFFF99; font-size:10.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Arial, sans-serif; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:bottom; background:#003366; mso-pattern:auto none; white-space:nowrap;} --> </style> </head> <body> <!--[if !excel]> <![endif]--> <div id="Classeur1_17373" align="center" x:publishsource="Excel"> <table x:str border="0" cellpadding="0" cellspacing="0" width=640 style="border-collapse: collapse; table-layout: fixed; width: 480pt"> <col width="80" span=8 style="width: 60pt"> <tr height="17" style="height:12.75pt"> ##headers## </tr> ##content## </table> </div> </body> </html>'; $tplHeader = '<td class="xl2217373">##value##</td>'; $tplData = '<td>##value##</td>'; $headers = []; foreach ($fields as $field) { $fieldSettings = isAke($fieldInfos, $field); $exportable = isAke($fieldSettings, 'is_exportable', true); $label = isAke($fieldSettings, 'label', ucfirst($field)); if (true === $exportable) { $headers[] = \Thin\Html\Helper::display($label); } } $xlsHeader = ''; foreach ($headers as $header) { $xlsHeader .= str_replace('##value##', $header, $tplHeader); } $excel = str_replace('##headers##', $xlsHeader, $excel); $xlsContent = ''; foreach ($rows as $item) { $xlsContent .= '<tr>'; foreach ($fields as $field) { $fieldSettings = isAke($fieldInfos, $field); $exportable = isAke($fieldSettings, 'is_exportable', true); if (true === $exportable) { $value = isAke($item, $field, ' '); if (Arrays::exists('content_list', $fieldSettings)) { $closure = $fieldSettings['content_list']; if (is_callable($closure)) { $value = call_user_func_array($closure, array($item)); } } if (empty($value)) { $value = ' '; } $xlsContent .= str_replace('##value##', \Thin\Html\Helper::display($value), $tplData); } } $xlsContent .= '</tr>'; } $excel = str_replace('##content##', $xlsContent, $excel); $name = 'extraction_' . $this->model->db . '_' . $this->model->table . '_' . date('d_m_Y_H_i_s') . '.xlsx'; $file = TMP_PUBLIC_PATH . DS . $name; File::delete($file); File::put($file, $excel); Utils::go(URLSITE . '/tmp/' . $name); } elseif ('pdf' == $type) { $pdf = '<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="//fonts.googleapis.com/css?family=Abel" rel="stylesheet" type="text/css" /> <title>Extraction ' . $this->model->db . ' - ' . $this->model->table . '</title> <style> * { font-family: Abel, ubuntu, verdana, tahoma, arial, sans serif; font-size: 11px; } h1 { text-transform: uppercase; font-size: 135%; } th { font-size: 120%; color: #fff; background-color: #394755; text-transform: uppercase; } td { border: solid 1px #394755; } a, a:visited, a:hover { color: #000; text-decoration: underline; } </style> </head> <body> <center><h1>Extraction « ' . $this->model->db . ' - ' . $this->model->table . ' »</h1></center> <p></p> <table width="100%" cellpadding="5" cellspacing="0" border="0"> <tr> ##headers## </tr> ##content## </table> <p>© GP 1996 - ' . date('Y') . ' </p> </body> </html>'; $tplHeader = '<th>##value##</th>'; $tplData = '<td>##value##</td>'; $headers = []; foreach ($fields as $field) { $fieldSettings = isAke($fieldInfos, $field, []); $exportable = isAke($fieldSettings, 'is_exportable', true); if (true === $exportable) { $label = isAke($fieldSettings, 'label', ucfirst($field)); $headers[] = \Thin\Html\Helper::display($label); } } $pdfHeader = ''; foreach ($headers as $header) { $pdfHeader .= str_replace('##value##', $header, $tplHeader); } $pdf = str_replace('##headers##', $pdfHeader, $pdf); $pdfContent = ''; foreach ($rows as $item) { $pdfContent .= '<tr>'; foreach ($fields as $field) { $fieldSettings = isAke($fieldInfos, $field, []); $exportable = isAke($fieldSettings, 'is_exportable', true); if (true === $exportable) { $value = isAke($item, $field, ' '); if (Arrays::exists('content_list', $fieldSettings)) { $closure = $fieldSettings['content_list']; if (is_callable($closure)) { $value = call_user_func_array($closure, array($item)); } } if (empty($value)) { $value = ' '; } $pdfContent .= str_replace('##value##', \Thin\Html\Helper::display($value), $tplData); } } $pdfContent .= '</tr>'; } $pdf = str_replace('##content##', $pdfContent, $pdf); return \Thin\Pdf::make($pdf, "extraction_" . $this->model->db . "_" . $this->model->table . "_" . date('d_m_Y_H_i_s'), false); } }
public static function ssl() { Utils::go(repl('http:', 'https:', trim(URLSITE, '/')) . Request::uri()); }
private function csv($data) { $csv = implode("\n", $data); $name = date('d_m_Y_H_i_s') . '_' . $this->table . '_export.csv'; $file = TMP_PUBLIC_PATH . DS . $name; File::delete($file); File::put($file, $csv); Utils::go(str_replace(['jma_dev.php', 'jma_prod.php'], '', URLSITE) . 'tmp/' . $name); }
public static function redirect($name, $args = []) { Utils::go(static::to($name, $args)); exit; }
public function allrightsAction() { $from = $_SERVER['HTTP_REFERER']; $lastAction = Arrays::last(explode('/', $from)); $permissions = array('list', 'read', 'create', 'duplicate', 'update', 'delete', 'export'); $user = request()->getUser(); $action = request()->getAction(); $items = $this->view->items; if (!is_null($user) && !is_null($action)) { $auth = auth($user); $role = $auth->getRole(); if (false !== $auth->user() && false === $auth->is('admin')) { if ($action == 'can') { foreach ($items as $item => $info) { foreach ($permissions as $perm) { $permission = $item . '_' . $perm; $actualAuth = $auth->can($permission); if (false === $actualAuth) { $right = $auth->addPermission(array('name' => $permission)); $auth->addRolePermission($role, $right); } } } } elseif ($action == 'cannot') { foreach ($items as $item => $info) { foreach ($permissions as $perm) { $permission = $item . '_' . $perm; $actualAuth = $auth->can($permission); if (true === $actualAuth) { $actualPerm = $auth->permission($permission); $auth->removePermission($actualPerm); } } } } } Utils::go(URLSITE . 'crud/static/' . $lastAction); } else { $this->forward('home'); } }