Вывод модуля на всех страницах компонента.

Discussion in 'Внешний вид, шаблоны, графика' started by parsanches, Dec 9, 2009.

  1. Offline

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

    Joined:
    Nov 26, 2009
    Messages:
    38
    Likes Received:
    2
    Gender:
    Male
    Подскажите а как убрать вывод стороннего модуля mod_virtuemart_universal когда загружается страницы с товаром?
    Т.е. этот модуль выводится у меня на всех страницах магазина, и на странице товара, а хотелось бы чтобы выводился только на главной магазина при нажатии на ссылку в меню.
    Как сейчас все это выглядит приложил в скриншоте.

    Объясню поподробней.
    Есть установленный данный модуль, привязанный к пункту меню - интернет магазину. В магазине есть допустим 10 товаров. И вот если зайти в какой либо товар то ниже опять выводятся все товары которые у меня есть. Также как и на главной инет магазина. Я специально убрал отображение всех категорий т.к. товаров немного и разбивать их на категории смысла нет
    Как сделать чтобы список товаров выводился только при нажатии на ссылку в меню а не на всех страницах виртуемарта?
    Или подскажите пожалуйста в каком файле нужно копаться чтобы модуль не выводился на след страницах:
    - детальная информация по товару
    - страница регистрации в virtuemart
    - страницы относящиеся к процессу заказа товара, там где вводим способ доставки, оплату и пр.

    Понимаю что нужно этот модуль жестко привязать к пункту меню или какому то шаблону но как не знаю. ((
     

    Attached Files:

  2.  
  3. Andrey
    Offline

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

    Joined:
    Dec 27, 2005
    Messages:
    77
    Likes Received:
    4
    Gender:
    Male
    можно в файле шаблона, где выводится позиция этого модуля (это в том варианте если в этой позиции только один модуль), делать проверку на соответствующие параметры массива $_REQUEST. Для этого переходите на страницы, на которых не должно быть модуля и смотрите какие добавились параметры (не значения, а название параметров) в ur. Если не ошибаюсь, то параметра "page" нет на главной странице магазина. Смысл проверки если есть параметр 'page', то модуль выводить не нужно, например
    if(empty($_REQUEST['page'])){
    выводим моудль mod_virtuemart_universal
    }
    т.к. у вас привязка модуля по ID, все должно работать.
     
  4. Offline

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

    Joined:
    Nov 26, 2009
    Messages:
    38
    Likes Received:
    2
    Gender:
    Male
    Сразу скажу что пхп я не знаю :)
    К позиции привязан только один этот модуль.
    И ссылка на главную инет магазина такая http://название_сайта/index.php?option=com_virtuemart&Itemid=3
    а ссылка при переходе на товар такая http://название_сайта/index.php?pag...&product_id=10&option=com_virtuemart&Itemid=3
    Можете поподробней обяснить что где нужно изменить?
    И вы имели ввиду под файлом шаблона файл index.php который находится по адресу:
    V: \home\localhost\www\сайт.ru\templates\мой_шаблон ?
     
    Last edited: Dec 9, 2009
  5. Andrey
    Offline

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

    Joined:
    Dec 27, 2005
    Messages:
    77
    Likes Received:
    4
    Gender:
    Male
    по поводу файла шаблона, да. Это файл по адресу templates/YOU_TEMPLATE/index.php. В нем найдите вывод позиции модуля.
    Лучше прикрепите архив вашего шаблона к сообщению, я напишу что исправить.
     
  6. Offline

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

    Joined:
    Nov 26, 2009
    Messages:
    38
    Likes Received:
    2
    Gender:
    Male
    Вложил файл шаблона.
    Если возможно выделите ваши изменения чтобы я въехал как это делать :)
     

    Attached Files:

  7. Andrey
    Offline

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

    Joined:
    Dec 27, 2005
    Messages:
    77
    Likes Received:
    4
    Gender:
    Male
    Какая позиция у модуля mod_virtuemart_universal? Обязательно он должен быть один в этой позиции.
     
  8. Offline

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

    Joined:
    Nov 26, 2009
    Messages:
    38
    Likes Received:
    2
    Gender:
    Male
    Позиция ja-news. И он один.
    Вернее к ней еще привязан другой модуль но он не активный.
    Нашел какой то код, вставил его в позицию. Получилось что модуль не отображается на страницах товара но на странице регистрации он остался.
    Вот что вставил (старый код закомментировал):
    <?php if ( $this->countModules('ja-news') ) { ?>
    <!-- JA NEWS -->
    <?php if (($_GET['page'] == 'shop.browse') || ($_GET['page'] == 'shop.product_details')) {} else { ?>
    <div id="ja-news">
    <!-- <jdoc:include type="modules" name="ja-news" style="xhtml" />-->
    <jdoc:include type="modules" name="ja-news" style="xhtmlround" />
    </div>
    <?php } ?>
    <!-- //JA NEWS -->
    <?php } ?>
     
  9. Andrey
    Offline

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

    Joined:
    Dec 27, 2005
    Messages:
    77
    Likes Received:
    4
    Gender:
    Male
    Вот код из файла:
    Код (PHP):
    1. <?php if ( $this->countModules('ja-news') ) { ?>
    2. <!-- JA NEWS -->
    3. <div id="ja-news">
    4. <jdoc:include type="modules" name="ja-news" style="xhtml" />
    5. </div>
    6. <!-- //JA NEWS -->
    7. <?php } ?>
    Нужно исправить так:
    Код (PHP):
    1. <?php if ( $this->countModules('ja-news') && (empty(JRequest::getCmd('page', ''))) && (JRequest::getInt('Itemid', 0) == Ваш_ID_меню_для_virtuemart) ) { ?>
    2. <!-- JA NEWS -->
    3. <div id="ja-news">
    4. <jdoc:include type="modules" name="ja-news" style="xhtml" />
    5. </div>
    6. <!-- //JA NEWS -->
    7. <?php } ?>
     
  10. Offline

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

    Joined:
    Nov 26, 2009
    Messages:
    38
    Likes Received:
    2
    Gender:
    Male
    Пишет:
    Fatal error: Can't use function return value in write context in W:\home\localhost\www\sheepskinboots.ru\templates\ja_lead\index.php on line 195
    Вместо Ваш_ID_меню_для_virtuemart я вставил ID пункта меню инет магазина.
    Получилось вот так:
    <?php if ( $this->countModules('ja-news') && (empty(JRequest::getCmd('page', ''))) && (JRequest::getInt('Itemid', 0) == 3) ) { ?>
     
  11. Andrey
    Offline

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

    Joined:
    Dec 27, 2005
    Messages:
    77
    Likes Received:
    4
    Gender:
    Male
    Да, ошибка, попробуйте, так:
    Код (PHP):
    1. <?php $tmp_page = JRequest::getCmd('page', ''); ?>
    2. <?php if ( $this->countModules('ja-news') && (empty($tmp_page)) && (JRequest::getInt('Itemid', 0) == Ваш_ID_меню_для_virtuemart) ) { ?>
    3. <!-- JA NEWS -->
    4. <div id="ja-news">
    5. <jdoc:include type="modules" name="ja-news" style="xhtml" />
    6. </div>
    7. <!-- //JA NEWS -->
    8. <?php } ?>
     
  12. Offline

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

    Joined:
    Nov 26, 2009
    Messages:
    38
    Likes Received:
    2
    Gender:
    Male
    О получилось. спасибо огромное))
    В очередной раз пожалел что не знаю php
     
  13. Offline

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

    Joined:
    Nov 26, 2009
    Messages:
    38
    Likes Received:
    2
    Gender:
    Male
    Все бы хорошо но с таким кодом модуль не выводится если залогиниться. Если неавторизованный пользователь то модуль выводится только на главной странице. А если авторизованный то и на страницах товара он тоже выводится. А так не нужно.
    Как исправить код чтобы модуль для всех пользователей выводился только на главной?

    Единственное позиция сейчас выводится вот так:
    <?php if($this->countModules('banner2')) : ?>
    <div id="ja-banner">
    <jdoc:include type="modules" name="banner2" />
    </div>
    <?php endif; ?>
     

Share This Page

Loading...