学做CTO--技术篇4(joomla网站、包括组件的代码修改)

 先谈谈virtuemart的修改:

以我的www.nanguache.com为例,本机安装文件夹为d:/xampp/htdocs/joomla7):

1 要注意的是,每次一个url过来,都是用components/com_virtuemart/virtuemart_parser.php来解析的。

2 virtumart每次迁移,关于localhost还是nanaguache,总修改很麻烦。这时可以在joomla7/administrator/components/com_virtuemart/virtuemart.cfg.php。
   修改:  define('URL','http://localhost/');
             define('secureurl','http://localhost/');
  这样的话,每个virtumart的图片的显示都是链接都是链接到localhost了,如果迁移以后,就要改为主机域名。

3  关于推荐商品模块,每一张图都是一个商品的snapshot,这里的图片的链接是被virtuemart给强奸了一次的。这是因为每次这样的模块打开的方 式都是以默认网页的方式打开的,即是你在itemid为1的网页打开,商品的浏览界面(具体说就是flypage)就是在item为1的窗口打开的。这常 常不符合用户的习惯。南瓜车的数码产品,虽然在首页要推荐,但是一旦用户点击进去就要进入itemid为2的数码产品页面。在哪里修改呢?
    打开mod_virtuemart_featureprod.php,看到组成这个mod的代码,可以看到组成mod画面的代码多次 由$ps_product类的show_snapshot方法来的。show_snapshot先是显示是名字,然后是图片,然后是价格,然后是价格,然 后是加入购物车。$ps_product类出现在joomla7/administrator/components/com_virtuemart /classes/ps_product.php 里,而其show_snapshot其实就是调用product_snapshot这个方法。这个方法就是显示snapshot的具体过程:
    snapshot查出要显示的商品的id,name,product_parent_id,显示方式(flypage..),在url上加入 了?page=shop.product_details&category_id...等等,最后交给 common/productsnapshot.tpl.php。
   看来common/productsnapshot.tpl.php才是最关键的地方。打开Joomla7/components /com_virtuemart/themes/default/templates/common/productsnapshot.tpl.php, 注意这才是显示的关键。
   在productsnapshot.tpl.php里,把要图片的链接改为我们先要的地方。
   修改7-12行,让link先判读一下这个产品是数码(itemid 3)还是餐饮(itemid 13):
  <?php
    if($cid==13)
         $product_link = $product_link.'&Itemid=10';
    else
         $product_link = $product_link.'&Itemid=2';
    ?>  
   同时,为于某产品被用户点击加入购物车的后,page是shop_cart,所以这一页不能还在当前页,也要进入相应的数码或餐饮的界面。所以修改 <input type="hidden" name="Itemid" value="<?php echo ps_session::getShopItemid(); " />为<input type="hidden" name="Itemid" value="2" /> 。这里是默认在数码页。
   这样就搞定了推荐数码产品的一些用户体验的链接问题。
   结论:
    1   D:/xampp/htdocs/Joomla7/administrator/components/com_virtuemart/classes /ps_product就是专门搞产品显示的(在administrator里)。它引用了D:/xampp/htdocs/Joomla7 /components/com_virtuemart/themes/default/templates/common /productsnapshot.tpl.php(不在administrator)
       然后让productsnapshot.tpl.php去输出链接(文字链接和图像链接)。
      
    2  D:/xampp/htdocs/Joomla7/components/com_virtuemart/virtumart_parser(不在administrator)是搞解析的。它解析所有的url地址。

   3  我曾在ps_product.php的2343,2347 都加了一个后缀.'&Itemid=2' 不够没有用。这里不是最终的显示页面。

   4 模块说过require_once ( CLASSPATH. 'ps_product.php').看来classpath就是administrator/components/com_virtuemart/classes
 
4 在我的购物车页面里,会输出用户欲购买的产品的链接,这个链接很不行也是被强奸过的加入option=com_virtuemart& Itemid=1的,那么打开mod_virtumart_cart.php,她说include (PAGEPATH.'shop.basket_short.php') ;在哪呢?一般说Pagepath就是在
administrator/components/com_virtuemart/html中。shop.basket_short.php中91--94行:
    if($product_parent_id==13)
                $url = $url.'&Itemid=10';
        else
                $url = $url.'&Itemid=2';
    然后他fetch了common/minicart.tpl.php,说明显示也是在components/com_virtuemart/themes/default/templates/common/minicart.tpl。
     看见链接26行<a href="<?php echo $cart['url'] ?>"><?php echo $cart['product_name'] ?></a>说明我们在shop.basket_short里的链接是正确的

5 Virtumart_login、cart、seach的汉化工作是在administrator/components/com_virtuemart /languages/common/simpli-chinese中的。不是com_ser里面。所有的模块的深度汉化都可以到里面去找。注意在 administrator里面

6 virtumart的browse page里,常常只有没有属性的物品才有 "加入购入车'  button。如果有的产品有属性,如颜色为红色、绿色。那么就显示的是商品详情。这常常为用户造成幻觉,认为这样的产品没有了。
   在administrator/components/com_virtuemart/html/shop.browse.php里,把

// Add-to-Cart Button 
if (USE_AS_CATALOGUE != '1' && $product_price != ""
&& !stristr( $product_price, $VM_LANG->_('PHPSHOP_PRODUCT_CALL') )
&& !ps_product::product_has_attributes( $db_browse->f('product_id'), true )
&& $tpl->get_cfg( 'showAddtocartButtonOnProductList' ) ) {
中的
!ps_product::product_has_attributes( $db_browse->f('product_id'), true )


删掉,让每个商品都有加入购物车!
  但它老是提示要在商品详细页面中去选择款式,而且只提醒一次。。。。如果再点一次就没有反应了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值