Условия вывода модулей в VirtueMart 2.x

  • 12 Ответов
  • 15885 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

madcap

  • Захожу иногда
  • **
  • 22
  • 4
ГОТОВОЕ РЕШЕНИЕ !
Искал но не нашёл, потому за основу взял идею от Joomla 1.5 , и всё получилось!
Как выяснилось, JRequest::getString работает так же и в Joomla 2.5
Данное решение позволяет отключить в шаблоне Joomla модуль breadcrumbs на главной странице, когда главной страницей назначен VirtueMart.

<?php  if (JRequest::getString('view')!== 'virtuemart'){ ?>  
  <div id="breadcrumbs" class="clear"><jdoc:include type="modules" name="breadcrumbs" /></div>
<?php } ?>

В качестве параметра Можно использовать и другие части URL-адреса, принадлежащего VirtueMart:

Чтобы определить, на каких страницах VirtueMart должна будет выводиться информация, а на каких нет - надо отключить SEF и погулять по сайту. В адресной строке на страницах Viruemart Вы найдёте нужные Вам параметры.

Для полноты понимания желательно выучить операторы сравнения PHP (благо в сети много литературы по теме).
Для начала запомните эти:
!==   НЕравно
==    Равно
<>    Больше или меньше

И напоследок примеры страниц VirtueMart с выключенным SEF для понимания вышенаписанного с подсветкой нужных параметров:

Главная страница:
http://www.ваш-сайт.ru/index.php?option=com_virtuemart&view=virtuemart&Itemid=113
Категория товаров:
http://www.ваш-сайт.ru/index.php?option=com_virtuemart&view=category&virtuemart_category_id=38&Itemid=113
Страница с товаром:
http://www.ваш-сайт.ru/index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=243&virtuemart_category_id=38&Itemid=113
Корзина:
http://www.ваш-сайт.ru/index.php?option=com_virtuemart&view=cart

По такой аналогии можно запретить или разрешить что-либо практически на любой странице VirtueMart (да и для самой Joomla 2.5 тоже).
« Последнее редактирование: 09.05.2013, 18:08:47 от ELLE »

*

gartes

  • Живу я здесь
  • ******
  • 951
  • 71
  • Е = mс²
Re: Условия вывода модулей в VirtueMart 2.x
« Ответ #1 : 08.05.2014, 04:10:09 »
Молодец!! :D Статья реально Хорошая!!
Даже только по тому, что многие включают SEF а потом блин а как а где !
Ребята SEF это тогда когда все работает а не тогда когда вы строите.

все вас и так проиндексируют нормально только самому мороки больше!
« Последнее редактирование: 08.05.2014, 04:18:43 от gartes »

*

gartes

  • Живу я здесь
  • ******
  • 951
  • 71
  • Е = mс²
Re: Условия вывода модулей в VirtueMart 2.x
« Ответ #2 : 08.05.2014, 04:13:47 »
----------
Одно замечание Автор думаю поправит и можно удалить!
Цитировать
!==   НЕравно
Такого оператора сравнения в PHP нет.. Есть так !=
Цитировать
!==
это Тождественно не равно Добавлено в PHP 4
--- Да наверное можно и так оставить ! Простите не знал. - Gartes! Но все же точнее !=

 
« Последнее редактирование: 08.05.2014, 06:31:28 от gartes »

*

sasha8888

  • Осваиваюсь на форуме
  • ***
  • 46
  • 4
Re: Условия вывода модулей в VirtueMart 2.x
« Ответ #3 : 21.08.2014, 18:19:44 »
можно и != и !==
в данном случае тип переменных будет одинаковый, а потому все равно
второй вариант, который использовал автор - с учетом типа
на примере
'4' != 4 - false, т.к. равны
'4' !== 4 - true, т.к. равны


*

lite46

  • Захожу иногда
  • **
  • 11
  • 0
Re: Условия вывода модулей в VirtueMart 2.x
« Ответ #5 : 12.01.2016, 17:54:57 »
ГОТОВОЕ РЕШЕНИЕ !
Искал но не нашёл, потому за основу взял идею от Joomla 1.5 , и всё получилось!
Как выяснилось, JRequest::getString работает так же и в Joomla 2.5
Данное решение позволяет отключить в шаблоне Joomla модуль breadcrumbs на главной странице, когда главной страницей назначен VirtueMart.

<?php  if (JRequest::getString('view')!== 'virtuemart'){ ?> 
  <div id="breadcrumbs" class="clear"><jdoc:include type="modules" name="breadcrumbs" /></div>
<?php } ?>

В качестве параметра Можно использовать и другие части URL-адреса, принадлежащего VirtueMart:

Чтобы определить, на каких страницах VirtueMart должна будет выводиться информация, а на каких нет - надо отключить SEF и погулять по сайту. В адресной строке на страницах Viruemart Вы найдёте нужные Вам параметры.

Для полноты понимания желательно выучить операторы сравнения PHP (благо в сети много литературы по теме).
Для начала запомните эти:
!==   НЕравно
==    Равно
<>    Больше или меньше

И напоследок примеры страниц VirtueMart с выключенным SEF для понимания вышенаписанного с подсветкой нужных параметров:

Главная страница:
http://www.ваш-сайт.ru/index.php?option=com_virtuemart&view=virtuemart&Itemid=113
Категория товаров:
http://www.ваш-сайт.ru/index.php?option=com_virtuemart&view=category&virtuemart_category_id=38&Itemid=113
Страница с товаром:
http://www.ваш-сайт.ru/index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=243&virtuemart_category_id=38&Itemid=113
Корзина:
http://www.ваш-сайт.ru/index.php?option=com_virtuemart&view=cart

По такой аналогии можно запретить или разрешить что-либо практически на любой странице VirtueMart (да и для самой Joomla 2.5 тоже).

А как добавить в условие еще одну страницу?

JRequest::getString('view')!== 'virtuemart' && !== 'frontpage'      так?

*

robert

  • Профи
  • ********
  • 4006
  • 371
Re: Условия вывода модулей в VirtueMart 2.x
« Ответ #6 : 12.01.2016, 18:06:56 »
Код: php-brief
JRequest::getString('view')!='virtuemart' && JRequest::getString('view')!='frontpage'
//или
!in_array(JRequest::getString('view'),array('virtuemart','frontpage'))
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

lite46

  • Захожу иногда
  • **
  • 11
  • 0
Re: Условия вывода модулей в VirtueMart 2.x
« Ответ #7 : 12.01.2016, 18:09:35 »
Код: php-brief
JRequest::getString('view')!='virtuemart' && JRequest::getString('view')!='frontpage'
//или
!in_array(JRequest::getString('view'),array('virtuemart','frontpage'))

Я вот так сделал:
Код: php-brief
JRequest::getString('view')!== ('virtuemart' || 'frontpage') 

верно ли это?

*

robert

  • Профи
  • ********
  • 4006
  • 371
Re: Условия вывода модулей в VirtueMart 2.x
« Ответ #8 : 12.01.2016, 18:18:19 »
А вы сами попробуйте
Код: php-brief
$test='virtuemart';
echo $test!==('virtuemart' || 'frontpage');
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

lite46

  • Захожу иногда
  • **
  • 11
  • 0
Re: Условия вывода модулей в VirtueMart 2.x
« Ответ #9 : 12.01.2016, 18:40:10 »
А вы сами попробуйте
Код: php-brief
$test='virtuemart';
echo $test!==('virtuemart' || 'frontpage');

для моей задачи работает. Я скрыл один из div шаблона в VirtueMart и на главной.

*

robert

  • Профи
  • ********
  • 4006
  • 371
Re: Условия вывода модулей в VirtueMart 2.x
« Ответ #10 : 12.01.2016, 18:47:54 »
для моей задачи работает.
Да ничего оно не работает: всегда true.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

lite46

  • Захожу иногда
  • **
  • 11
  • 0
Re: Условия вывода модулей в VirtueMart 2.x
« Ответ #11 : 16.01.2016, 19:09:51 »
Да ничего оно не работает: всегда true.

зря я не проверил... всё верно, всегда true! Когда создал другие страницы, на них так же был скрыт div, что неправильно.

Спасибо! Использую первый способ, что вы предложили!
« Последнее редактирование: 16.01.2016, 19:48:00 от lite46 »

*

MadMax84

  • Новичок
  • *
  • 4
  • 0
Re: Условия вывода модулей в VirtueMart 2.x
« Ответ #12 : 09.11.2016, 03:23:21 »
Здравствуйте. Подскажите пожалуйста. При выкл SEF
<?php $view = JRequest::getVar('view', null); if ($view !== "productdetails"){?>
<div id="vmgroup121" class="vmgroup carousel slide no-space">
<?php } ?>
Модули не выводятся в карточке товара. как только включаю SEF. Модули на месте. Joomla 2.5 VirtueMart 3
Что не так HELP!