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

Discussion in 'Создание расширений для Joomla' started by voicek, Nov 7, 2009.

  1. Offline

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

    Joined:
    Nov 7, 2009
    Messages:
    1
    Likes Received:
    0
    Gender:
    Male
    Написал модуль, который при просмотре flypage продукта, извлекает из базы все продукты данного производителя и генерирует меню в виде списка ссылок на эти продукты.
    Вопрос: Как передать id продукта в модуль? Пробовал передавать переменную с id через сессию, не получилось. В PHP начинающий. Заранее благодарен.
     
  2.  
  3. Offline

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

    Joined:
    Jun 9, 2009
    Messages:
    100
    Likes Received:
    6
    Gender:
    Male
    Возьмите из GET-массива ($_GET['product_id']). Но работает только в случае, если отключен SEF
     
  4. omfgpanda
    Offline

    omfgpanda Недавно здесь => Cпециалист <=

    Joined:
    Jan 22, 2008
    Messages:
    673
    Likes Received:
    53
    Gender:
    Male
    Начнем с того, что вместо правильного ид злоумышленник может подсунуть какую нить инъекцию, т.е. необходим фильт, так что рекомендую пользоваться JRequest::getInt или другими методами этого класса.
    А по поводу передачи параметра в модуль, думаю можно двумя способами:
    1. Через гет/пост , что на мой взгляд, самое удобное и простое в реализации
    2. Написать плагин, который бы отлавливал нужные вам переменные. Но это требует хорошего знания пхп+джумлы апи+мвц. И пригодиться только для использования в "промышленных" масштабах ))))
     
  5. Offline

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

    Joined:
    Jun 9, 2009
    Messages:
    100
    Likes Received:
    6
    Gender:
    Male
    Или, говоря проще, $id=intval($_GET['product_id']). Хотя считаю это само собой разумеющимся :)
     
  6. mike84
    Offline

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

    Joined:
    Nov 25, 2007
    Messages:
    210
    Likes Received:
    15
    Gender:
    Male
    я, иногда объявлял нужную мне переменную в одной части как global
    и потом выцеплял в нужных мне модулях,
    но это, конечно, костыль
     
  7. Greck
    Offline

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

    Joined:
    Nov 8, 2008
    Messages:
    19
    Likes Received:
    0
    Gender:
    Male
    $id=JRequest::getVar('product_id'); Можно использовать и getInt.

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

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

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

    Joined:
    Nov 8, 2008
    Messages:
    19
    Likes Received:
    0
    Gender:
    Male
    В принципе, это довольно красивый способ, если компонент выполняется раньше модулей. Никогда не пробовал.
     

Share This Page

Loading...