国际电子商务技术 & Magento开发公司

Maishen technologies

Welcome visitor! You canlogin orcreate an account.

热线:+86-0532-58973093

麦神科技有限公司
Mygod Technologies

官方认证开发工程师

magento为您自己制作的模块增加面包屑导航breadcrumbs

2012年1月10日星期二 Asia/Shanghai下午10:07:42

magento的breadcrumbs是一个不错的功能,让自己制作新的模板的时候,也需要添加上breadcrumbs,增加更好的客户体验,magento的breadcrumbs机制,是一个很好的功能,扩展起来也是非常的方便,只要在您新的模块的controller对应的actions方法添加上就可以。,下面是一个例子:

$breadcrumbs = $this->getLayout()->getBlock('breadcrumbs');
 
$breadcrumbs->addCrumb('home', array('label'=>Mage::helper('cms')->__('Home'), 'title'=>Mage::helper('cms')->__('Home Page'), 'link'=>Mage::getBaseUrl()));
 
$breadcrumbs->addCrumb('country', array('label'=>'Country', 'title'=>'All Countries', 'link'=>'http://example.com/magento/moduleName/country'));
 
$breadcrumbs->addCrumb('manufacturer', array('label'=>'State', 'title'=>'States'));
改代码要写在$this->loadLayout();之后,$this->renderLayout();之前
让您想在其他地方显示,可以使用下面的代码输出breadcrumbs
 
echo $this->getLayout()->getBlock('breadcrumbs')->toHtml();
祝您使用愉快!!
0 Comments | Posted in magento二次开发 By terry water

当客服不在线的时候,客户可以通过邮件的方式给我们留言,发送到我们的公司邮箱,也就是magento的contact us 功能,在使用的时候会遇到一种情况:Unable to submit your request. Please, try again later

当提交按钮点击后,执行的是:

/app/code/core/Mage/Contacts/controllers/IndexController.php

public function postAction()
通过断点监测,程序到这里就抛出异常
  if (!$mailTemplate->getSentSuccess()) {
                    throw new Exception();
                }

到最后发现,是服务器的问题,IMAP电子邮件系统函数库不支持
如果您的邮箱在后台设置了,但是发送不了邮件,可以下载一个php探针,下载地址为:php探针
测试看看IMAP电子邮件系统函数库是否支持!
0 Comments | Posted in magento日常所用 By terry water

如何使用任何一个block中得方法!

2011年12月27日星期二 Asia/Shanghai下午12:39:28

在这里我介绍的是如何使用任何一个在magento中得block的方法,下面是一个列子,如何使用catalog/product_view中得block!

这是一个相当灵活的方法,意味着我们可以使用任何地方的block!

找这个功能源于一个需求,在产品列表页面做ajax购物车,需要进行一个判断,如果有客户自定义属性,那么填出一个选择窗口,如果没有直接加入,要用到catalog_product_view里面的一个hansoptions方法判断是否有客户自定义属性!

下面是解决办法

 

$productid是产品的id
$className = Mage::getConfig()->getBlockClassName('catalog/product_view');
    
 $block = new $className();
 $block->setProductId($productid);


 if( $block->hasOptions()){
 echo "good";
 }else{
 echo "bad";
 }
也就是有options,输出good,没有,输出bad,然后我替换成我向执行的代码就可以了!
个人推荐--很实用的一个方法!
0 Comments | Posted in Magento开发 By terry water

在麦金斗网店中paypal的地址传递问题的错误纠正!

2011年12月20日星期二 Asia/Shanghai下午4:34:20

magento本身有paypal的功能,使用起来很方便,在初次使用的时候也许会迷惑,跳转后回发现地址无效,这是因为地址填写不对,paypal跳转的时候会拒绝,我们想让他在地址有效的时候传递过去有效地址,如果无效地址,让他也跳转但是不传递地址,

在网上找资料,有一篇文章,地址为:http://blog.csdn.net/terry_water/article/details/6567090

我里面的内容如下:

***********************************************************************************

因为测试的时候我们喜欢乱填写一些地址,所以测试的时候会出现错误:

无法处理付款。由于商家提供的送货地址无效,而且商家要求您的订单必须送到该地址,因此,请与该商家进行联系。

哈哈!!

查查了网上:

如果你使用的是Web Payment Standard的话你找到Paypal/Mode/Standard.php ,里面有'address_override' =1,这一行改成'address_override'  =0,就可以了,大致在158行

但是我用的是1.4.2,这个文件没有这个啊

 

想了想,就将ddress_override,这个单词用dw搜索app文件夹下所有文件,搜到i个设置

app/code/core/mage/paypal/model/api/standard.php

237行

 $request['address_override'] = 1;

将这个值设置为0.OK,搞定了!!

填写假的地址也可以跳转过去了!!

********************************************************************************

在这里向大家抱歉,这个是有致命缺陷的,我们的网店在测试的时候,客户反映跳转不了,然后我们多台机器同时测试,最后发现,当同一时间下单的时候,传递过去的order_id是一样的,这样致使跳转的时候报错,然后我上面修改的改成magento默认的方式,然后就不会出现这个问题了,如果您看了这个文章,然后修改了上面的文件,请修改过来,

结尾我想说的是:magento默认的东西,尽量不要修改,因为做电子商务要的是稳定,magento官网的东西,一般测试的很好,不会出乱子,如果你修改了内核的东西,请进行大量的测试,然后在上线使用,这样客户保证公司的电子商务网站的问题!

好了,看了我的csdn的朋友,如果对您造成损失,抱歉!

0 Comments | Posted in Magento开发 By terry water

block中remove 和unsetChild用法的区别(二)

2011年12月16日星期五 Asia/Shanghai上午11:08:34

magento的block里面有丰富的标签,但是magento公司没有出来详细的介绍,只有一些基本的描述

具体的时候,还是得通过实践自己摸索,下面是我找到的一些区别

block中remove和unsetChild这2个标签在xml中的区别:如下

对于某个block,我们想要其他的页面都有,而这个页面没有,我们会选择在当前页面移除这个block

我们会想到选择用2个标签,unsetchild和remove

他们的原理是这样的:

unsetCild是在当前block下移除这个block,但是block还是加载执行的,只是和当前的block没有从属关系了

而remove,是删除这个block的加载,无论这个block在那个block之下,或者这个页面加载这个block N次,只要一个remove,全部清空

在具体的操作中,还是要注意一些的,譬如如下:

在我的一片文章中写过,block的写法有很多中,可以写在layout的xml文件中,也可以在模块的block中写,也可以通过controller中写,譬如:如下,在 block中写入如下:

$layout->getBlock('catalog.topnav')->setTemplate('webandpeople/custommenu/top.phtml');

这个是custom menu插件中得一块代码,如果使用<remove name="top.men">就会报错!

因为使用remove,结构就是根本不加载block,所以模块执行的找不到这个block了,就会报错。

知道这些东西,会找错,辨错,以上我描述不是很清楚,可能只可意会,不可言传吧,或者境界未到,呵呵,只能写这么多,只要明白magento的初始化过程,理解上面的内容应该不难

是否,自己以后出点模块制作的视频呀,有时间一定做一些!

0 Comments | Posted in magento二次开发 By terry water
 
  • Mygod Technologies
  • 麦神科技有限公司
  • 香港中路8号
  • 中铁青岛中心大厦A3001
  • 市南区, 青岛, 266000
  • 电话: 0532-5897-3093

订阅我们的最新消息。

我们将严格尊重您的隐私。

关注我们的微信
获取外贸电子商务最新资讯;跨境推广最新策略;电子商务网站技术最新趋势。

2018 Mygod Technologies. 保留所有权. Privacy Policy