Magento主题中左列的块类型是什么?

我正在开发一个自定义的Magento(1.3)主题,并且想要添加一个左列。

我已经创建了html中的template / page / html / left.phtml。

在2columns-left.phtml中,我添加了以下内容:

<?php echo $this->getChildHtml('left'); ?>

在page.xml中,我添加了以下内容:

<block type="page/html" name="left" as="left" template="page/html/left.phtml" />

我不完全理解的是块类型应该是什么 - 它似乎工作,如果我做页/ html,核心/模板或页面/ html_header - 这是什么和这个案件的正确价值是什么,我的只是想有效地包含一个phtml文件 - page / html / left.phtml等。

谢谢,

伊恩


这是正在发生的事情的简化版本,但希望能够让您顺利进行。

特殊对象

有三种类型的对象,Magento认为“特殊”。 这些是模型,块和助手。 而不是为这些对象使用类名称Magento使用称为类别别名的类似URI的字符串。 所以这

page/html

对应于Block类

Mage_Page_Block_Html

这里的类是指PHP类,而不是CSS类。

Magento页面渲染

布局对象负责为Magento页面创建所有HTML。

布局对象是嵌套块对象的集合。

大多数块对象都是模板块,即块类继承自基础Magento模Mage_Core_Block_Template 。 模板块是负责呈现phtml模板文件的对象。

因此,当您在XML布局文件中指定“类型”时,您告诉Magento。

我想使用模板baz.phtml添加一个带有foo / bar类的块对象

在代码中,就是这样

<!-- "name" and "as" are used to identify the block in the layout, so that 
PHP code can get a reference to the object. -->
<block type="foo/bar" name="myname" as="myname" template="path/to/baz.phtml" />

如果你只想渲染一个模板文件,你可以使用

type="core/template"

但是,通过使用不同的值,如

type="page/html"

你的phtml模板文件可以访问所有的方法

Mage_Page_Block_Html

这意味着你可以做类似的事情

File: template.phtml

<a href="<?php echo $this->getBaseUrl();?>"></a>

core/template类没有getBaseUrl方法,但是page/html类没有。

如果您正在开发自定义模块开发(而不是主题),我通常在自己的模块中创建一个Block对象,以扩展其中一个基本Magento块。 这让我可以将我自己的方法添加到块中,只要我认为合适。 如果你只是主题, page/html是一个不错的默认值。


这种情况最好的类型是core/text_list因为它连接了每个孩子的HTML。

为了测试你可以在你的布局XML中使用这个例子:

<block type="core/text_list" name="left" as="left">
  <block type="core/text" name="test">
    <action method="setText"><text>Hello World</text></action>
  </block>
</block>

在magento主题中的左列的块类型

<block type="core/text_list" name="left" as="left" translate="label">
    <label>Left Column</label>
</block>
链接地址: http://www.djcxy.com/p/59475.html

上一篇: What Block Type for Left Column in Magento Theme?

下一篇: Is it possible to use Razor 2.0 view engine under mono?