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

6 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:

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

    Все сделал как описано в этой статье, в результате вываливается ошибка

    Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in ..\administrator\components\com_virtuemart\html\shop.product_details.php on line 185

    в этой строчке находится

    if( @$_REQUEST[’output’] == “pdf” )

    Стоит жумла 1,0,10 и март 1,0,5

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

  4. Путник Says:

    У меня эта строчка встречается раза 4. Если я правильно понял, это между “LINK TO MANUFACTURER POP-UP” и “PRODUCT PRICE” и до заполнения шаблона?
    Можно весь кусок между этими 2мя строками?

  5. Di_Mon Says:

    Вот кусок кода с внесенными изменениями…

    /** 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”);
    $manufacturer_link = “<a>$text</a>”;

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

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

  6. Путник Says:

    / Avoid JavaScript on PDF Output
    if( @$_REQUEST[’output’] == “pdf” )
    $manufacturer_link = “$text”;
    }
    Закрывающая фигурная скобка есть, а где открывающая?

Оставить комментарий - 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!