SEO URL / ЧПУ 1.1.0

Добавляет генерацию ссылок ЧПУ.

  1. Sprinx
    Совместимость:
    проверялся на совместимость
    Изменения в БД:
    не требуются
    Автор:
    Sprinx
    Общественное достояние:
    нет
    Описание: добавляет генерацию ссылок ЧПУ.

    Возможности:
    • Удобная генерация и добавление ссылок
    • Возможна работа без реврайтов (работает на хостингах)
    • Поддержка коротких ссылок (domain.ru/topic/4437/)
    SEO_ID - это ид, например топика, который передается в урл domain.ru/topic/4437/

    SEO_MODE - это имя файла, например топика, который передается в урл(лежит в папке page) domain.ru/topic/4437/
    Инструкция по установке:
    Открыть common.php:
    Найти:
    PHP:
    // Board init
    if (defined('IN_FORUM'))
    {
    Выше добавить:
    PHP:
    require(INC_DIR .'classes/seoUrl.php');
    Открыть init_bb.php:
    Найти:
    PHP:
    if (defined('PAGE_HEADER_SENT')) return;
    Ниже добавить:
    PHP:
    if (!defined('BB_SCRIPT')) define('BB_SCRIPT''undefined');
    Открыть page_header.tpl:
    Найти:
    PHP:
    {META}
    Выше добавить:
    PHP:
    <!-- IF not IN_ADMIN -->
    <
    base href="{SITE_URL}" />
    <!-- ENDIF -->
    Открыть page_header.php:
    Найти и удалить
    PHP:
    if (!defined('BB_SCRIPT')) define('BB_SCRIPT''undefined');
    Открыть config.php и добавить:
    PHP:
    //seoUrl
    $bb_cfg['romanize'] = true//транслит
    $bb_cfg['no_rewite_url'] = true//выключение реврайта

    $bb_cfg['fulllink'] = array(
       
    'ucp' => array(
           
    'register',
           
    'users',
           
    'settings',
         ),
    );
    Реврайт для nginx:
    PHP:
    location / {
         
    try_files $uri $uri/ /index.php?$uri&$args;
       }
    Реврайт для apache:
    PHP:
    RewriteEngine On
    RewriteRule 
    ^.*$ index.php [NC,L]
    • Перенести файл viewtopic.php в папку page и переименовать в topic.php
    • Перенести файл viewforum.php в папку page и переименовать в forums.php
    • Перенести файл index.php в папку page
    Открыть topic.php:
    Найти:
    PHP:
    $topic_id = isset($_GET[POST_TOPIC_URL]) ? (int) $_GET[POST_TOPIC_URL] : 0;
    Заменить на:
    PHP:
    $topic_id = (SEO_ID) ? (int) SEO_ID 0;
    Открыть forums.php:
    Найти:
    PHP:
    $forum_id  = (int) request_var('f''');
    Заменить на:
    PHP:
    $forum_id  = (int) SEO_ID;
    Пример использования:
    PHP:
    Link::BuildUrl('forums''1''Мой титле') -> http://domain.ru/forums/moy-title.1/ если выключены реврайты http://domain.ru/index.php?=forums/moy-title.1/
    Link::BuildUrl('forums''1') -> http://domain.ru/forums/1/ если выключены реврайты http://domain.ru/index.php?=forums/1/
    Link::BuildUrl('forums') -> http://domain.ru/forums/ если выключены реврайты http://domain.ru/index.php?=forums/
    Link::BuildUrl() -> http://domain.ru/ если выключены реврайты http://domain.ru/index.php
    Реврайт nginx для старых ссылок(мода лога):
    Код:
    rewrite ^/category-(.*)-(.*).html /rewrite.php?c=$2 last;
    rewrite ^/forum-(.*)-(.*).html /rewrite.php?f=$2 last;
    rewrite ^/topic-(.*)-(.*).html /rewrite.php?t=$2 last;
    Пример для ссылок из папки ucp:
    Пример для файла register.php
    Создать папку ucp в папке page и закинуть туда данный файл
    В файле добавить после <?php
    PHP:
    $user->session_start();

    $mode SEO_MODE;
    if (
    IS_GUEST && $mode == 'settings'login_redirect();
    Заменить в файле все вхождения
    Код:
    editprofile
    на
    Код:
    settings
    Тем самым будут ссылки редактирования domain.ru/settings/

    При добавление новых файлов в ucp нужно их указать в конфиге, для их работы.
    Игорь Бателфилдович нравится это.

Последние обнoвления

  1. Обновление 1.1.0

Пoследние рецензии

  1. ВаленокPC
    ВаленокPC
    3/5,
    Версия: 1.1.0
    Да задумка неплохая, но много недочетов в этом моде. А так спасибо! Пока - 3
  2. Анонимный пользователь
  3. Exile
    Exile
    5/5,
    Версия: 1.0
    За предоставление мода, давно ожидаемого многими бесплатно.