magento中文站

magento如何使用第三方PHP库

08.23.2010 · Posted in Magento新闻

Magento遵循一般的方法使用第三方PHP库,即:将php库放到某个目录下,在php.ini或程序头部指定该目录或者父目录指定为include_path,然后程序中使用include_once相对路径包含具体引用的php文件 Magento的lib目录已经默认指定为include_path里了,所以如果有3rd包如Varien放到lib目录下,有一个php文件全名为$magento_home/lib/Varien/Object.php 那么在Magento的代码中只要:include_once(‘Varien/Object.php’); 就可以调用里面的类和函数了。 ...

如何修改magento产品列表默认排序

08.23.2010 · Posted in Magento新闻

magento的产品在列表页默认是按升序排列,也就是说先添加的产品显示在最前面,这就导致页面上总是看到老产品,而新添加的却要翻页才能看到。想让最新添加的排最前面需要修改文件,方式如下: 打开文件\app\code\core\Mage\Catalog\Block\Product\List\Toolbar.php,找到 /** * Default direction * * @var string */ protected $_direction = ‘asc’; 这个参数就是默认顺序 修改成: protected $_direction ...

十大人气Magento扩展

08.18.2010 · Posted in Magento优化

Magento根据官方扩展中心Magento Connect里面扩展被下载次数的统计,列出了之前一周(1月31日至2月5日)的十大最具人气扩展。这边小做围观一下: WYSIWYG Editor:为管理后台相关页面添加所见即所得编辑器。(作者:Fontis) Blog Extension:为Magento提供全套博客功能。(作者:aheadWorks) Flash Gallery ‘Flip’ and the new extension ‘CMS Content-Editor:兼容CMS编辑模式的FLASH相册。(作者:muc1) Enhanced Admin Products Grid:为产品陈列添加可自定义的“特色展区”。(作者:nel) Free CMS/Block Frontend Features:动态block解决方案,允许用户在页面前台的任意位置添加HTML代码。(作者:Asia Connect Group) Magento Absolute Theme:一款免费的专业Magento主题模板。(作者:TemplatesMaster) FreePOP Theme:一款简洁的主题模板,特别适用于CD、DVD、音乐及影视类网店。(作者:Mage-World) Magento Easy Lightbox:易装易用的lightbox效果插件。(by TemplatesMaster) Fooman Speedster:改变Magento加载JavaScript和CSS文件的方式,加速站点。(作者:Fooman) Exploded Menu:将默认的标准单列弹出菜单替换为多列,支持两级子菜单(作者:Commerce) 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shuishui8310/archive/2010/03/30/5432948.aspx ...

magento如何获取所有启用的支付模块

08.18.2010 · Posted in Magento优化, Magento插件

下面这段代码会获得所有启用的支付模块。下面的例子返回一个数组,你可以使用它在前台或后台创建下拉菜单或其他东西。 view plaincopy to clipboardprint? class Inchoo_Vendor_Model_Activpayment { public function getActivPaymentMethods() { $payments = Mage::getSingleton(‘payment/config’)->getActiveMethods(); $methods = array(array(‘value’=>”, ‘label’=>Mage::helper(‘adminhtml’)->__(‘–Please Select–’))); foreach ($payments as $paymentCode=>$paymentModel) { ...

如何解决magento项目迁移后无法在线安装插件的问题

08.18.2010 · Posted in Magento新闻

安装完的magento项目移动位置后再用magento connect在线安装插件会失败,列表中会显示已安装,后台却看不到,检查downloader文件夹会发现文件并不存在,这是怎么回事? 其实原因很简单,magento的在线安装需要有一个配置文件来指定插件的下载路径,新安装magento项目时会自动生成一个针对当前目录的pear.ini文件,里面包含了当前项目所在目录路径信息,当你迁移了一个项目,pear.ini并不会自动修改,这时pear.ini文件里指定的路径已经是错误的,安装插件就会失败。所以你需要做的就是删除原有的pear.ini文件,进入后台插件管理页面,点击”Settings”选项卡,重新保存配置,系统会生成新的pear.ini文件,现在试一下安装新的插件吧。 PS:pear.ini所在路径–根目录\downloader\pearlib\pear.ini 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/shuishui8310/archive/2010/01/22/5223011.aspx ...

Magento产品如何直接进入结账页面?

07.30.2010 · Posted in Magento新闻

Magento在产品页增加个立即购买的按钮,跳过购物车页面直接进入结账页面。这个是今天客户提的需求,用了个简单的jQuery解决了这个问题。当然如果你的网站没有用到jQuery的话,就直接用JS写吧。 一、在addtocart.phtml中加入checkout/onepage/” id=”checknow”>立即购买。 二、给加入购物车的按钮加个id=“addtocart”。 三、加入以下jQuery, jQuery("#checknow").click(function(){ jQuery("#addtocart").click(); } ) 这个方法存在一定的缺陷就是,结账的时候会把所有购物车里的产品一起结了,不过客户就是要这样的结果。 ...

如何制作Magento模板

07.30.2010 · Posted in Magento开发, Magento结构

制作Magento模板的前提是:你要会 Html,div+css。不管你想做什么模板,这个都是基础。如果想要做出个精致的Magento,还必须精通div+css。因为涉及到一个浏览器的兼容问题,当你在Firefox下打开你的Magento商城看着感觉是很完美,但是到了IE6下完全变形,而且中国还有50%左右的人用IE6。 在制作Magento模板之前,首先要选一个比较简单的模板,然后在此基础上做。我个人推荐使用Blank模板,这个模板比较干净,图片除了必须的 几乎没有,而且css也很精简。我刚开始做Magento模板的时候用的是Default的模板,这个模板的css文件很大,而且等模板完成后,会有很多无用图片。曾经做一个项目的时候,客户死死的抓住网站的css文件太大,让我相当的头疼。废话有点多,现在开始正题。 Magento模板最主要的地方是首页,首页完成,Magento模板就完成30%左右了。我个人习惯是先改头部和尾部,这两个地方是所有页面都有的。头部的东西都在app\design\frontend\default\你的主题\template\page\html \header.phtml里面。底部的东西都在app\design\frontend\default\你的主题\template\page \html\footer.phtml里面。这两块的话都是靠css修改的,没什么好说的。我重点讲下中间部分的布局等。 Magento的布局对于新手来说,是比较困难的。如果英语好的话建议去看看官方的介绍http://www.magentocommerce.com/design_guide/articles/intro-to-layouts,现在网上也有很多翻译好的了,想要的可以去找找。我个人认为布局就是把已有的block放到应该的地方,一般都是在xml里面调动。我介绍下 catalog.xml,其他的就不说了,原理都一样,而且大部分的布局都可以在catalog里面实现。app\design\frontend \default\你的主题\layout\catalog.xml,进入后你可以看到类似的注释“Default layout, loads most of the pages”,这些注释的意思就是你所改的是什么地方的布局,例如:“Default layout, loads most of the pages”这句说的就是网站默认布局。接着往下看,会看到很多的标签,这些都是需要在page.xml里定义过后,这里才能用,这里先不详细介绍了。这些“name”有 “left”,“right”,“header”等等,从字面上我们就能看出来他们所指的位置,“left”是指左边栏,“right”指右边栏,“header”指头部。各个标签里会包含多个block就是我要调用的功能模块了。例如经常会有人问怎样把左边的什么移到右边,这个问题很好解决,在“left”里找到对应的block放到右边,这样就成功了。是不是觉得很简单,这篇就先讲到这,没写过这样的教程,可能讲的不详细,如果有不懂的可以留言。 ...

去除magento的SID,删除sid magento sid url

05.25.2010 · Posted in Magento seo, Magento优化

我想大家可能都有碰到这种情况,就是在访问magento 网站的时候,有的时候后面会带一个session id字符串,有时候却没有。如: http://www.xyzabc.com/?SID=54b1888e1c2e3281945bf05210f6d0fa 那么什么时候会再现SID,什么时候没有呢?我们知道访问一个域名通常可以使用下列两种形式: www.xyzabc.com xyzabc.com 只要你的DNS设定指向了同一个IP,并且apache做了相应的配置。问题就在于此。当你的magento 设置(System> Configuration> Web > Un secure) 的base URL是http://www.xyzabc.com时,而你使用http://xyzabc.com访问时,那么打开的页面中有的链接就会带SID字符串,而且是那么分使用相对路径的URL生成的URL中会有。反之也是,如果magento 后台中设置的base url是xyzabc.com时,在使用www.xyzabc.com访问时,同样也会带sid字符串。 那带SID的URL会带来什么问题? 第一,可能会导致某些magento 页面无法访问, 尤其是那些在代码中是通过相对路径来指定生成的URL。比如,本来应该是生成 http://www.xyzabc.com/contacts/ 现在却是 http://www.xyzabc.com/?SID=54b1888e1c2e3281945bf05210f6d0facontacts/ 显然是会进入404页面的。 第二,对SEO不利。我们总不想搜索引擎收录的页面中使用的URL是带链接的吧! http://www.xyzabc.com/contacts/?SID=f3b20768c9dc0df4a0889e89cda61cb3 http://www.xyzabc.com/contacts/?SID=3760d086e64b0d6f3821362cb9efa4ef http://www.xyzabc.com/contacts/?SID=0bf7387b53f8d75bd9038c652b90d107 显然这样会使用不同的URL(对搜索引擎来说)收录同一个页面,这样对PageRank是及其不利的。因为搜索引擎讨厌duplicate content,因为这样对别人查询资料是不利的。这样岂不是冤枉,你明明没有重复的内容! 解决方案: 是通过apache的重写模块(mod_rewrite)将对会造成URL后面带SID的那个域名的所有请求重定向到不会造成带SID URL的那个域名上去。(可以直接将下列的命令添加到.htaccess文件中,当然如果为了好一点的性能,建议直接放到对应虚拟主机的定义中,要使用 directory容器包含) RewriteEngine on //打开重写引擎,magento的.htaccess中已经是打开的了 如果你后台使用的是没有带www的域名做magento的base url,那么我们需要将所有对带www的域名的请求重定向到这个没带www的短域名上,即magento的base url. 1. RewriteCond %{HTTP_HOST} !^yourdomain\.com$ [NC] 2. RewriteRule ^(.*)$ http://yourdomain.com/$1 [R=301,L] 相反,则应用: 1. RewriteCond %{HTTP_HOST} !^www\.yourdomain\.com$ [NC] 2. RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L] 简单分析一下上面使用的的mod_rewrite模块的相关指令: RewriteCond指令用来定义重定向(或重写URL)的条件, 基本语法格式是 RewriteCond TestString CondPattern,其中 %{HTTP_HOST}指代所有请求URL中的主机名,即www.xyzabc.com或xyzabc.com。 yourdomain\.com$ 正则表达式匹配yourdomain.com,前面以!开头表示所有主机名不是yourdomain.com的就改写成 yourdomain。同样的!www\.yourdomain\.com条件是指所有主机名不是www.yourdomain.com的就改写成 ...

Magento 中获取 Zend_Db_Select对象中的SQL语句

05.15.2010 · Posted in Magento开发

今天在分析Magento源代码的时候,在文件app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Config.php 中追踪到下面的函数 getAttributesUsedInListing() /** * Retrieve Product Attributes Used in Catalog Product listing * * @return array */ public function getAttributesUsedInListing() { $select = $this->_getReadAdapter()->select() ->from(array(’main_table’ => $this->getTable(’eav/attribute’))) ->join( array(’additional_table’ => $this->getTable(’catalog/eav_attribute’)), ‘main_table.attribute_id = additional_table.attribute_id’, array() ) ->joinLeft( array(’al’ => $this->getTable(’eav/attribute_label’)), ‘al.attribute_id = main_table.attribute_id AND al.store_id = ‘ . (int) $this->getStoreId(), array(’store_label’ => new Zend_Db_Expr(’IFNULL(al.value, main_table.frontend_label)’)) ) ->where(’main_table.entity_type_id=?’, $this->getEntityTypeId()) ->where(’additional_table.used_in_product_listing=?’, 1); – $sql = $select->assemble(); – echo $sql; return $this->_getReadAdapter()->fetchAll($select); } Magento 操作数据库是在 Zend DB(Zend Framework)的基础上简单的做了下封装了。Zend DB 有自己的一套规则,来组合生成最终的SQL查询语句,可以看到上面的代码中有 from() join() ...

magento伪静态 url网址优化

05.10.2010 · Posted in Magento seo, Magento优化

magento产品分类 优化前的网址:http://127.0.0.1/index.php/apparel/shoes.html 优化后的网址:http://127.0.0.1/apparel/shoes magento产品详细页 优化前的网址:http://127.0.0.1/index.php/cn-clogs-beach-garden-clog.html 优化后的网址:http://127.0.0.1/cn-clogs-beach-garden-clog 设置位置如下图: ———————————————————————————————- 注意红色部分留空,就是去掉了网址后面的 .html 蓝色部分设置成 NO,这个蓝色部分是设置“是否将产品的分类加到产品的url中”,选NO就是不加 ———————————————————————————————— 注意绿色部分要设置成 YES ————————————————————————————————- 最后一步是进入magento的 cache management 刷新 Catalog Rewrites的缓存,刷新下magneto缓存。或者建议你将magento根目录的var文件夹的cache文件夹删掉,这样最方便。 ...