[Хак] Избавляемся от "xfsearch" DLE 11.0 и выше

[Хак] Избавляемся от "xfsearch" DLE 11.0 и выше

  1. Kubo
    1. В файлах engine/modules/show.short.php, engine/modules/show.custom.php, engine/modules/topnews.php и два раза в engine/modules/show.full.php находим:

    Код:
    if( $config['allow_alt_url'] ) $value3[] = "<a href=\"" . $config['http_home_url'] . "xfsearch/" .$value[0]."/". urlencode( $value2 ) . "/\">" . $value2 . "</a>";
    
    меняем на:

    Код:
    if( $config['allow_alt_url'] ) $value3[] = "<a href=\"" . $config['http_home_url'] .$value[0]."/". urlencode( $value2 ) . "/\">" . $value2 . "</a>";
    
    2. Открываем engine/engine.php находим:

    Код:
    $url_page = $config['http_home_url'] . "xfsearch/" . urlencode ( str_replace("'", "'", $xf) );
    
    или

    Код:
    $url_page = $config['http_home_url'] . "xfsearch/" . urlencode ( str_replace("&#039;", "'", $xf) );
    
    и меняем на:

    Код:
    $url_page = $config['http_home_url'] . urlencode($_GET['xn']) . "/" . urlencode ( str_replace("&#039;", "'", $xf) );
    
    3. В файле .htaccess находим

    Код:
    RewriteRule ^xfsearch/(.*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]
    
    И после добавляем:

    Код:
    RewriteRule ^(year)/([^/]*)(/?)+$ index.php?do=xfsearch&xn=$1&xf=$2 [L]
    RewriteRule ^(year)/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xn=$1&xf=$2&cstart=$3 [L]
    
    Для примера, мы добавили дополнительное поле "год", если у вас больше дополнительных полей как перекрестных ссылок - то добавьте нужные вам поля,таким же образом.

    P.S Автор хака не я. Я всего лишь доработал его, чтобы он работал на 11 версиях DLE.Все проверено, все работает, пагинация в том числе.
    Mr.Porno нравится это.