Beispiel #1
0
 /**
  * call is re-formatted (regardless of http or file path) to be:
  * 1. relative to the JPATH_SITE or JUri::base() (or absolute path, c.f. $is_absolute)
  * 2. file path with directory separator
  */
 public static function normalizeCall($call, $is_absolute = false, $is_file_path = true, $maintain_query_string = true, $type = null, $passPHP = false, $cdn = false)
 {
     $path = $call;
     if (jbetoloHelper::beginWith($path, JBETOLO_URI_BASE)) {
         $path = str_ireplace(JBETOLO_URI_BASE, '', $path);
     } else {
         if (jbetoloHelper::beginWith($path, JBETOLO_URI_CDN)) {
             $path = str_ireplace(JBETOLO_URI_CDN, '', $path);
         } else {
             if (jbetoloHelper::beginWith($path, JPATH_SITE . '/')) {
                 $path = str_replace(JPATH_SITE . '/', '', $path);
             } else {
                 if (jbetoloHelper::beginWith($path, JPATH_SITE)) {
                     $path = str_replace(JPATH_SITE, '', $path);
                 } else {
                     if (jbetoloHelper::beginWith($path, JBETOLO_URI_PATH)) {
                         $path = substr($path, strlen(JBETOLO_URI_PATH));
                     } else {
                         $app = JFactory::getApplication();
                         if ($app->getName() != 'site' && !jbetoloHelper::beginWith($path, 'administrator')) {
                             $_path = JPATH_SITE . '/' . jbetoloFileHelper::cleanUpCall($path, '/', true, true);
                             if (!file_exists($_path)) {
                                 $path = 'administrator/' . $path;
                             }
                         }
                     }
                 }
             }
         }
     }
     $path = JPATH_SITE . '/' . jbetoloFileHelper::cleanUpCall($path, '/', true, true);
     if (!file_exists($path)) {
         if ($type && strtolower(substr($path, -strlen($type))) != $type) {
             $path .= '.' . $type;
         }
         if (!file_exists($path)) {
             return false;
         }
     }
     if (!$is_absolute || !$is_file_path) {
         $path = str_replace(JPATH_SITE . '/', '', $path);
     }
     if (!$is_file_path) {
         if ($is_absolute) {
             if ($path[0] == '/') {
                 $path = substr($path, 1);
             }
             if (JBETOLO_CDN_MAP && $cdn) {
                 $_path = $cdn . $path;
                 $excluded = jbetoloHelper::cdnExcluded();
                 if (jbetoloFileHelper::isOnPath($path, $excluded)) {
                     $_path = JBETOLO_URI_BASE . $path;
                 }
                 $path = $_path;
             } else {
                 $path = JBETOLO_URI_BASE . $path;
             }
         }
     }
     $isPHP = self::isPHP($path);
     if ($is_file_path && $isPHP && !$passPHP) {
         return false;
     }
     if ($maintain_query_string) {
         $call = explode('?', $call);
         if (count($call) > 1 && $isPHP) {
             if ($is_file_path) {
                 return false;
             }
             $path .= '?' . $call[1];
         }
     }
     $path = html_entity_decode($path);
     return $path;
 }