Magento:新模块的xml配置中设置title,keywords,description内容

当使用插件,或许会新建一个页,这时如何在方便的页中设置指定的title,keywords,description呢,一种当然是在代码中直接进行设置,但有一个更方便的方法,就是在xml中进行设置
代码如下:

<reference name="head">
    <action method="setTitle"><title>新模块标题</title></action>
    <action method="setKeywords"><title>your, module, keywords</title></action>
    <action method="setDescription"><title>Your Module Description</title></action>
</reference>

如何在magento的xml配置中输出块内容时自动包含定义的css结构

如何在magento的xml配置中输出块内容时自动包含定义的css结构
1、要使用page/html_wrapper
2、使用setHtmlTagName 设置使用的标签,如div  p
3、使用setElementClass 设置类
4、定义要包含的显示的块
5、语法示范如下:
            <block type="page/html_wrapper" name="product.info.addtocart.paypaluk.wrapper" translate="label">
                <label>PayPal Express Checkout (Payflow Edition) Shortcut Wrapper</label>
                <action method="setHtmlTagName"><tag>p</tag></action>
                <action method="setElementClass"><class>paypal-logo</class></action>
                <block type="paypaluk/express_shortcut" name="product.info.addtocart.paypaluk" template="paypal/express/shortcut.phtml">
                    <action method="setIsInCatalogProduct"><value>1</value></action>
                </block>
            </block>

magento的xml配置文件的简单解析-frontend

前面介绍了magento的xml配件文件的几个节

magento的xml配置文件的简单解析-global
 
magento的xml配置文件的简单解析-default-stores-websites三个后台参数配置 
magento的xml配置文件的简单解析-module

这一节重点介绍magento的frotend的前置控制
magento的xml中的fronted
1、routers:前置控制中路由,获取各个模板对应的类及前置面板名
2、translate:各个块对应的语言文件,用于多语言支持
3、layout:对应的是各个块的内容结构块的定义,xml结尾;
4、events:事件集合,定义了事件的观察者及执行的方法
5、secure_utl:magento重点功能页的路径
6、其它不知为何放在这个节点中

magento的xml配置文件的简单解析-default-stores-websites三个后台参数配置

上一节讲到

magento的xml配置文件的简单解析-global

这一节通过三个default,stores,websites这三个xml节,总体讲述一下,其实这三个所对应的是后台admin\system\configure里对应的参数配置,他们分别代码默认参数,网站参数,商店中各store view的参数.如图所示.
magento的xml对应的default节点

magento的xml对应的website和store节点
magento后台对应的system-configure
从上面第一张和第三张图,可以看出,基本上是对应的关系。
stores,websites 这两个节点下的子节点,和default的节点内容结构基本一样,只不过分别表述的是他们定义的范围中的参数。
 

magento的xml配置文件的简单解析-global

Magento的配置系统就像是Magento的心脏,支撑着Magento的运行。这套配置系统掌管着几乎所有“module/model/class/template/etc”。它把整个Magento系统抽象出来,用一个配置文件来描述。这里的“配置文件”并不是一个物理上存在的文件,而是Magento根据当前的系统状态动态生成的一段XML。大多数的PHP开发者并不习惯于这样抽象层,因为它增加的编程的复杂性。但是这样的抽象提供了无与伦比的灵活性,允许你覆盖几乎任何系统的默认行为。
首先我们来看一下magento的xml基本结构:
magento的xml结构
现在我们来详细描述每一个区的大致意思和功能。
一、global:
magento的xml中的global
    1、install:magento系统安装日期
    2、resources: 对应的是magento访问数据库对应的资源类,他包含访问数据库的安装、读、写、数据联接基类,及各个块的安装升级;
    3、
 resource: 对应的是mysql访问的系统基本类;
    4、models:对应各块的模型中的类,涉及到具体访问对应的数据库表
    5、crypt:magento对应的安装key
    6、blocks:对应的各个模块中block
    7、helpers:对应各个模块中的help的类;
    8、template:邮件对应的模板
    9、cache:对应的后台admin\cache storage mangement菜单中的内容
    10、session, request, log, eav_attributes
    11、page:对应以phtml文件名的,结构块布局文件,空、单列、双列左,双列右、三列;
    12、events:对应事件的观察者及执行的方法
    13、currency货币同步更新服务名
    14、cms,index,等其它未了解

magento布局文件xml的对应关系

magento模板文件的XML与phtml文件以及文件结构

xml文件全部在:app\design\frontend\base\default\layout

phtml文件以及文件夹全部在在:app\design\frontend\base\default\template

  • catalog.xml 这个是控制产品列表页和产品详细页的对应于template\catalog 这个文件夹的所有phtml内容。
  • catalogsearch.xml 这个是控制搜索的,有模板头部的搜索框,高级搜索,已经搜索结果页面。对应于template\catalogsearch这个文件夹里的所有phtml文件。
  • checkout.xml 控制结账相关页面,如购物车页面,购物车在边栏的siderbar,结账流程页面。对应于template\checkout文件中的内容。
  • cms.xml 这个既然名字是CMS,所以如果后台的某个cms的static page页面或者自己想自己写个phtml的block想以siderbar的形式出现在模板边栏中,为为甚么不在这个文件中声明下呢。 对应的文件夹template\cms。
  • contacts.xml 控制联系我们页面,想改这个页面的结构,从2栏换到1栏,就要修改这个文件了,对应于template\contacts文件夹。
  • customer.xml 控制登陆,注册,忘记密码,用户面板页面。用户面板的左侧的链接就是这里添加上的。对应于template\customer文件夹。
  • directory.xml控制货币相关内容,默认在左栏显示的货币下拉菜单就是在这个文件控制的,对应于template\directory文件夹。
  • downloadable.xml是相关于可下载产品的相关内容,如用户面板页面左栏的链接,可以在这个文件中删掉。对应于template\downloadable。
  • newsletter.xml控制订阅邮件的xml,左栏的订阅就是在这个文件控制。对应于template\newsletter文件。
  • page.xml这个是很重要的xml,首先他定义了magento默认的页面结构,控制所有页面默认加载的js以及css文件,定义不同页面结构加载不同的模板文件,等等。对应于template\page,此文件夹页非常重要,包含magento头部,中间部分,底部的模板文件。包含magento所有页面的基础框架文件。
  • poll.xml控制投票在边栏的显示,对应文件template\poll
  • reports.xml控制最近查看和比较产品在边栏的显示,对应文件template\reports
  • sales.xml 前台订单显示的相关内容,大多是相关于在用户面板页的“我的订单”里的内容。对应文件template\sales
  • sendfriend.xml控制产品发送好友共享功能,发送好友页面的结构。对应文件template\sendfriend
  • shipping.xml订单运输的相关内容,对应文件template\shipping
  • tag.xml控制产品标签的相关内容,用户面板的标签,产品详细页的标签,边栏的标签。对应文件template\tag
  • wishlist.xml控制我的收藏相关功能,用户面板的收藏,发送收藏到好友,magento头部的我的收藏的链接也是在这个文件控制的。对应模板文件template\wishlist

转载出处:hellokeykey.com

这里补充一下,为什么要分这么多文件,每一个文件中基本上都有针对default的操作增加一个块和引用,
一方面是根据每一个大的逻辑功能,将相应的块进行分类,定义出针对自己指定操作所需要增减改的块
二是虽然每一个文件都有针对default进行增加内容,这也可反应出每一个大的功能逻辑所需要的一些默认的功能块
这些xml所定义的是不是都加载到系统进行实例化呢,其实不是,这些xml是都加载,但根据不同的操作,将与些操作相关的块抽取出来,形成指定操作所需的对象,节省资源!