Ejemplo n.º 1
0
 /**
  * Убирает вложенные head-ы
  */
 private function DeleteInnerHtml($html)
 {
     preg_match('~<head(.*?)>~is', $html, $m);
     if (!isset($m[0])) {
         return $html;
     }
     $headAttrs = isset($m[1]) ? $m[1] : '';
     // Атрибуты главного head-а если были
     $html = $m[0] === '<head>' ? $html : str_ireplace($m[0], '<head>', $html);
     // Заменяем первый head с атрибутами на обычный что бы проще было искать
     do {
         $open = stripos($html, '<head>') + strlen('<head>');
         $end = stripos($html, '</head>', $open);
         // Ищем где он закрывается
         $head = substr($html, $open, $end - $open + strlen('</head>'));
         // Берём этот подконтент
         // Есть ли в этом контенте подхеад?
         $open2 = strripos($head, '<head>');
         $end2 = $open2 + strlen('<head>');
         if ($open2 !== false) {
             $headWithoutSub = substr($head, 0, $open2) . substr($head, $end2, strlen($head) - $end2 - strlen('</head>'));
             $html = str_ireplace($head, $headWithoutSub, $html);
         }
     } while ($open2 !== false);
     // Если в контенте все еще есть открывающийся head
     return _StrReplaceFirst('<head>', "<head{$headAttrs}>", $html);
 }
Ejemplo n.º 2
0
/**
 * Путь до корня сайта с подставкой языка, нужна для ссылок
 */
function SiteRoot($uri = '')
{
    global $g_config;
    $uri = $uri == $g_config['defaultComponent'] ? '' : $uri;
    $dir = SITE_IN_DIR ? SITE_IN_DIR . '/' : '';
    $lang = LANG == DEF_LANG ? '' : LANG . '/';
    $ret = $lang || $uri ? "/{$dir}?q={$lang}{$uri}" : "/{$dir}";
    $ret = empty($ret) ? '/' : $ret;
    $ret = $g_config['useModRewrite'] ? _StrReplaceFirst('/?q=', '/', _StrReplaceFirst('&', '?', $ret)) : $ret;
    $ret = SITE_ROOT . substr($ret, 1);
    // Заменяем начальную страницу в URL а просто корень
    $ret = in_array($ret, array(SITE_ROOT . $g_config['defaultComponent'], SITE_ROOT . '?q=' . $g_config['defaultComponent'])) ? SITE_ROOT : $ret;
    return $ret;
}