private static function keyName($key) { return Filter::dirName($key); }
public function rewriteUrl($url, $keyword = null) { $_url = $url = trim($url, "\t\n\r\v. /"); if (!array_key_exists($_url, self::$urlCache)) { // on supprime les params incomplet if (strpos($url, '{')) { $url = preg_replace('#/(?:[a-z0-9_]*)-\\{(?:[a-z0-9_]*)\\}#', '', $url); $url = preg_replace('#/{[a-z0-9_]*\\}#', '', $url); } if (strpos($url, '%7B')) { $url = preg_replace('#/%7B[a-z0-9_]*\\%7D#', '', $url); } self::$urlCache[$_url] = $url; } else { $url = self::$urlCache[$_url]; } if (!empty($keyword)) { $keyword = (string) $keyword; if (!array_key_exists($keyword, self::$keywordCache)) { $kwd = Filter::dirName($keyword); $kwd = str_replace('_', '-', $kwd); $kwd = trim($kwd, '-'); $kwd = preg_replace("#-{2,}#", '-', '+' . $kwd); self::$keywordCache[$keyword] = $kwd; } else { $kwd = self::$keywordCache[$keyword]; } $url = preg_replace('#/$#', '', $url) . $kwd; } return $url; }