Хак: убираем лишнюю & в ссылках при интеграции

Тема в разделе "Joomla + SMF", создана пользователем Jkr, 29.08.2007.

  1. Jkr
    Offline

    Jkr Группа поддержки

    Регистрация:
    04.08.2006
    Сообщения:
    464
    Симпатии:
    27
    Пол:
    Мужской
    Проблема: при интеграции мостом от joomlahacks версии 2.0.2 или 2.0.2.1 (пропатчена для работы с j! 1.0.13), если использовать "Wrapped Integration Mode" (визуальная интеграция форума в шаблон сайта на место mosMainBody()), то ссылка на главную страницу форума (не из меню, а на самом форуме) отображается с лишней & в конце. Пример: "_http//yoursite.ru/index.php?option=com_smf&Itemid=99&" Не серьезно, но некрасиво.
    Пример: см. аттач.
    Решение: идем в smf.class.php (../components/com_smf/), ищем там в районе 700 строки (для 2.0.2.1) код:
    Код (CODE):
    1. if (strpos($url, $mosConfig_live_site) === FALSE) {
    2.             $url = $mosConfig_live_site . '/' . $url;
    3.         }
    4.         unset($tmpurl, $has_anchor, $has_quick_mod);
    5.         return $url;
    6.     }
    7.  
    8.     /**
    9.      * Using isValidUser this method forwards a login request to the correct methods
    10.      *

    и после строки "unset($tmpurl, $has_anchor, $has_quick_mod);" добавляем:
    Код (CODE):
    1. $itid = str_replace($mosConfig_live_site."/index.php?option=com_smf&Itemid=", "", $url);
    2.             $itid = str_replace("&", "", $itid);
    3.             if ($url == $mosConfig_live_site."/index.php?option=com_smf&Itemid=".$itid."&") {
    4.             $url = $mosConfig_live_site."/index.php?option=com_smf&Itemid=".$itid;
    5.             }

    чтобы получилось:
    Код (CODE):
    1. unset($tmpurl, $has_anchor, $has_quick_mod);
    2.             $itid = str_replace($mosConfig_live_site."/index.php?option=com_smf&Itemid=", "", $url);
    3.             $itid = str_replace("&", "", $itid);
    4.             if ($url == $mosConfig_live_site."/index.php?option=com_smf&Itemid=".$itid."&") {
    5.             $url = $mosConfig_live_site."/index.php?option=com_smf&Itemid=".$itid;
    6.             }
    7.         return $url;
    8.     }
    9.  
    10.     /**
    11.      * Using isValidUser this method forwards a login request to the correct methods
    12.      *
     

    Вложения:

    • smf_bug_01.jpg
      smf_bug_01.jpg
      Размер файла:
      39.5 КБ
      Просмотров:
      39
    Последнее редактирование: 31.08.2007
  2.  
  3. Jkr
    Offline

    Jkr Группа поддержки

    Регистрация:
    04.08.2006
    Сообщения:
    464
    Симпатии:
    27
    Пол:
    Мужской
    Ответ: Хак: убираем лишнюю & в ссылках при интеграции

    Исправлен первый пост: сделан универсальный код (т.е. без всяких "ваш сайт", "ваш itemid"). Т.к. мои знания php весьма поверхностны, получилось слегка громоздко... :(
     

Поделиться этой страницей

Загрузка...