Example #1
0
function helper($helpers)
{
    foreach (setlist($helpers) as $helper) {
        core_caller::load_helper($helper);
    }
    return true;
}
Example #2
0
 public static function merge_args($args, $key)
 {
     // Se não for definido uma ordem padrão, usa index
     if ($key->args_order === null) {
         return array_values(array_merge($args, $key->args_default));
     }
     // Cria uma setlist
     $args_order = setlist($key->args_order);
     $args_data = array();
     // Se for uma informação determinada por um array...
     if (isset($args[0]) && is_array($args[0])) {
         return array_merge($key->args_default, $args[0]);
     }
     // Em outro caso, preenche as informações pela ordem determinada
     // Usa o valor padrão somente quando necessário
     foreach ($args_order as $index => $var) {
         $args_data[$var] = isset($args[$index]) ? $args[$index] : (isset($key->args_default[$var]) ? $key->args_default[$var] : null);
     }
     return $args_data;
 }
Example #3
0
 public function test_setlist()
 {
     $this->test(1, setlist(null));
     $this->test(2, setlist(''));
     $this->test(3, setlist('a'));
     $this->test(4, setlist('a, b, c, d'));
     $this->test(5, setlist('a, b, c\\, d'));
     $this->test(6, setlist(' a,  b,c  '));
     $this->test(7, setlist(array('key' => 'value')));
     $this->test(8, setlist(array('a, b, c')));
 }
Example #4
0
 public function set_language_order($lang_order)
 {
     $this->_lang_order = self::_get_order(setlist($lang_order));
     return $this;
 }
Example #5
0
 public static function is_domain($domains)
 {
     $current_uri = null;
     // Para cada domínio na lista...
     foreach (setlist($domains) as $domain) {
         // Define o schema do dominio
         $domain = explode('://', $domain, 2);
         if (!isset($domain[1])) {
             array_unshift($domain, 'http');
         }
         // Verifica se o scheme é compatível
         $scheme_url = isset($_SERVER['HTTPS']) ? 'https' : 'http';
         if ($domain[0] !== $scheme_url) {
             continue;
         }
         // Verifica a porta do domínio
         $domain = explode(':', $domain[1], 2);
         if (isset($domain[1]) && $domain[1] !== $_SERVER['SERVER_PORT']) {
             continue;
         }
         // Verifica o path
         $domain = explode('/', $domain[0], 2);
         if (isset($domain[1])) {
             // Armazena o URI de chamada
             if ($current_uri === null) {
                 $current_uri = isset($_SERVER['REDIRECT_URL']) ? $_SERVER['REDIRECT_URL'] : array_shift(explode('?', $_SERVER['REQUEST_URI'], 2));
             }
             if ($current_uri !== "/{$domain[1]}") {
                 continue;
             }
         }
         // Verifica o hostname
         if ($domain[0] !== $_SERVER['SERVER_NAME']) {
             // Verificação simplificada
             if (preg_match(CORE_HOSTNAME_VALID, $domain[0])) {
                 continue;
             }
             // Verificação avançada
             if (!preg_match(self::_replace_domain($domain[0]), $_SERVER['SERVER_NAME'])) {
                 continue;
             }
         }
         // Se tudo foi validado corretamente, retorna true
         return true;
     }
     return false;
 }