Рассмотрим как в краткое описание товара добавить информацию о его типе и производителе. Допустим мы хотим получить что то типа: «Материнская плата Gigabyte ga-ma770-ud3». Приступим.
Добавление название типа товара:
1. Открываем файл …\www\administrator\components\com_virtuemart\classes\ps_product_type.php и добавляем в него функцию get_name_only;
function get_name_only($product_id) { $db = new ps_DB; $q = "SELECT product_type_name FROM #__{vm}_product_type, #__{vm}_product_product_type_xref WHERE #__{vm}_product_product_type_xref.product_id ='$product_id ' "; $q .= "AND #__{vm}_product_type.product_type_id=#__{vm}_product_product_type_xref.product_type_id"; $db->query($q); $db->next_record(); return $db->f("product_type_name"); } |
2. Открываем файл …\www\administrator\components\com_virtuemart\html\shop.browse.php и добавляем в него:
— ищем строки:
require_once(CLASSPATH . 'ps_product_attribute.php' ); $ps_product_attribute = new ps_product_attribute;<strong> </strong> |
— после них добавляем:
require_once(CLASSPATH . 'ps_product_type.php' ); $ps_product_type = new ps_product_type; |
— затем ищем
$product_s_desc = $db_browse->f("product_s_desc"); if( empty($product_s_desc) && $product_parent_id!=0 ) { $product_s_desc = $dbp->f("product_s_desc"); // Use product_s_desc from Parent Product } |
— и после добавляем
$flerd_product_id = $db_browse->f("product_id"); $product_type_name = $ps_product_type->get_name_only($flerd_product_id); |
— идем ниже и дописываем
$products[$i]['product_type_name'] = $product_type_name; |
3. Открываем файл шаблона показа краткой информации (у меня это …\www\components\com_virtuemart\themes\vm_mynxx\templates\browse\browse_1.php) и в нужно Вам место вставляем:
<?php echo $product_type_name ?> |
На этом процесс добавления название типа товара закончен, теперь таким же образом добавим производителя.
Добавление производителя:
1. Открываем файл …\www\administrator\components\com_virtuemart\classes\ps_manufacturer.php и добавляем в него функцию get_name_mf:
function get_name_mf($product_id) { $db = new ps_DB; $q = "SELECT mf_name FROM #__{vm}_manufacturer, #__{vm}_product_mf_xref WHERE #__{vm}_product_mf_xref.product_id ='$product_id' "; $q .= "AND #__{vm}_manufacturer.manufacturer_id=#__{vm}_product_mf_xref.manufacturer_id"; $db->query($q); $db->next_record(); return $db->f("mf_name"); } |
2. Открываем файл …\www\administrator\components\com_virtuemart\html\shop.browse.php и добавляем в него:
— ищем строку:
$product_type_name = $ps_product_type->get_name_only($flerd_product_id); |
— после нее добавляем:
$mf_name = $ps_manufacturer->get_name_mf($flerd_product_id); |
— затем ищем:
$products[$i]['product_type_name'] = $product_type_name; |
— и добавляем:
$products[$i]['mf_name'] = $mf_name; |
3. Открываем файл шаблона показа краткой информации (у меня это …\www\components\com_virtuemart\themes\vm_mynxx\templates\browse\browse_1.php) и в нужно Вам место вставляем:
<?php echo $mf_name ?> |
На этом процесс добавления производителя товара закончен, теперь сформируем название товара. Это будет выглядеть следующим образом:
Редактируем файл шаблона (browse_1.php), таким образом:
<div> <h3 ><a title="<?php echo $product_name ?>" href="<?php echo $product_flypage ?>"> <?php echo $product_type_name ?> <?php echo $mf_name ?> <?php echo $product_name ?></a> </h3> </div> |
И получаем следующее:
«Материнская плата Gigabyte ga-ma770-ud3», где:
«Материнская плата» — это название типа товара;
«Gigabyte» — это производитель;
«ga-ma770-ud3» — это название товара.
автор: Mekilor