Вывод модулей Joomla в Virtuemart

Статус
В этой теме нельзя размещать новые ответы.

Igoryan

Постоялец
Регистрация
19 Май 2006
Сообщения
55
Реакции
4
Никак не получается управлять выводом модулей Joomla в Virtuemart....Лепятся все подряд по непонятному алгоритму. Для модулей вывод указывается только для стадартных элементов Joomla. Как же быть?:(
 
Никак не получается управлять выводом модулей Joomla в Virtuemart....Лепятся все подряд по непонятному алгоритму. Для модулей вывод указывается только для стадартных элементов Joomla. Как же быть?:(

как это по не понятному алгоритму??? Позиции модулей меняются как и у стандартных. Нажимаешь "Редактировать", и по-моему 3-е поле сверху:
Позиция: и рядом выпадающее меню - вот выбераешь куда его нужно разместить
 
ТС видимо оставил стандарное расположение модулей у компонента. Возможные позиции указываются в шаблоне сайт в файле templateDetails.xml, примерно так:

Код:
<positions>
		<position>hornav</position>
		<position>breadcrumbs</position>
		<position>banner</position>
		<position>left</position>
		<position>right</position>
		<position>top</position>
		<position>topsl1</position>
		<position>topsl2</position>
		<position>user1</position>
		<position>user2</position>
		<position>user3</position>
		<position>user4</position>
		<position>user5</position>
		<position>user6</position>
		<position>user7</position>
		<position>user8</position>
		<position>user9</position>
		<position>footer</position>
		<position>syndicate</position>
		<position>debug</position>
	</positions>

Далее необходимая позиция для модуля выбирается как сказал предыдущий автор. Ну и сообтвенно модуль выводится в шаблоне (index.php) кодом:

Код:
<jdoc:include type="modules" name ="user5" style="xhtml"/>

Где user5 и есть позиция, выбранная на предыдущем шаге.
 
Я наверное не очень понятно выразился. Попробую еще раз.
Есть стандартный модуль.
Например хочу, чтоб он был виден только на главной странице. Что делаю: захожу в свойства модуля указываю ему в какой позиции выводится, пункт меню - Главная.
Проверяю .
В действительности модуль выводится не только на главной странице, но и на всех страницах товаров и категорий Virtuemart.
И так со всеми модулями.
По логике должно быть элементарное решение... не нашел
Где крутить?:nezn:
 
принцип вывода модулей и не только на отдельно взятых страницах работает на основе Itemid, и вот тут начинается дилема: либо пи заходе в вирт Itemid вообще не указывается(обычно когда по нему заходят не через нормально сделанный пункт меню) и двиг считает что там можно отображать модуль, либо изначально при заходе в вирт Itemid указываеться но потом при переходе по некоторым ссылкам он теряеться или задаёться тотже что и у главной странице.
это уже нужно смотреть какая из этих двух проблем присутствует(если это вообще одна из них, может глюк жомлы, хотя наврятли) и уже потом думать о решении. лучше указать где сайт чтоб можно было помочь.
 
принцип вывода модулей и не только на отдельно взятых страницах работает на основе Itemid, и вот тут начинается дилема: либо пи заходе в вирт Itemid вообще не указывается(обычно когда по нему заходят не через нормально сделанный пункт меню) и двиг считает что там можно отображать модуль, либо изначально при заходе в вирт Itemid указываеться но потом при переходе по некоторым ссылкам он теряеться или задаёться тотже что и у главной странице.

Основное меню сайта на основе модуля вывода категорий шаблона Mynxx от RocketTheme... и действительно в ссылках элементов этого меню item ID меняется, в зависимости от точки входа .... главная страница, контакты, статья или другой стандартный компонент.....
Например заходим в категорию Virtuemart c главной страницы... ссылка выглядит так:

***.com/index.php?option=com_virtuemart&page=shop.browse&category_id=6&Itemid=1&TreeId=4

и та же категория, но со страницы контакты

***.com/index.php?option=com_virtuemart&page=shop.browse&category_id=6&Itemid=2&TreeId=4

т.е. разница в ItemID... а как ей рулить непоняяно(
 
Типичный баг виртуемарта, в адресе не передает itemid, на форуме виртуемарт.ру фикс уже чуть ли не на главной лежит...
 
Типичный баг виртуемарта, в адресе не передает itemid, на форуме виртуемарт.ру фикс уже чуть ли не на главной лежит...

порыл... работающего решения не нашел ....ткните носом ... пжста)))
 
В файле /administrator/components/com_virtuemart/classes/ps_session.php примерно в районе 499 строки.

PHP:
// Original Virtuemart Code:
// $Itemid = "&Itemid=".$this->getShopItemid();
// VM-Expert Hack – Start

// Strip the parameters from the $text variable and parse to a temporary array
$tmp_text=str_replace('amp;','',substr($text,strpos($text,'?')));
if(substr($tmp_text,0,1)=='?') $tmp_text=substr($tmp_text,1);
parse_str($tmp_text,$ii_arr);

// Init the temp. Itemid
$tmp_Itemid='';

$db = new ps_DB;

// Check if there is a menuitem for a product_id (highest priority)
if ($ii_product_id=intval($ii_arr['product_id'])) {
$db->query( "SELECT id FROM #__menu WHERE link='index.php?option=com_virtuemart' AND params like '%product_id=$ii_product_id%' AND published=1");
if( $db->next_record() ) $tmp_Itemid = $db->f("id");
}
// Check if there is a menuitem for a category_id
$ii_cat_id=intval($ii_arr['category_id']);
if ( $ii_cat_id && $tmp_Itemid=='') {
$db->query( "SELECT id FROM #__menu WHERE link='index.php?option=com_virtuemart' AND params like '%category_id=$ii_cat_id%' AND published=1");
if( $db->next_record() ) $tmp_Itemid = $db->f("id");
}
// Check if there is a menuitem for a flypage
$ii_flypage=$ii_arr['flypage'];
if ($ii_flypage && $tmp_Itemid=='') {
$db->query( "SELECT id FROM #__menu WHERE link='index.php?option=com_virtuemart' AND params like '%flypage=$ii_flypage%' AND published=1");
if( $db->next_record() ) $tmp_Itemid = $db->f("id");
}
// Check if there is a menuitem for a page
$ii_page=$ii_arr['page'];
if ($ii_page && $tmp_Itemid=='') {
$db->query( "SELECT id FROM #__menu WHERE link='index.php?option=com_virtuemart' AND params like '%page=$ii_page%' AND published=1");
if( $db->next_record() ) $tmp_Itemid = $db->f("id");
}
// If we haven't found an Itemid, use the standard VM-Itemid
$Itemid = "&Itemid=" . ($tmp_Itemid ? $tmp_Itemid : $this->getShopItemid());

// VM-Expert Hack - End
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху