Итак, все получилось.
Теперь мой mod_virtuemart_featureprod выводит товар так, как мне нужно.
Това в категории выглядит следующим образом:
<a href="{product_flypage}" title="{product_name}">
<div style="width:230px;padding: 0px;">
<DIV id="module" style="width:230px;">
<DIV class="cbl"><DIV class="cbl1"><DIV class="cbl2"><DIV class="cbl3"><DIV class="cbl4"><DIV class="cbl5"><DIV class="cbl6"><DIV class="cbl7"><DIV class="cbl8">
<DIV class="cbl_c" align="center" valign="middle">
<img src="{product_thumb_image}" border="0" width="215px" height="251px" alt="{product_name}" />
</DIV>
</DIV></DIV></DIV></DIV></DIV></DIV></DIV></DIV></DIV>
</DIV>
<div style="padding:10px;">
<div align=center><a style="font-size: 16px; font-weight: bold;" href="{product_flypage}">{product_name}</a></div>
<a href="{product_flypage}" title="{product_name}"><div style="padding-left:20px;" align=left>{product_sku} <div style="padding-right:20px;margin-top:-18px" align=right>{product_price}</div></div></a>
</div>
</div>
</a>
После небольшого пыхтения мозгом, выяснилось, что mod_virtuemart_featureprod выводит то, что генерирует ps_product.php.
Итак, правим ps_product.php (у меня начиная с 2059 строки).
Вместо
$html .= "<span style=\"font-weight:bold;\">".$db->f("product_name")."</span>\n";
$html .= "<br />\n";
if ($db->f("product_parent_id")) {
$url = "?page=shop.product_details&category_id=$cid&flypage=".$this->get_flypage($db->f("product_parent_id"));
$url .= "&product_id=" . $db->f("product_parent_id");
} else {
$url = "?page=shop.product_details&category_id=$cid&flypage=".$this->get_flypage($db->f("product_id"));
$url .= "&product_id=" . $db->f("product_id");
}
$html .= "<a title=\"".$db->f("product_name")."\" href=\"". $sess->url($mm_action_url. "index.php" . $url)."\">";
$html .= $this->image_tag($db->f("product_thumb_image"), "alt=\"".$db->f("product_name")."\"");
$html .= "</a><br />\n";
if (_SHOW_PRICES == '1' && $show_price) {
// Show price, but without "including X% tax"
$html .= $this->show_price( $db->f("product_id"), true );
$html .= $product_sku; //вставляем артикул
}
if (USE_AS_CATALOGUE != 1 && $show_addtocart && !strstr( $html, $VM_LANG->_PHPSHOP_PRODUCT_CALL)) {
$html .= "<br />\n";
$url = "?page=shop.cart&func=cartAdd&product_id=" . $db->f("product_id");
$html .= "<a href=\"". $sess->url($mm_action_url . "index.php" . $url)."\">".$VM_LANG->_PHPSHOP_CART_ADD_TO."</a><br />\n";
}
заменяем на
if ($db->f("product_parent_id")) {
$url = "?page=shop.product_details&category_id=$cid&flypage=".$this->get_flypage($db->f("product_parent_id"));
} else {
$url = "?page=shop.product_details&category_id=$cid&flypage=".$this->get_flypage($db->f("product_id"));
$url .= "&product_id=" . $db->f("product_id");
}
$html .= "<a href=\"".$url."\" title=\"".$db->f("product_name")."\">
<div style=\"width:230px;padding: 0px;\">
<DIV id=\"module\" style=\"width:230px;\">
<DIV class=\"cbl\"><DIV class=\"cbl1\"><DIV class=\"cbl2\"><DIV class=\"cbl3\"><DIV class=\"cbl4\"><DIV class=\"cbl5\"><DIV class=\"cbl6\"><DIV class=\"cbl7\"><DIV class=\"cbl8\">
<DIV class=\"cbl_c\" align=\"center\" valign=\"middle\">";
$html .= $this->image_tag($db->f("product_thumb_image"), "width=\"215px\" height=\"251px\" alt=\"".$db->f("product_name")."\"");
$html .= "</DIV>
</DIV></DIV></DIV></DIV></DIV></DIV></DIV></DIV></DIV>
</DIV>
<div style=\"padding:10px;\">";
$html .= "<div align=center><a href=\"".$url."\" title=\"".$db->f("product_name")."\">".$db->f("product_name")."</a></div>
<a href=\"".$url."\" title=\"".$db->f("product_name")."\"><div style=\"padding-left:20px;\" align=left>".$product_sku."<div style=\"padding-right:20px;margin-top:-18px\" align=right>";
if (_SHOW_PRICES == '1' && $show_price) {
// Show price, but without "including X% tax"
$html .= $this->show_price( $db->f("product_id"), true );
//$html .= $product_sku; //вставляем артикул
}
if (USE_AS_CATALOGUE != 1 && $show_addtocart && !strstr( $html, $VM_LANG->_PHPSHOP_PRODUCT_CALL)) {
$html .= "<br />\n";
$url = "?page=shop.cart&func=cartAdd&product_id=" . $db->f("product_id");
//меняем ссылку с корзины на карточку товара
//$html .= "<a href=\"". $sess->url($mm_action_url . "index.php" . $url)."\">".$VM_LANG->_PHPSHOP_CART_ADD_TO."</a><br />\n";
$html .= "<a href=\"".$url."\">".$VM_LANG->_PHPSHOP_CART_ADD_TO."</a><br />\n";
}
$html .= "</div></div></a>
</div>
</div>
</a>";
Прикручиваем к этому делу CSS
/*товар в категории*/
.cbl {background:url(../img/cbl5.gif) left top repeat-x; width:230px;}
.cbl1 {background:url(../img/cbl5.gif) left top repeat-y; width:230px;}
.cbl0 {background:url(../img/cbl0.gif) left bottom no-repeat; width:230px;}
.cbl2 {background:url(../img/cbl6.gif) right top repeat-y; width:230px;}
.cbl3 {background:url(../img/cbl7.gif) left bottom repeat-x; width:230px;}
.cbl4 {background:url(../img/cbl1.gif) left top no-repeat; width:230px;}
.cbl5 {background:url(../img/cbl2.gif) right top no-repeat; width:230px;}
.cbl6 {background:url(../img/cbl3.gif) right bottom no-repeat; width:230px;}
.cbl7 {background:url(../img/cbl4.gif) left bottom no-repeat; width:230px;}
.cbl8 {padding:1px;padding-right:6px;padding-bottom:10px; width:230px;}
.cbl9 {background:url(../img/cbl9.gif) right bottom no-repeat; width:230px;}
.cbl_c {padding:9px; width:230px;margin-left:-12px}
и вуаля!
Для наглядности прикрепил исправленный файл ps_product.php, CSS с этим кодом и картинки. Думаю, кому интересно - разберутся.
[вложение удалено Администратором]