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

Discussion in 'Joomla + SMF' started by Jkr, Aug 29, 2007.

  1. Jkr
    Offline

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

    Joined:
    Aug 4, 2006
    Messages:
    464
    Likes Received:
    27
    Gender:
    Male
    Проблема: при интеграции мостом от 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.      *
     

    Attached Files:

    Last edited: Aug 31, 2007
  2.  
  3. Jkr
    Offline

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

    Joined:
    Aug 4, 2006
    Messages:
    464
    Likes Received:
    27
    Gender:
    Male
    Ответ: Хак: убираем лишнюю & в ссылках при интеграции

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

Share This Page

Loading...