1. Важное и срочное обновление IPB 3.4.5 - https://nulled.cc/threads/243375/

[Другое] SEF (ЧПУ) в IP.Board 3

Тема в разделе "IPB", создана пользователем Kosiak, 22 июл 2009.

Статус темы:
Закрыта.
Модераторы: Maybe
  1. Kosiak

    Kosiak

    Регистр.:
    12 сен 2006
    Сообщения:
    614
    Симпатии:
    73
    Ещё одна проблема IP.Board 3 в малой разумности встроенного SEF (основная проблема, что он оставляет кирилицу в адресе). Хотелось бы оптимизировать пути на форуме под свои нужды и избавиться от кирилицы там, где она точно не нужна.

    Хорошими вариантами SEF могли бы стать:
    - транслитерирование (путь IBR, но пока от них нет релиза), например: myforum.ru/forum/40-forum-o-sobakah/
    - либо числовой путь до объекта(наиболее элегантный путь, я считаю), например: myforum.ru/forum/40/

    В данных примерах мне не нравится только одно, слово в адресе: /forum/
    существует масса вещей, для чего жёстко прописанные слова, придуманные IPS не подходят. А таких разделов в "трёшке" появляется несколько:
    /forum/
    /topic/
    /user/
    /calendar/
    Уверен, что многие могли бы придумать для своих форумов гораздо более красивые пути, чем придумали "специалисты" из IPS.
    Вопрос лишь заключается в том, как это сделать?

    Давайте делиться информацией по тому, как изменить стандартное формирование путей в IPB3.
     
  2. Skvor

    Skvor Создатель

    Регистр.:
    28 авг 2007
    Сообщения:
    11
    Симпатии:
    1
    Z могу ошибаться но разве не в файле .htacces это прописывается?
     
  3. Android

    Android

    Регистр.:
    10 июн 2006
    Сообщения:
    605
    Симпатии:
    521
    А чем кирилица не устраивает, википедия ж работает и никто не жалуется, ютф в масы проникают, даешь кирилицу в ссылках :-]
     
  4. Kosiak

    Kosiak

    Регистр.:
    12 сен 2006
    Сообщения:
    614
    Симпатии:
    73
    Нет.
    Это делается в файлах: ./admin/applications/*/extensions/furl*Templates.php

    Добавлено через 2 минуты
    Я тоже так раньше думал, но потом передумал :-]
    Инфраструктура недостаточно проработана ещё для этого: такие адреса не передаются, они сначала браузерами переводятся в коды и только затем отправляются. Если скрипт или устройство или паук не понимают как это всё собрать назад, то мы увидим очень некрасивый адрес. По мне, чем адрес короче, тем лучше.
     
  5. Me_and_My

    Me_and_My Читатель

    Заблокирован
    Регистр.:
    22 июл 2009
    Сообщения:
    270
    Симпатии:
    50
    Kosiak, причем тут боты(поисковые) ЧПУ же изначально для человеко-понятных ссылок сделан.
    Удобно же писать аля википедия/ссылка-на-тему. По моему очень удобно.
     
  6. Kosiak

    Kosiak

    Регистр.:
    12 сен 2006
    Сообщения:
    614
    Симпатии:
    73
    неудобно эту ссылку потом куда-нибудь копировать.
    А вообще никто не видит разницу между русским ЧПУ и английским SEF?
    Все их употребляют как синонимы, но это далеко не так. Я не уверен, что русский ЧПУ - это хороший вариант для людей. Вот "русский" адрес первой страницы из Википедии:
    Нравится? Мне нет.
     
  7. Me_and_My

    Me_and_My Читатель

    Заблокирован
    Регистр.:
    22 июл 2009
    Сообщения:
    270
    Симпатии:
    50
    Да знаю я про такие адреса, эт понятно... но если просто вместо %D0%97%D0%B0%D0%B3%D0%BB% написать русскими то перейдет по той же ссылке.
    Есть такой подгон у поисковиков, выводить ссылки без перекодировки обратно как есть на самом деле, а как оно к ним отправляется (кодом русских символов)
    Америкосам в этом отношении оч повезло, нет этого гемороя изначально все красиво.

    Тебе бы как хотелось то - транслит? Как например в Вобла SEO заменяется русские символы в адрисе на транслит.
    Ну если совсем бесит то можно отключить и забыть про сео.
     
  8. Kosiak

    Kosiak

    Регистр.:
    12 сен 2006
    Сообщения:
    614
    Симпатии:
    73
    Отключать не нужно. Транслит - это некрасиво, но свои 5 копеек в SEO добавляет (поисковики свободно разбирают транслит, как оказалось). В тех проектах, которые важны для меня, на которые ходят люди я оставлю просто эстетические короткие ссылки SEF по id (в версии от IBR они будут). Если же мне понадобится что-то быстро протолкнуть поисковикам, то выберу транслит (скорее всего такой мод скоро появится). И уж совсем на гавно можно оставить русские URL - поисковики их понимают, а на остальных... в общем, главное, чтоб поисковики любили :-]
     
  9. Android

    Android

    Регистр.:
    10 июн 2006
    Сообщения:
    605
    Симпатии:
    521
    Anroid SEO Translit URLs Fix
    Описание: фикс переводит в транслит ссылки основанные на тайтлах тем сообщений форума.
    Ссылка до: index.php?/topic/2-супер-мега-тема-на-русском/
    Ссылка после: index.php?/topic/2-super-mega-tema-na-russkom/

    Вообщем замене подлежит один файлик: admin\sources\classes\output\publicOutput.php используется функция iconv() но она на всех нормальных хостингах да и на денвере есть, кодировку файлика не менять на ютф =).

    Инструкция по установке: распаковать в корень форума с заменой файла.

    Anroid SEO Translit URLs Fix:

    http://rapidshare.com/files/260729800/Android_SEO_URLs_Fix.zip.html
    http://rapidshare.de/files/47964403/Android_SEO_URLs_Fix.zip.html

    Для тех кто любит сам и руками:

    1) Открыть файл: admin\sources\classes\output\publicOutput.php, найти в нем текст:
    Код:
        /**
         * Formats the URL (.htaccess SEO, etc)
         *
         * @access    public
         * @param    string    Raw URL
         * @param    string    Any special SEO title passed
         * @param    string    Any special SEO template to use. If none is passed but SEO is enabled, IPB will search all templates for a match
         * @return    string    Formatted  URL
         */
    2) До него вставить:
    Код:
        /**
         * Функция перевода кирилицы в латиницу (транслит)
         *
         * @access    public
         * @param    string        Строка в кирилице
         * @return    string        Строка в латинце
         */
        public function ru2Lat($string)
        {    
            $string = iconv("UTF-8", "cp1251",  urldecode($string)); 
            $rus = array('ё','ж','ц','ч','ш','щ','ю','я','Ё','Ж','Ц','Ч','Ш','Щ','Ю','Я');
            $lat = array('yo','zh','tc','ch','sh','sh','yu','ya','YO','ZH','TC','CH','SH','SH','YU','YA');
            $string = str_replace($rus,$lat,$string);
            $string = strtr($string,
                    "АБВГДЕЗИЙКЛМНОПРСТУФХЪЫЬЭабвгдезийклмнопрстуфхъыьэ",
                    "ABVGDEZIJKLMNOPRSTUFH_I_Eabvgdezijklmnoprstufh_i_e");
            $string = urlencode($string);
            return($string);
        }
    3) тутже ниже найти код:

    Код:
        public function formatUrl( $url, $seoTitle='', $seoTemplate='' )
        {
    4) Ниже вставить:
    Код:
            //START: ANDROID FIX: Translit URLs            
            $seoTitle = $this->ru2Lat($seoTitle);
            //STOP: ANDROID FIX: Translit URLs
    5) Все теперь ссылки на теме в транслите ;-)
     
    Дизуля и Me_and_My нравится это.
  10. zl0

    zl0 Читатель

    Заблокирован
    Регистр.:
    1 июл 2007
    Сообщения:
    230
    Симпатии:
    106
    а как если я форум хочу в UTF8?
     
Статус темы:
Закрыта.