正确使用Magento配置文件功能的要点
本文目录
如何在magento中建立自定义页面
用数据库表创建一个模块,互动是很简单的。大部分的开发人员使用 magento模块创建者创建此类的模块。但是,如果你想与多个数据库表的一个模块。以下是模块与两个数据库表的示例。
第 1步。以下查询与创建您的自定义模块的安装文件。
CREATE TABLE `test`(
`test_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR( 25) NOT NULL
) ENGINE= MYISAM
CREATE TABLE `test2`(
`test2_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR( 25) NOT NULL
) ENGINE= MYISAM
第 2步。创建库文件来注册您的模块在 app/etc/modules/Mypackage_Mymodule.xml下
<?xml version="1.0"?>
<config>
<modules>
<Mypackage_Mymodule>
<active>trueactive>
<codePool>localcodePool>
Mypackage_Mymodule>
modules>
config>
第 3步。模块配置文件应该看起来像以下
应用程序、代码、地方/Mypackage/Mymodule/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Mypackage_Mymodule>
<version>0.1.0version>
Mypackage_Mymodule>
modules>
<global>
<models>
<Mymodule>
<class>Mypackage_Mymodule_Modelclass>
<resourceModel>mymodule_mysql4resourceModel>
mymodule>
<!-- model vs db table relation-->
<mymodule_mysql4>
<class>Mypackage_Mymodule_Model_Mysql4class>
<!-- db table with name test-->
<entities>
<test>
<table>testtable>
test>
<test2>
<table>test2table>
test2>
entities>
mymodule_mysql4>
models>
<resources>
<mymodule_write>
<connection>
<use>core_writeuse>
connection>
mymodule_write>
<mymodule_read>
<connection>
<use>core_readuse>
connection>
mymodule_read>
resources>
global>
config>
如何修改,扩展并重写Magento代码
第一步,你需要创建属于你自己代码的命名空间,例如App,为了方便与大家分享代码,我将空间命名为App。
app/code/core/local/App/
假如你现在打算修改Mage/Catalog/Block/Breadcrumbs.php这个文件,你可以在你的命名空间,App里添加一个新的模块“Catalog”。接下来创建块(Block)目录,并复制Breadcrumbs.php到你的新目录中。这里还需要你创建一个config.xml配置文件。
app/code/core/local/App/Catalog/Block/Breadcrumbs.php
app/code/core/local/App/Catalog/Block/etc/config.xml
修改Breadcrumbs.php的类名为App_Catalog_Block_Breadcrumbs,并继承原类名Mage_Catalog_Block_Breadcrumbs。
现在,你需要激活你的新模块,这样magento才能够知道你的新模块。
创建文件app/etc/modules/App_All.xml,添加如下代码。
<?xml version="1.0"?>
<config>
<modules>
<App_Catalog>
<active>trueactive>
<codePool>localcodePool>
App_Catalog>
modules>
config>
下面我们需要一个特殊的标签来复写掉Breadcrumbs,下面我们通过模块的配置文件来实现。
重写Magento区块(Blocks)
编辑文件”app/code/local/App/Catalog/etc/config.xml”
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<App_Catalog>
<version>0.1.0version>
App_Catalog>
modules>
<global>
<blocks>
<catalog>
<rewrite>
<breadcrumbs>App_Catalog_Block_Breadcrumbsbreadcrumbs>
rewrite>
catalog>
blocks>
global>
config>
我们需要添加一个”blocks”标签,或者在已经存在的”blocks”标签中添加内容。然后在模块名后面添加rewrite标签,在这个例子中模块名是”catalog”。然后我们看“breadcrumbs”标签,这个标签帮助magento找到我们我们想修改的块。在我们的列子中,breadcrumbs是Magento核心代码中的类名: app/code/core/Mage/Catalog/Block/Breadcrumbs.php。如果你有更多的目录层级,可以用下滑线来分隔。例如:
<blocks>
<catalog>
<rewrite>
<category_view>App_Catalog_Block_Category_Viewcategory_view>
rewrite>
catalog>
blocks>
在这个例子中,我们重写了app/code/core/Mage/Catalog/Block/Category/View.php。
在breadcrumbs标签中的值是你的类名,这样Magento就可以获取你的类,因为类名与你的目录名一致。用过zend framework的人都知道,自动加载auto loader这个东西,它会跟你类名中的下滑线去你的目录中需要对应的类文件。记住一点,下滑线代表下一级别的文件夹,如果你的类名与你的文件目录名不一致,那么Magento根本不会理睬你。
举例来说:
App_Catalog_Block_Breadcrumbs→/app/code/local/App/Catalog/Block/Breadcrumbs.php
App_Catalog_Block_Category_View→/app/code/local/App/Catalog/Block/Category/View.php











