1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

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

Тема в разделе "Joomla", создана пользователем Igoryan, 27 апр 2009.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Статус темы:
Закрыта.
Модераторы: arman29, DMS, Genk0
  1. Igoryan

    Igoryan Постоялец

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

    fifibg Прохожие

    где твое демо сайта ?
     
  3. rasandrey

    rasandrey

    Регистр.:
    2 апр 2009
    Сообщения:
    214
    Симпатии:
    6
    как это по не понятному алгоритму??? Позиции модулей меняются как и у стандартных. Нажимаешь "Редактировать", и по-моему 3-е поле сверху:
    Позиция: и рядом выпадающее меню - вот выбераешь куда его нужно разместить
     
  4. zloba

    zloba Создатель

    Регистр.:
    23 апр 2009
    Сообщения:
    42
    Симпатии:
    5
    ТС видимо оставил стандарное расположение модулей у компонента. Возможные позиции указываются в шаблоне сайт в файле 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 и есть позиция, выбранная на предыдущем шаге.
     
  5. Igoryan

    Igoryan Постоялец

    Регистр.:
    19 май 2006
    Сообщения:
    55
    Симпатии:
    4
    Я наверное не очень понятно выразился. Попробую еще раз.
    Есть стандартный модуль.
    Например хочу, чтоб он был виден только на главной странице. Что делаю: захожу в свойства модуля указываю ему в какой позиции выводится, пункт меню - Главная.
    Проверяю .
    В действительности модуль выводится не только на главной странице, но и на всех страницах товаров и категорий Virtuemart.
    И так со всеми модулями.
    По логике должно быть элементарное решение... не нашел
    Где крутить?:nezn:
     
  6. bumbu

    bumbu

    Регистр.:
    17 окт 2007
    Сообщения:
    233
    Симпатии:
    28
    принцип вывода модулей и не только на отдельно взятых страницах работает на основе Itemid, и вот тут начинается дилема: либо пи заходе в вирт Itemid вообще не указывается(обычно когда по нему заходят не через нормально сделанный пункт меню) и двиг считает что там можно отображать модуль, либо изначально при заходе в вирт Itemid указываеться но потом при переходе по некоторым ссылкам он теряеться или задаёться тотже что и у главной странице.
    это уже нужно смотреть какая из этих двух проблем присутствует(если это вообще одна из них, может глюк жомлы, хотя наврятли) и уже потом думать о решении. лучше указать где сайт чтоб можно было помочь.
     
  7. Igoryan

    Igoryan Постоялец

    Регистр.:
    19 май 2006
    Сообщения:
    55
    Симпатии:
    4
    Основное меню сайта на основе модуля вывода категорий шаблона 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... а как ей рулить непоняяно(
     
  8. xwande

    xwande Постоялец

    Регистр.:
    24 мар 2007
    Сообщения:
    134
    Симпатии:
    24
    Типичный баг виртуемарта, в адресе не передает itemid, на форуме виртуемарт.ру фикс уже чуть ли не на главной лежит...
     
  9. Igoryan

    Igoryan Постоялец

    Регистр.:
    19 май 2006
    Сообщения:
    55
    Симпатии:
    4
    порыл... работающего решения не нашел ....ткните носом ... пжста)))
     
  10. xwande

    xwande Постоялец

    Регистр.:
    24 мар 2007
    Сообщения:
    134
    Симпатии:
    24
    В файле /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
     
Статус темы:
Закрыта.