VirtueMart - страница производителя в Joomla
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, в него невозможно вставить код, по крайней мере в моей версии. Если знаете решение - скажите :)
July 5th, 2006 at 6:48
Не подскажешь как установить в VirtueMart плату за доставку - Shipping Fee? У меня при заказе выползает 2 $ - откуда не пойму. Используется стандартный модуль доставки. Обязательно ли создавать доставщика (Shipper) и Shipping Rate?
(Включена подписка на комментарии)July 5th, 2006 at 6:58
Если я правильно понимаю, доставочная служба обязательна, т.к. по умолчанию их там десяток, и предполагается, что покупатель будет выбирать какую-то из них.
Кроме того, чтоб рассчитать тариф, нужно знать откуда, куда, сколько весит, итд. Таблица всего вышеперечисленного и составляет в VirtueMart “Shipping Rate”(Тариф доставки).
Про 2$ - посмотри тарифы, посмотри какая служба доставки выбрана - где-то же эта цифра стоит :)
Зы: страна “откуда” скорее всего берется из Store|Edit Store|Store Information
ЗЗЫ: Для меня доставка неважна, поэтому глубоко не колупался.
August 3rd, 2006 at 13:54
Очень полезная и интересная штука, но почему то не работает :(
Все сделал как описано в этой статье, в результате вываливается ошибка
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
(Включена подписка на комментарии)August 3rd, 2006 at 14:26
У меня эта строчка встречается раза 4. Если я правильно понял, это между “LINK TO MANUFACTURER POP-UP” и “PRODUCT PRICE” и до заполнения шаблона?
Можно весь кусок между этими 2мя строками?
August 3rd, 2006 at 14:44
Вот кусок кода с внесенными изменениями…
/** 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 **/
August 3rd, 2006 at 15:31
/ Avoid JavaScript on PDF Output
if( @$_REQUEST[’output’] == “pdf” )
$manufacturer_link = “$text”;
}
Закрывающая фигурная скобка есть, а где открывающая?