Плагины на карточке товара в VirtueMart должны работать, по той причине что в файле administrator/components/com_virtuemart/html/shop.product_details.php есть такой код:
$product_description = $db_product->f("product_desc"); if( (str_replace(" ", "" , $product_description)=='') && ($product_parent_id!=0) ) { $product_description = $dbp->f("product_desc"); // Use product_desc from Parent Product } $product_description = vmCommonHTML::ParseContentByPlugins( $product_description );
судя по всему, поле product_s_desc (краткое описание) на карточку товара (flypage) не передаётся. Но зато оно передаётся в мета теги:
// Prepend Product Short Description Meta Tag "description" if( vmIsJoomla('1.5')) { $document = JFactory::getDocument(); $document->setDescription(strip_tags( $db_product->f("product_s_desc"))); } else { $mainframe->prependMetaTag( "description", strip_tags( $db_product->f("product_s_desc")) ); }
Чтобы его передать, надо сделать так:
$tpl->set( "product_id", $product_id ); $tpl->set( "product_name", $product_name ); $tpl->set( "product_image", $product_image ); $tpl->set( "more_images", $more_images ); $tpl->set( "images", $files['images'] ); $tpl->set( "files", $files['files'] ); $tpl->set( "file_list", $file_list ); $tpl->set( "edit_link", $edit_link ); $tpl->set( "manufacturer_link", $manufacturer_link ); $tpl->set( "product_price", $product_price ); $tpl->set( "product_price_lbl", $product_price_lbl ); $tpl->set( 'product_price_raw', $product_price_raw ); $tpl->set( "product_description", $product_description ); $tpl->set( "product_short_description", $db_product->f("product_s_desc") );
ну и соответственно в карточке товара добавляем код:
<?php echo "<p>$product_short_description</p>"; echo $product_description; ?>
Кстати, тут используется интересная PHP функция strip_tags, которая получает неформатированный текст из HTML. Для неё есть самодельный эквивалент на C#.
Спасибо, оч. помогла, прям спас мою голову)))
Комментарий by Антон — 13 марта 2012 @ 15:25