/** * @return array */ public static function set() { //Current URL $getUrl = http_url::getUrl(true); $parseUrl = parse_url($getUrl); $setPositionStart = strpos($parseUrl['path'], "/") + 1; if (strrpos($parseUrl['path'], "/") < 3) { $setPositionEnd = strrpos($parseUrl['path'], "/") - 1; $setModule = substr($parseUrl['path'], $setPositionStart, $setPositionEnd); } else { $setModule = substr($parseUrl['path'], $setPositionStart); } $getModule = explode('/', $setModule); return $getModule; }
/** * Smarty {geturl} function plugin * * Type: function * Name: getUrl * Date: August 21, 2009 * Purpose: Récupère l'url du nom de domaine ou défini le root du site automatiquement * Examples: {geturl} * Output: * @link * @author Gerits Aurelien * @version 1.0 * @param array * @param Smarty * @return string */ function smarty_function_geturl($params, $template) { return http_url::getUrl(); }
/** * @access public * @static * getUrlConcat Retourne la concaténation de la minification de fichiers * @param $options * @return string * @throws Exception * @author Gérits Aurelien and JB Demonte (http://jb.demonte.fr/) */ public static function getUrlConcat($options) { if (is_array($options)) { if (array_key_exists('caches', $options)) { $min_cachePath = $options['caches']; } else { throw new Exception("Error caches dir is not defined"); } if (array_key_exists('href', $options)) { $url = $options["href"]; $ext = 'css'; } elseif (array_key_exists('src', $options)) { $url = $options["src"]; $ext = 'js'; } if (array_key_exists('filesgroups', $options)) { $filesgroups = $options['filesgroups']; } else { $filesgroups = 'min/groupsConfig.php'; } if (array_key_exists('minDir', $options)) { $minDir = $options['minDir']; } else { $minDir = '/min/'; } if (array_key_exists('callback', $options)) { $callback = $options['callback']; } else { $callback = ''; } } else { throw new Exception("Error options is not array"); } $name = ""; //Parse a URL and return its components $parseurl = parse_url($url); //return position $position = strpos($parseurl['query'], '='); //return first query $query = substr($parseurl['query'], 0, $position); //return url after query $filesPath = substr(strrchr($parseurl['query'], '='), 1); // Group if ($query === 'g') { $filesCollection = array(); if (file_exists($filesgroups)) { $groups = (require $filesgroups); foreach (explode(",", $filesPath) as $group) { $filesCollection = array_merge($filesCollection, isset($groups[$group]) ? $groups[$group] : array()); } } else { throw new Exception("filesgroups is not exist"); } // Files } elseif ($query === 'f') { $filesCollection = explode(",", $filesPath); } foreach ($filesCollection as &$file) { $file = ltrim($file, "/"); $name .= $file . "|" . filemtime(self::basePath() . $file) . "|" . filesize(self::basePath() . $file) . "/"; } $sha1name = sha1($name) . "." . $ext; if (file_exists($min_cachePath) and is_writable($min_cachePath)) { $filepath = realpath(".") . "/" . $min_cachePath . "/" . $sha1name; if (!file_exists($filepath)) { $content = file_get_contents(http_url::getUrl() . $minDir . '?f=' . implode(",", $filesCollection)); file_put_contents($filepath, $content); } return $callback . "/" . $min_cachePath . "/" . $sha1name; } else { throw new Exception("Error " . $min_cachePath . " is not writable"); } }