VirtueMart - страница производителя в Joomla

стр: 1 2 3

VirtueMart показывает собственную страницу о производителе товара. Это неудобно по целому ряду причин:

  • открывается страница не в полное окно, без дизайна сайта, бедно выглядящая и вообще, судя по всему задумывалась как весьма вспомогательная
  • с этой страницей невозможно работать как с любым другим материалом (контентом) Joomla
  • невозможно создать раздел “производители”, чтоб материал одновременно присутствовал в VirtueMart и Joomla.

Если с первым бороться проще всего, то остальные пункты требуют серьезного вмешательства. Поэтому убиваем нескольких зайцев сразу: производителей ведем как обычный контент, и делаем так, чтоб по ссылке открывался именно он, а не то, что в VirtueMart. Вопрос дизайна решается автоматически - шаблоном сайта.
(Крайний раз редактировалось 12/12/2006)
Создание разделов и категорий описывать не буду, суть в том, что в Joomla есть раздел, например, “производители”, в нем есть материал, с заголовком, в точности соответствующим названию этого самого производителя. По названию и будем связывать. (Есть еще один вариант, но об этом позже)
В VirtueMart тоже создаем этого производителя, но достаточно заполнить одно-единственное его поле - название, опять-таки в точности как указано выше.
Идем в /administrator/components/com_virtuemart/html/shop.product_details.php
Примерно со строки 172 (у меня) приводим к виду:

/** LINK TO MANUFACTURER POP-UP **/
$manufacturer_name = $ps_product->get_mf_name($product_id);
$text = '('.$manufacturer_name.')';
$manufacturer_link = "";
$db = new ps_DB;
$q = “select id from jos_content where title=’”.$manufacturer_name .”‘”;
$db->query($q);
$db->next_record();
$content_id = $db->f(”id”);
if ($content_id){
           $manufacturer_link = “<a
href=”/index.php?option=com_content&task=view&id=$content_id&Itemid=id_катег”
   target=”_blank” title=”$text”>$text</a>”;   //это все в одну строку
}

id_катег - id той самой категории “производители”, которую вы создали и повесили на какой-либо пункт меню. Проще всего взять, заглянув на страницу материала. Например, у меня URL - /index.php?option=com_content&task=view&id=123&Itemid=43, вот 43 и есть нужное нам значение.

Последний if - если статья о производителе по каким-то причинам отсутствует, то не показывать это все вообще.
Если у Вас в шаблоне от этого что-то существенно зависит (например, рамку Вы вокруг него обводите), то может получиться. что эта самая рамка останется, только будет пустой. Для того, чтоб избежать этого, придется поместить весь нужный кусок кода в $manufacturer_link, т.к. browse_Х.php на самом деле только шаблон, а не php файл, то есть он не анализируется интерпретатором php, в него невозможно вставить код, по крайней мере в моей версии. Если знаете решение - скажите :)

» » »

стр: 1 2 3

12 Responses to “VirtueMart - страница производителя в Joomla”

  1. Beeper Says:

    Не подскажешь как установить в VirtueMart плату за доставку - Shipping Fee? У меня при заказе выползает 2 $ - откуда не пойму. Используется стандартный модуль доставки. Обязательно ли создавать доставщика (Shipper) и Shipping Rate?

    (Включена подписка на комментарии)

  2. Путник Says:

    Если я правильно понимаю, доставочная служба обязательна, т.к. по умолчанию их там десяток, и предполагается, что покупатель будет выбирать какую-то из них.
    Кроме того, чтоб рассчитать тариф, нужно знать откуда, куда, сколько весит, итд. Таблица всего вышеперечисленного и составляет в VirtueMart “Shipping Rate”(Тариф доставки).
    Про 2$ - посмотри тарифы, посмотри какая служба доставки выбрана - где-то же эта цифра стоит :)

    Зы: страна “откуда” скорее всего берется из Store|Edit Store|Store Information
    ЗЗЫ: Для меня доставка неважна, поэтому глубоко не колупался.

  3. Di_Mon Says:

    Очень полезная и интересная штука, но почему то не работает :(

    (коммент удален, т.к. проблема была в синтаксической ошибке php)

    (Включена подписка на комментарии)

  4. valetxxx Says:

    $manufacturer_link = “<a>$text</a>”;
    А как сделать, чтобы не Java-окно, а обычная страница открывалась?

  5. Путник Says:

    2 valetxxx: во-первых, в том куске, который вы скопировали, была ошибка, и Di_Mon об этом писал.
    во-вторых, прошу не путать Java и Java-script - из-за этого я комметарий чуть не бросил в спам, т.к. Java в Joomlе не используется.
    в-третьих, Java-script окно появляется в оригинальной версии файла, в моем варианте это сделано через target=”_blank”
    в четвертых, <a>$text</a> работать не будет.

    
               $manufacturer_link = “<a
    href=”/index.php?option=com_content&task=view&id=$content_id&Itemid=id_катег”
       target=”_blank” title=”$text”>$text</a>”;   //это все в одну строку
    

  6. Max Says:

    Очень хочется сделать как описано в статье, но при внесении изменений выдает ошибки. Может подскажите, что поменять.
    Вот код:
    // LINK TO MANUFACTURER POP-UP
    $manufacturer_id = $ps_product->get_manufacturer_id($product_id);
    $manufacturer_name = $ps_product->get_mf_name($product_id);
    $manufacturer_link = “”;
    if( $manufacturer_id && !empty($manufacturer_name) ) {
    $link = “$mosConfig_live_site/index2.php?page=shop.manufacturer_page&manufacturer_id=$manufacturer_id&output=lite&option=com_virtuemart&Itemid=”.$Itemid;
    $text = ‘( ‘.$manufacturer_name.’ )’;
    $manufacturer_link .= vmPopupLink( $link, $text );

    // Avoid JavaScript on PDF Output
    if( @$_REQUEST[’output’] == “pdf” )
    $manufacturer_link = “<a>$text</a>”;
    }

  7. Max Says:

    Усли просто заменяю исходный на тот что в статье, то при попытки открыть товар пишет
    syntax error, unexpected T_STRING in Z:\home\shopper_frenzy.ru\www\administrator\components\com_virtuemart\html\shop.product_details.php on line 260

  8. Путник Says:

    не то. инструкция где? на моей странице я такого кода не припомню.

  9. alex Says:

    Вопрос по странице производителя
    Не очень хорошо разбираюсь в php. Поясни пожалуйста подробнее:
    - Идем в /administrator/components/com_virtuemart/html/shop.product_details.php
    - Примерно со строки 172 (у меня) приводим к виду: - куда именно и после чего вставлять или если заменять, то какой текст?

  10. Путник Says:

    2alex: в оригинале есть строчка
    LINK TO MANUFACTURER POP-UP
    вот от нее и надо плясать. Этот код писался для версии 1.0.5, и если у Вас другая версия (а она все-таки должна быть новее - почти 3 года прошло) то без понимания того, что происходит в приведенном куске, вам не обойтись. Сорри.
    Я сам в эту часть новых версий достаточно давно не заглядывал, чтоб с разбегу сказать и точный номер строки, и все остальное.
    Сейчас поправлю пост, и выделю жирным добавленые строчки, насколько помню :)

  11. Денис Агафонов Says:

    5 часов жизни угрохал, но сделал для j1.5.14 и последнего virtuemart, 1.1.4 вроде .

    Для страницы категории:
    $manufacturer_link = “”;
    $manufacturer_id = $ps_product->get_manufacturer_id($db_browse->f(’product_id’));
    $manufacturer_name = $ps_product->get_mf_name($db_browse->f(’product_id’));
    $db = new ps_DB;
    $q = “select id from jos_content where title=’$manufacturer_name’”;
    $db->query($q);
    $db->next_record();
    $content_id = $db->f(’id’);
    if( $manufacturer_id && !empty($manufacturer_name) ) {
    $link = JRoute::_(”$mosConfig_live_site/index.php?option=com_content&view=article&id=$content_id&Itemid=152″);
    $text = $manufacturer_name;
    $manufacturer_link .= “<a>$text&la>”;
    }

    P.S. Путник, сил моих больше нет, я сам не программист (жизнь заставила), помогите с той частью где вставлять ссылку на все товары производителя. А то метод проб и ошибок очень долог, особенно когда смутно догадываешься о том, что делаешь
    P.P.S извиняюсь, если не первый раз отправляю, просто вроде не прошло с первого.

    (Включена подписка на комментарии)

  12. Путник Says:

    2Денис: к сожалению, не подскажу. Я сейчас несколько отошел от веб-разработки, поэтому под рукой нет рабочей последней джумлы с ВМ, а ветка 1.0.* в этом вопросе слабый помощник.

Оставить комментарий - Feel free to ask me in English

Он появится после того, как будет одобрен. - All comments are pre-moderated.

Внимание! Пожалуйста, не пишите в комментарии [url=... или [url]... - это будет считаться спамом. Если хотите дать ссылку - пишите просто адрес, до 2х на один коммент.
Attention! Please don't use "[url=..." or "[url]..." in comment's body or it will be deleted as spam
If you want to send me a link just type url, up to 2 urls in one comment.

Спасибо за отзыв! Thank you for a comment!