Собирательный способ на основе тем
http://joomlaforum.ru/index.php/topic,7210.0.html и
http://joomlaforum.ru/index.php/topic,7210.0.htmlЗадача: автоматом ставить картинки "Новинка" на картинки товаров, которые были добавлены в течение последних 2 недель;
и поставить картинки "Лидер продаж" тем товарам, которые отмечены как "специальное предложение"
Решение:1. Открываем administrator\components\com_virtuemart\html\shop.browse.php примерно после этого участка кода
$product_name = $db_browse->f("product_name");
if( $db_browse->f("product_publish") == "N" ) {
$product_name .= " (".vmHtmlEntityDecode(_CMN_UNPUBLISHED).")";
}
Вставляем этот код :
// Check for new product wher $db_product query is "SELECT * FROM #__{vm}_product WHERE
// product_id='$product_id' "
if ((time() - $db_browse->f("cdate")) < (14 * 86400)) { // 14 Days * (number of seconds in 24 hours)
//$new_img = "New Item"; // code required for new tag - text only version
$new_img = '<div style="position: absolute; right: 0px; top: 0;"><img src="'. $mosConfig_live_site .'/images/stories/labels_product/new_img.png" border="0" alt="Новинка" title="Новинка" align="right"></div>'; // code required for new tag
} else {
$new_img = "";
}
if( $db_browse->f("product_special") == "Y" ) {
$leader_img = '<div style="position: absolute; right: 0px; bottom: 0;"><img src="'. $mosConfig_live_site .'/images/stories/labels_product/leader_img.png" border="0" alt="Лидер продаж" title="Лидер продаж" align="right"></div>'; // code required for new tag
} else {
$leader_img = "";
}
Затем в этом же файле немного ниже, после секции
$products[$i]['cdate'] = $VM_LANG->convert( vmFormatDate($db_browse->f("cdate"), $VM_LANG->_('DATE_FORMAT_LC') ));
$products[$i]['mdate'] = $VM_LANG->convert( vmFormatDate($db_browse->f("mdate"), $VM_LANG->_('DATE_FORMAT_LC') ));
$products[$i]['product_url'] = $db_browse->f("product_url");
Добавляем вот это
$products[$i]['new_img'] = $new_img ;
$products[$i]['leader_img'] = $leader_img;
2. В administrator\components\com_virtuemart\html\shop_browse_queries.php
вместо$fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`#__{vm}_category`.`category_id`,
`#__{vm}_product`.`product_id`,`product_full_image`,`product_thumb_image`,`product_s_desc`,`product_parent_id`,`product_publish`,`product_in_stock`,`product_sku`, `product_url`,
`product_weight`,`product_weight_uom`,`product_length`,`product_width`,`product_height`,`product_lwh_uom`,`product_in_stock`,`product_available_date`,`product_availability`,`#__{vm}_product`.`mdate`, `#__{vm}_product`.`cdate`";
Вставить вот это:
$fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`#__{vm}_category`.`category_id`,
`#__{vm}_product`.`product_id`,`product_full_image`,`product_thumb_image`,`product_s_desc`,`product_special`,`product_parent_id`,`product_publish`,`product_in_stock`,`product_sku`, `product_url`,
`product_weight`,`product_weight_uom`,`product_length`,`product_width`,`product_height`,`product_lwh_uom`,`product_in_stock`,`product_available_date`,`product_availability`,`#__{vm}_product`.`mdate`, `#__{vm}_product`.`cdate`";
3. Идем дальше в /administrator/components/com_virtuemart/html/shop.product_details.php
Открываем ,строка примерно 253 где то преред таким кодом;
/* MORE IMAGES ? */
$more_images = "";
if( !empty($images->images) ) {
Вставляем это:
// Check for new product wher $db_product query is "SELECT * FROM #__{vm}_product WHERE
// product_id='$product_id' "
if ((time() - $db_product->f("cdate")) < (14 * 86400)) { // 14 Days * (number of seconds in 24 hours)
//$new_img = "New Item"; // code required for new tag - text only version
$new_img_fly = '<div style="position: absolute; right: 0px; top: 0;"><img src="'. $mosConfig_live_site .'/images/stories/labels_product/new_img_fly.png" border="0" alt="Новинка" title="Новинка" align="right"></div>'; // code required for new tag
} else {
$new_img_fly = "";
}
if( $db_product->f("product_special") == "Y" ) {
$leader_img_fly = '<div style="position: absolute; right: 0px; bottom: 0;"><img src="'. $mosConfig_live_site .'/images/stories/labels_product/leader_img_fly.png" border="0" alt="Лидер продаж" title="Лидер продаж" align="right"></div>'; // code required for new tag
} else {
$leader_img_fly = "";
}
Затем ищем такой участок кода
$tpl->set( "related_products", $related_products );
$tpl->set( "vendor_link", $vendor_link );
$tpl->set( "product_type", $product_type ); // Changed Product Type
$tpl->set( "product_packaging", $product_packaging ); // Changed Packaging
$tpl->set( "ask_seller_href", $ask_seller_href ); // Product Enquiry!
$tpl->set( "ask_seller_text", $ask_seller_text ); // Product Enquiry!
$tpl->set( "ask_seller", $ask_seller ); // Product Enquiry!
$tpl->set( "recent_products", $recent_products); // Recent products
И добавляем после него
$tpl->set( "new_img_fly", $new_img_fly); // новинка!
$tpl->set( "leader_img_fly", $leader_img_fly); // Лидер продаж
4. Не забываем про сами картинки, они лежат в:
images/stories/labels_product new_img.png – картинка «новинка» для категории
leader_img.png – картинка «Лидер продаж» для категории
new_img_fly.png – картинка «новинка» для карточки товара
leader_img_fly.png - картинка «Лидер продаж» для карточки товара
5. для вывода
в категории идем в components\com_virtuemart\themes\default_my\templates\browse\browse_1.php (или тот, который используется у вас)
и после
<a href="<?php echo $product_full_image ?>" target="_blank" title="<?php echo $product_name ?>">
<?php echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="0" title="'.$product_name.'" alt="'.$product_name .'"' )?>
</a>
Добавляем
<?php echo $new_img ?>
<?php echo $leader_img ?>
6. для вывода в
карточке товара идем в components\com_virtuemart\themes\default_my\templates\product_details\flypage.tpl.php (или тот, который используется у вас)
и после
<?php echo $product_image ?>
Добавляем
<?php echo $new_img_fly ?>
<?php echo $leader_img_fly ?>
Вроде все.