Joomla/VM中产品详情只显示大图的实现
问题:VirtueMart(VM)默认在显示产品详细信息时显示小图,点击小图后再弹出新窗口显示大图。但有时需要在显示产品详细信息时直接显示大图,下面介绍如何修改代码实现这个功能:
解决方法[ ]
1、打开文件shop.product_details.php(位于 administrator/components/com_virtuemart/html/ 目录下),找到这一行
/** NOW LET'S BEGIN AND FILL THE TEMPLATE **/
在这一行上面加入以下代码
$full_image = "$mosConfig_live_site/components/com_virtuemart/shop_image/product/".$full_image;
2、打开flypage.php文件(位于administrator/components/com_virtuemart/html/templates/product_details/ 目录中)
在flypage.php文件中,{product_name}表示产品名,{product_image}表示产品的图片。{product_image}只是显示小图,点击小图后会显示大图,此时如果用<img src="{full_image}" />代替{product_image}就可以直接显示产品全图了。
因此,我们需要将所有的{product_image}用<img src="{full_image}" />替换。
本方法在 VM 1.0.7 版本经过测试,正常显示。其他版本应该也可以。
另外说一句,如果要自定义产品详细信息的页面,就修改flypage.php这个文件,比如设计成表格(table),将需要的东西(如{related_products}、{vendor_link}等等)放到想要的位置就可以了。
VM进一步优化改进[ ]
对VM进一步优化改进的 建议和相关问题:
首先VM经过初步改进以后依然有以下特点: 1.VM 前台小图片 点击以后 出现弹出新窗口到大图片。
2.VM 前台的连接,“product details" 点击以后出现产品大图和详细内容介绍。
改进的问题和建议步骤:
1,特点1是一种强迫用户查看的弹出窗口设置,应当尽量避免,通过点击前台小图片的目的只是为了查看大图片。然而产品详细介绍内容中已经能够出现大图片显示。所以从减化步骤考虑,应当采取直接URL到详细内容更合理。
修改文件browse_1.php(在administrator/components/com_virtuemart/html/templates/browse目录下)
一、找到
document.write('<a href="javascript:void window.open(\'{image_url}product/{product_full_image}\', \'win2 \',\'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes, width={full_image_width},height={full_image_height},directories=no,location=no\');">');
将它们替换为
document.write('<a href="{product_flypage}" title="{product_name}">');
二、找到
<a href="{image_url}product/{product_full_image}" target="_blank" title="{product_name}">
将它们替换为
<a href="{product_flypage}" title="{product_name}">
2. product details 在小图片的右侧会影响图片排烈时候的美观。而小图片通过步骤1完成了访问详细内容的功能。所以该说明文字可以不要。但是商品名称还是需要的。这个时候可以把商品名称文字缩小放到该小图片的下面。和图片URL到同样的详细内容介绍。
将文件browse_1.php(在administrator/components/com_virtuemart/html/templates/browse目录下)中的以下字句删除就可以了
<a href="{product_flypage}" title="{product_details...}">{product_details...}...</a>
3. VM 某些特定权限的设置。实现只有注册用户才能看到价格的功能。
在VM后台商城配置中有一个全局,里面有一个Membergroup to show prices to,选择registered就可以了