/** * Inicia uma sessão * @param string $sessionName */ public function __construct($sessionName, $ProtectedModule = false) { self::start(); $this->SessionName = ($ProtectedModule ? (is_string($ProtectedModule) ? $ProtectedModule : APP::getCurrentModule()) . '-' : null) . $sessionName; if (!isset($_SESSION[self::$_SESSION_][$this->SessionName])) { $_SESSION[self::$_SESSION_][$this->SessionName] = null; } }
/** * Retorna url formatada * @param type $Controller_Action * @param array $Variables * @param type $Modulo * @param array $VariaveisGet * @param boolean $secure * @return string */ function url($Controller_Action = '', array $Variables = null, $Modulo = null, array $VariaveisGet = null, $secure = false) { # Base $url = base_url(); # Modulo if ($Modulo === null) { $Modulo = APP::getCurrentModule(); } if ($Modulo != APP::getDefaultModule() or $Controller_Action and APP::getModules(explode('/', $Controller_Action)[0])) { $url .= '/' . $Modulo; } # Controller/Action if (!empty($Controller_Action)) { if ($Variables) { if (count($ex = explode('/', $Controller_Action)) == 1) { if (controller_exists($ex[0])) { $url .= "/{$ex[0]}/index"; } else { $url .= '/index/' . $ex[0]; } } else { $url .= '/' . $Controller_Action; } } else { $url .= '/' . $Controller_Action; } } else { if ($Variables) { $url .= 'index/index'; } } # Variaveis if ($Variables) { # Chaves númericas if (key($Variables) === 0) { foreach ($Variables as $key => $value) { $url .= '/' . url_paranformat($value); } } else { foreach ($Variables as $key => $value) { $url .= '/' . url_paranformat($key) . '/' . url_paranformat($value); } } } # Retornando a URL if ($VariaveisGet) { $url .= '?' . http_build_query($VariaveisGet); } # HTTPS if ($secure) { $url = str_replace('http:', 'https:', $url); } return $url; }
/** * Inicia a aplicação * @param array $APPConfig * @param string $PublicPath */ static function Initialize(array $APPConfig, $PublicPath = 'public_html') { APP::setGlobal('public_path', $PublicPath); $Action = $Controller = null; self::$APP_CONFIG = $APPConfig; self::$Modules = isset(self::$APP_CONFIG['modules']) ? self::$APP_CONFIG['modules'] : self::$APP_CONFIG; self::$DefaultModule = key(self::$Modules); # URL Variables $values = !empty($_GET['GET_VARS']) ? explode('/', strtolower($_GET['GET_VARS'])) : [self::$DefaultModule, 'index', 'index']; # Modulo if (isset(self::$Modules[$values[0]])) { self::$CurrentModule = $values[0]; unset($values[0]); $values = array_values($values); } else { self::$CurrentModule = self::$DefaultModule; } # Controller if (empty($values[0]) or controller_exists(strtolower($values[0])) === false) { $Controller = 'index'; } else { $Controller = $values[0]; unset($values[0]); $values = array_values($values); } # Action if (empty($values[0]) and controller_action_exists($Controller, 'index')) { $Action = 'indexAction'; } else { if (empty($values[0]) or !($Action = controller_action_exists($Controller, $values[0]))) { self::$Parans['action'] = strtolower(@$values[0]); $Action = 'notFoundPage'; } else { unset($values[0]); $values = array_values($values); } } # Parâmetros númericos self::$Parans = $values; # Parâmetros nomeados if (count(self::$Parans) > 1) { for ($i = 0; $i < count($values); $i += 2) { if (isset($values[$i + 1])) { self::$Parans[$values[$i]] = $values[$i + 1]; } } } # Modulo if (!isset(self::$Parans['module'])) { self::$Parans['module'] = APP::getCurrentModule(); } # Controller if (!isset(self::$Parans['controller'])) { self::$Parans['controller'] = APP::getControllerName(); } # Action if (!isset(self::$Parans['action'])) { self::$Parans['action'] = $Action; } # Valores GET if (preg_match('/\\?/', inputServer('REQUEST_URI'))) { parse_str(preg_replace('/.*\\?/', NULL, inputServer('REQUEST_URI')), $getValues); foreach ($getValues as $key => $value) { $_GET[$key] = $value; if (!isset(self::$Parans[$key])) { self::$Parans[$key] = $value; } } } # Action self::$Action = $Action; # Cria instancia do modulo if (file_exists($ModuleClass = ABSPATH . '/' . self::getCurrentModule(true) . '/Module.class.php')) { file_include($ModuleClass); self::$Module = new Module(); } # Executando a action self::setController($Controller); self::getController()->{$Action}(); }
/** * Retorna todas as pasta para o include * @return array */ function get_all_paths() { # Pega o valor já gravado if (APP::getGlobal('get_all_paths')) { return APP::getGlobal('get_all_paths'); } # Pastas do sistema $Paths = ['', 'system', 'system/core', 'system/crud', 'system/helpers', 'system/helpers/Bootstrap', 'system/models', 'system/libraries', 'system/models', 'system/valueobject']; # Não possuí cache listando pastas if (!APP::getCurrentModule()) { return $Paths; } else { $Paths = array_merge([APP::getCurrentModule(true)], list_paths(APP::getCurrentModule(true)), $Paths); $module = APP::getModules()[APP::getCurrentModule()]; $general = is_array(get_config('library')) ? get_config('library') : []; if (is_array($module)) { foreach (['library'] as $key => $value) { if (is_array($value)) { $general = array_merge($general, $value); } else { $general[] = $value; } } } foreach ($general as $key => $path) { $Paths = array_merge([$path], list_paths($path), $Paths); } APP::setGlobal('get_all_paths', $Paths); return $Paths; } }
/** * Display all scripts */ public static function displayFooter() { print "\n\t"; print "<!-- JavaScript -->\n\t"; print "<script type='text/javascript' ><!--" . "\n\t\tvar URL_APP = '" . base_url() . "';" . "\n\t\tvar URL_MODULE = '" . url() . "';" . "\n\t\tvar CONTROLLER = '" . APP::getControllerName() . "';" . "\n\t\tvar ACTION = '" . APP::getAction() . "';" . "\n\t\tvar MODULE = '" . APP::getCurrentModule() . "';" . "\n\t\tvar MODULE_DEFAULT = '" . APP::getDefaultModule() . "';" . "\n\t--></script>\n\t"; if (count(self::$JS) > 0) { foreach (self::$JS as $src) { if (!preg_match('/^<script/i', $src)) { print "<script type=\"text/javascript\" language=\"javascript\" src=\"{$src}\" charset=\"" . self::$Charset . "\" ></script>\n\t"; } else { print "{$src}\n\t"; } } } print "<!-- Tempo de execução: " . calc_execution_time(2) . " milesegundos -->\n\n\t"; }