Joomla 1.5 Как передать id продукта (flypage Virtuemart) в модуль

Тема в разделе "Создание расширений для Joomla", создана пользователем voicek, 07.11.2009.

  1. Offline

    voicek Недавно здесь

    Регистрация:
    07.11.2009
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской
    Написал модуль, который при просмотре flypage продукта, извлекает из базы все продукты данного производителя и генерирует меню в виде списка ссылок на эти продукты.
    Вопрос: Как передать id продукта в модуль? Пробовал передавать переменную с id через сессию, не получилось. В PHP начинающий. Заранее благодарен.
     
  2.  
  3. Offline

    SindBAD Недавно здесь

    Регистрация:
    09.06.2009
    Сообщения:
    100
    Симпатии:
    6
    Пол:
    Мужской
    Возьмите из GET-массива ($_GET['product_id']). Но работает только в случае, если отключен SEF
     
  4. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    Начнем с того, что вместо правильного ид злоумышленник может подсунуть какую нить инъекцию, т.е. необходим фильт, так что рекомендую пользоваться JRequest::getInt или другими методами этого класса.
    А по поводу передачи параметра в модуль, думаю можно двумя способами:
    1. Через гет/пост , что на мой взгляд, самое удобное и простое в реализации
    2. Написать плагин, который бы отлавливал нужные вам переменные. Но это требует хорошего знания пхп+джумлы апи+мвц. И пригодиться только для использования в "промышленных" масштабах ))))
     
  5. Offline

    SindBAD Недавно здесь

    Регистрация:
    09.06.2009
    Сообщения:
    100
    Симпатии:
    6
    Пол:
    Мужской
    Или, говоря проще, $id=intval($_GET['product_id']). Хотя считаю это само собой разумеющимся :)
     
  6. mike84
    Offline

    mike84 Недавно здесь

    Регистрация:
    25.11.2007
    Сообщения:
    210
    Симпатии:
    15
    Пол:
    Мужской
    я, иногда объявлял нужную мне переменную в одной части как global
    и потом выцеплял в нужных мне модулях,
    но это, конечно, костыль
     
  7. Greck
    Offline

    Greck Недавно здесь

    Регистрация:
    08.11.2008
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    $id=JRequest::getVar('product_id'); Можно использовать и getInt.

    Инъекций не будет в любом случае, так, как JRequest обрабатывает переменные функцией htmlspecialchars.

    SEF в VM нет, так что можно не переживать по этому поводу.
     
  8. Greck
    Offline

    Greck Недавно здесь

    Регистрация:
    08.11.2008
    Сообщения:
    19
    Симпатии:
    0
    Пол:
    Мужской
    В принципе, это довольно красивый способ, если компонент выполняется раньше модулей. Никогда не пробовал.
     

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

Загрузка...