<?php
if (!function_exists('redirect')){
/**
* Redirecionamento de página
* By Codeigniter
* @param string $uri url ou rota a redirecionar
* @param string $method methodo do redirecionamento
* @param int $code código do redirencionamento
*/
function redirect($uri = '', $method = 'auto', $code = NULL){
if ( ! preg_match('#^(\w+:)?//#i', $uri)) {
$uri = base_url($uri);
}
if ($method === 'auto' && isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') !== FALSE){
$method = 'refresh';
}elseif ($method !== 'refresh' && (empty($code) OR ! is_numeric($code))){
if (isset($_SERVER['SERVER_PROTOCOL'], $_SERVER['REQUEST_METHOD']) && $_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.1'){
$code = ($_SERVER['REQUEST_METHOD'] !== 'GET')
? 303
: 307;
}else{
$code = 302;
}
}
switch ($method) {
case 'refresh':
header('Refresh:0;url='.$uri);
break;
default:
header('Location: '.$uri, TRUE, $code);
break;
}
exit;
}
}
if (!function_exists("_uri_string")) {
/**
* Contruir query string
* @param $uri
* @return string
*/
function _uri_string($uri){
if (getConfig("enable_query_strings") === FALSE) {
is_array($uri) && $uri = implode('/', $uri);
return ltrim($uri, '/');
} elseif (is_array($uri)) {
return http_build_query($uri);
}
return $uri;
}
}
if (!function_exists("base_url")) {
/**
* Obter url completa de uma rota
* @param string $uri rota
* @param null $protocol protocolo da rota Ex: http, https, ftp etc...
* @return string url completa da rota
*/
function base_url($uri = '', $protocol = NULL){
$base_url = slash_item('base_url');
if (isset($protocol)) {
if ($protocol === '') {
$base_url = substr($base_url, strpos($base_url, '//'));
} else {
$base_url = $protocol . substr($base_url, strpos($base_url, '://'));
}
}
return $base_url._uri_string($uri);
}
}
if (!function_exists("getQuery")) {
/**
* Obter todos os parametos passador por GET
* @param array $removeKeys remover parametros especificos
* @param bool $hasGet retornar com & se true ou ou ? se false
* @return string query string
*/
function getQuery($removeKeys = [], $hasGet = false){
$Query = $_SERVER['QUERY_STRING'];
parse_str($Query, $get_array);
foreach ($removeKeys as $key) {
if (isset($get_array[$key]))
unset($get_array[$key]);
}
if ($hasGet)
return "&" . http_build_query($get_array);
return "?" . http_build_query($get_array);
}
}
if (!function_exists("assets")) {
/**
* Carregar arquivos de layout na pasta setada nas configurações
* @param $file String nome do arquivo desejado
* @return string retorna url completa do arquivo
*/
function assets($file){
return base_url(getConfig("base_dir_assets").$file);
}
}
if (!function_exists("slash_item")) {
/**
* @param $item
* @return null|string
*/
function slash_item($item){
$Config = getConfig();
if (!isset($Config[$item])){
return NULL;
}elseif (trim($Config[$item]) === ''){
return '';
}
return rtrim($Config[$item], '/').'/';
}
}
if (!function_exists("randomCode")) {
/**
* Gerar string aléatoria
* @param int $tamanho tamanho da string que deseja gerar
* @return string
*/
function randomCode($tamanho = 8) {
$retorno = '';
$caracteres = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
$len = strlen($caracteres);
for ($n = 1; $n <= $tamanho; $n++) {
$rand = mt_rand(1, $len);
$retorno .= str_shuffle($caracteres)[$rand-1];
}
return $retorno;
}
}
if (!function_exists("dateToTime")) {
/**
* Converter formato de data para timestamp
* @param $date String Data desejada
* @param string $format Formato da data passada
* @return bool|int
*/
function dateToTime($date, $format = "YYYY-MM-DD"){
if (strlen($date) != strlen($format))
return 0;
switch ($format) {
case 'YYYY/MM/DD':
case 'YYYY-MM-DD':
list($y, $m, $d) = preg_split('/[-\.\/ ]/', $date);
break;
case 'YYYY/DD/MM':
case 'YYYY-DD-MM':
list($y, $d, $m) = preg_split('/[-\.\/ ]/', $date);
break;
case 'DD-MM-YYYY':
case 'DD/MM/YYYY':
list($d, $m, $y) = preg_split('/[-\.\/ ]/', $date);
break;
case 'MM-DD-YYYY':
case 'MM/DD/YYYY':
list($m, $d, $y) = preg_split('/[-\.\/ ]/', $date);
break;
case 'YYYYMMDD':
$y = substr($date, 0, 4);
$m = substr($date, 4, 2);
$d = substr($date, 6, 2);
break;
case 'YYYYDDMM':
$y = substr($date, 0, 4);
$d = substr($date, 4, 2);
$m = substr($date, 6, 2);
break;
default:
return false;
}
return mktime(0, 0, 0, $m, $d, $y);
}
}
if (!function_exists("str_replace_first")) {
/**
* Substituir primeira ocorrencia
* @param $from
* @param $to
* @param $content
* @return null|string|string[]
*/
function str_replace_first($from, $to, $content){
$from = '/' . preg_quote($from, '/') . '/';
return preg_replace($from, $to, $content, 1);
}
}
if (!function_exists('getConfig')){
/**
* Obter valor de Config especifica
* @param $key
* @return mixed
*/
function getConfig($key = null){
global $Config;
if (is_null($key))
return $Config;
return $Config[$key];
}
}
if (!function_exists('setConfig')){
/**
* Definir valor de Config especifica
* @param $key
* @return mixed
*/
function setConfig($key, $value){
global $Config;
$Config[$key] = $value;
}
}
if (!function_exists('apiSuccessCall')) {
/**
* Retorna um JSON de sucesso
* @param $data
* @param string $msg
* @param int $code
* @return false|string
*/
function apiSuccessCall($data, $msg = '', $code = 200){
return \System\Core\HooksRoutes::getInstance()->apiSuccessCallJson($data, $msg, $code);
}
}
if (!function_exists('apiErrorCall')) {
/**
* Retorna um JSON de erro
* @param $data
* @param string $msg
* @param int $code
* @return false|string
*/
function apiErrorCall($msg, $code = 404){
return \System\Core\HooksRoutes::getInstance()->apiErrorCallJson($msg, $code);
}
}
if (!function_exists('getDatetime')) {
/**
* Obter data no momento (Formato para MySQL)
* @return false|string
*/
function getDatetime(){
return date("Y-m-d H:i:s");
}
}
if (!function_exists('execute_callbacks')){
function execute_callbacks($callback, $type){
if (isset($callback[$type]) && !is_null($callback[$type])){
if (is_array($callback[$type])){
foreach ($callback[$type] as $callsback){
$onCallClass = $callsback[0];
$methodCall = $callsback[1];
$onCallInit = new $onCallClass();
$onCallInit->$methodCall($callback, $callsback);
}
}else {
$callback[$type]($callback);
}
}
}
}
if (!function_exists('execute_class')){
function execute_class($class, $method){
if (class_exists($class)) {
$initClass = new $class();
if (method_exists($initClass, $method)) {
$initClass->$method();
return true;
}
}
return false;
}
}
if (!function_exists('getUriPatch')) {
function getUriPatch(){
$str = str_replace_first(getConfig('base_dir'), "", $_SERVER['REQUEST_URI']);
$str = str_replace([$_SERVER['QUERY_STRING'], "?"], "", $str);
return $str;
}
}
if (!function_exists('loadFilesRoute')) {
function loadFilesRoute(){
$Routes = getConfig("files_route");
foreach ($Routes as $file){
if (file_exists($file)){
include_once($file);
}else if (file_exists(BASE_PATH."Configs/Routes/{$file}.php")) {
include_once(BASE_PATH . "Configs/Routes/{$file}.php");
}
}
}
}
if (!function_exists('addShortcode')){
function addShortcode($name, $function){
System\Libraries\Shortcode::getInstance()->addHandlers($name, $function);
}
}
if (!function_exists('renderShortcode')){
function renderShortcode($text){
return System\Libraries\Shortcode::getInstance()->getProcessor($text);
}
}
|