了解Magento块和块类型

我只是想了解其意义

 <block type="page/html" name="root" output="toHtml" template="example/view.phtml">

我从Google获得了很多参考资料,并了解了很多关于它的内容,但我仍然无法理解type="page/html"如何为我的自定义模块构成类型。

请解释

type="A/B"

让我知道这个A和B从哪里来?


A是模块的别名。 在这种情况下, pageMage_Page_Block简称(如果您想查看,它在app/code/core/Mage/Page/etc/config.xml )。

B是相对于别名的类名,每个单词的首字母大写。 在这种情况下, html变成Html并被附加到已解析的别名,因此它是Mage_Page_Block_Html 。 这可能在文件app/code/core/Mage/Page/Block/Html.php因为类名直接转换为Magento中的位置。

如果您使用模型别名而不是块别名,那么page将是Mage_Page_Model 。 资源模型和帮助者也会发生同样的情况。 如果它有块,模型和助手,你自己的模块需要在它的配置中定义这些模块。


要了解更多关于magento块类型的信息,请参阅以下一些内置块类型,这些类型在布局中广泛使用。

  • core/template :该模块呈现由template属性定义的template 。 布局中定义的大部分块都是core/template的类型或子类型。
  • page/html :这是core/template一个子类型,并定义了根块。 所有其他块都是该块的子块。
  • page/html_head :定义包含JavaScript,CSS等元素的页面的HTML头部分。
  • page/html_header :定义page/html_header的标题部分,其中包含站点徽标,顶部链接等。
  • page/template_links :该块用于创建链接列表。 页脚和标题区域中可见的链接使用此块类型。
  • core/text_listcontentleftright等一些块的类型是core/text_list 。 渲染这些块时,所有子块都会自动呈现,而无需调用getChildHtml()方法。
  • page/html_wrapper :该块用于创建一个包装块,该块通过操作setHtmlTagName设置其HTML块中的子块。 如果没有元素被设置,默认标签是<div>
  • page/html_breadcrumbs :该块定义页面上的面包屑。
  • page/html_footer :定义包含页脚链接,版权信息等页面的页脚区域
  • core/messages :该模块呈现错误/成功/通知消息。
  • page/switch :此块可用于语言或商店切换器。
  • 这是只有常用块类型的列表。 在高级主题实现中使用了许多其他的块类型。


    <block type="page/html" name="root" output="toHtml" template="example/view.phtml">
    

    页面是在etc/config.xml文件中定义的FrontendName html是块类名称

    更多细节:

    在这一行type(type="page/html")定义与你的template(template="example/view.phtml">)相关的块类名template(template="example/view.phtml">) ,name是每个块的唯一值。

    首先看文件夹结构

    应用>本地>命名>模块名>等>的config.xml

    我们设置FrontendName = 'mymodule'

    app> local> namespace> modulename> Block > hello.php

    在hello.php中你创建了一个函数

       class namespace_modulename_Block_Data extends Mage_Core_Block_Template
       {
        public function mydata()
            {
                $data = "Block is called";
                return $data;
             }     
    }   
    

    现在来到你的布局xml页面:

    <block type="mymodule/data" name="xyz" template="example/view.phtml">这里mydata是前端名称

    现在来到你的模板

    template / example / view.phtml页面

    在这里你可以直接调用mydata()函数

    喜欢

    <div>
    <?php echo $this->mydata(); ?>
    </div>
    

    现在你可以在浏览器中获得你的输出“​​Block is called”

    链接地址: http://www.djcxy.com/p/10193.html

    上一篇: Understanding Magento Block and Block Type

    下一篇: PHP curly brace syntax for member variable