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

Тема в разделе "Внешний вид, шаблоны, графика", создана пользователем parsanches, 09.12.2009.

  1. Offline

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

    Регистрация:
    26.11.2009
    Сообщения:
    38
    Симпатии:
    2
    Пол:
    Мужской
    Подскажите а как убрать вывод стороннего модуля mod_virtuemart_universal когда загружается страницы с товаром?
    Т.е. этот модуль выводится у меня на всех страницах магазина, и на странице товара, а хотелось бы чтобы выводился только на главной магазина при нажатии на ссылку в меню.
    Как сейчас все это выглядит приложил в скриншоте.

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

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

    Вложения:

  2.  
  3. Andrey
    Offline

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

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

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

    Регистрация:
    26.11.2009
    Сообщения:
    38
    Симпатии:
    2
    Пол:
    Мужской
    Сразу скажу что пхп я не знаю :)
    К позиции привязан только один этот модуль.
    И ссылка на главную инет магазина такая 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\мой_шаблон ?
     
    Последнее редактирование: 09.12.2009
  5. Andrey
    Offline

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

    Регистрация:
    27.12.2005
    Сообщения:
    77
    Симпатии:
    4
    Пол:
    Мужской
    по поводу файла шаблона, да. Это файл по адресу templates/YOU_TEMPLATE/index.php. В нем найдите вывод позиции модуля.
    Лучше прикрепите архив вашего шаблона к сообщению, я напишу что исправить.
     
  6. Offline

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

    Регистрация:
    26.11.2009
    Сообщения:
    38
    Симпатии:
    2
    Пол:
    Мужской
    Вложил файл шаблона.
    Если возможно выделите ваши изменения чтобы я въехал как это делать :)
     

    Вложения:

    • index.rar
      Размер файла:
      2.9 КБ
      Просмотров:
      6
  7. Andrey
    Offline

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

    Регистрация:
    27.12.2005
    Сообщения:
    77
    Симпатии:
    4
    Пол:
    Мужской
    Какая позиция у модуля mod_virtuemart_universal? Обязательно он должен быть один в этой позиции.
     
  8. Offline

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

    Регистрация:
    26.11.2009
    Сообщения:
    38
    Симпатии:
    2
    Пол:
    Мужской
    Позиция 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 Недавно здесь

    Регистрация:
    27.12.2005
    Сообщения:
    77
    Симпатии:
    4
    Пол:
    Мужской
    Вот код из файла:
    Код (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 Недавно здесь

    Регистрация:
    26.11.2009
    Сообщения:
    38
    Симпатии:
    2
    Пол:
    Мужской
    Пишет:
    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 Недавно здесь

    Регистрация:
    27.12.2005
    Сообщения:
    77
    Симпатии:
    4
    Пол:
    Мужской
    Да, ошибка, попробуйте, так:
    Код (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 Недавно здесь

    Регистрация:
    26.11.2009
    Сообщения:
    38
    Симпатии:
    2
    Пол:
    Мужской
    О получилось. спасибо огромное))
    В очередной раз пожалел что не знаю php
     
  13. Offline

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

    Регистрация:
    26.11.2009
    Сообщения:
    38
    Симпатии:
    2
    Пол:
    Мужской
    Все бы хорошо но с таким кодом модуль не выводится если залогиниться. Если неавторизованный пользователь то модуль выводится только на главной странице. А если авторизованный то и на страницах товара он тоже выводится. А так не нужно.
    Как исправить код чтобы модуль для всех пользователей выводился только на главной?

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

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

Загрузка...