【问题标题】:Magento plugin block insertMagento 插件块插入
【发布时间】:2015-09-04 05:07:18
【问题描述】:

我在 magento 中创建了模块,我想在其中添加块,但它对我不起作用。

我的文件夹结构:

local/JR/CreateAdminController/etc/config.xml
local/JR/CreateAdminController/etc/adminhtml.xml
local/JR/CreateAdminController/controller/Adminhtml/CustomController.php
local/JR/CreateAdminController/block/Monblock.php

config.xml

    <?xml version="1.0"?>
<config>
    <modules>
        <JR_CreateAdminController>
            <version>1.0.0</version>
        </JR_CreateAdminController>
    </modules>
    <global>
        <helpers>
            <jr_createadmincontroller>
                <!-- Helper definition needed by Magento -->
                <class>Mage_Core_Helper</class>
            </jr_createadmincontroller>
        </helpers>
    </global>
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <foo_bar                                   before="Mage_Adminhtml">JR_CreateAdminController_Adminhtml
                        </foo_bar>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
</config>

adminhtml.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <menu>
        <mycustomtab module="jr_createadmincontroller" translate="title">
            <title>Test</title>
            <sort_order>100</sort_order>
            <action>adminhtml/custom/</action>

        </mycustomtab>
 </menu>
</config>

CustomController.php

<?php

class JR_CreateAdminController_Adminhtml_CustomController extends Mage_Adminhtml_Controller_Action
{
    public function indexAction()
    {

        $this->loadLayout()
            ->_setActiveMenu('mycustomtab')
            ->_title($this->__('test'));

        $block = $this->getLayout()
            ->createBlock('core/text', 'example-block')
            ->setText('<h1>Hello!</h1>');           


        $this->_addContent($block);
        $this->renderLayout();

    }

}

app\design\adminhtml\default\default\layout\test.xml

<layout version="0.1.0">
     <default>
          <reference name="content">
          </reference>
      </default>
      <routeurfrontend_index_index>
           <reference name="content">
                <block type="test/monblock"  name="afficher_monbloc"
                          template="test/afficher.phtml" />
           </reference>
      </routeurfrontend_index_index>
</layout>

local/JR/CreateAdminController/block/Monblock.php

<?php
class JR_CreateAdminController_Block_Monblock extends Mage_Core_Block_Template
{
     public function methodblock()
     {
         return ‘informations about my block !!’ ;
     }
}

app\design\adminhtml\default\default\template\test\afficher.phtml

 <?php 
echo $this->methodblock();
?>

如何在模块中包含我的块??

请帮帮我

【问题讨论】:

    标签: php magento block


    【解决方案1】:

    我已经编辑了您的代码并进行了一些更改,现在它按预期工作,请在下面找到更新的代码。

    文件:

    app\etc\modules\JR_CreateAdminController.xml
    app\code\local\JR\CreateAdminController\etc\config.xml
    app\code\local\JR\CreateAdminController\etc\adminhtml.xml
    app\code\local\JR\CreateAdminController\controllers\Adminhtml\CreateAdminControllerController.php
    app\code\local\JR\CreateAdminController\Helper\Data.php
    app\code\local\JR\CreateAdminController\Block\Adminhtml\createadmincontroller.php
    app\design\adminhtml\default\default\layout\createadmincontroller.xml
    app\design\adminhtml\default\default\template\createadmincontroller\createadmincontroller.phtml
    

    代码

    配置:

    <?xml version="1.0"?>
    <config>
        <modules>
            <JR_CreateAdminController>
                <version>0.0.5</version>
            </JR_CreateAdminController>
        </modules>
        <global>
            <models>
                <createadmincontroller>
                    <class>JR_CreateAdminController_Model</class>
                </createadmincontroller>
            </models>
            <helpers>
                <createadmincontroller>
                    <class>JR_CreateAdminController_Helper</class>
                </createadmincontroller>
            </helpers>
            <blocks>
                <createadmincontroller>
                    <class>JR_CreateAdminController_Block</class>
                </createadmincontroller>
            </blocks>
        </global>
        <admin>
            <routers>
                <adminhtml>
                    <use>admin</use>
                    <args>
                        <modules>
                            <createadmincontroller before="Mage_Adminhtml">JR_CreateAdminController_Adminhtml</createadmincontroller>
                        </modules>
                    </args>
                </adminhtml>
            </routers>
        </admin>
        <adminhtml>
            <layout>
                <updates>
                    <createadmincontroller>
                        <file>createadmincontroller.xml</file>
                    </createadmincontroller>
                </updates>
            </layout>
        </adminhtml>
    </config>
    

    管理员html:

    <?xml version="1.0" encoding="UTF-8"?>
    <config>
        <menu>
            <createadmincontroller translate="title" module="createadmincontroller">
                <title>CreateAdminController</title>
                <sort_order>95</sort_order>
                <children>
                    <createadmincontroller translate="title" module="createadmincontroller">
                        <title>CreateAdminController</title>
                        <sort_order>1</sort_order>
                        <action>adminhtml/createadmincontroller/index</action>
                    </createadmincontroller>
                </children>
            </createadmincontroller>
        </menu>
        <!-- The <acl> section is for access control. Here we define the pieces where access can be controlled within a role. -->
        <acl>
            <resources>
                <admin>
                    <children>
                        <createadmincontroller>
                            <title>Training Menu Item</title>
                            <children>
                                <createadmincontroller translate="title" module="createadmincontroller">
                                    <title>Training Menu Item</title>
                                </createadmincontroller>
                            </children>
                        </createadmincontroller>
                    </children>
                </admin>
            </resources>
        </acl>
    </config>    
    

    创建管理控制器控制器:

    <?php
    
    class JR_CreateAdminController_Adminhtml_CreateAdminControllerController
            extends Mage_Adminhtml_Controller_Action
    {
        public function indexAction()
        {
            $this->getLayout()->createBlock('createadmincontroller/adminhtml_createadmincontroller');
            Mage::register('myname', 'Ashish Ranade');
            $this->loadLayout();
            $this->renderLayout();
        }
    }
    

    助手:

    <?php
    class JR_CreateAdminController_Helper_Data extends Mage_Core_Helper_Abstract
    {
    
    }
    

    阻止:

    <?php
    
    class JR_CreateAdminController_Block_Adminhtml_CreateAdminController 
        extends Mage_Core_Block_Template
    {
    
        public function getMyName()
        {
            $name = Mage::registry('myname');
            return ( $name ) ? $name : 'Name not found';
        }
    
    }
    

    布局:

    <?xml version="1.0"?>
    <layout version="0.1.0">
        <adminhtml_createadmincontroller_index>
            <reference name="content">
                <block type="createadmincontroller/adminhtml_createadmincontroller" name="createadmincontroller" template="createadmincontroller/createadmincontroller.phtml"/>
            </reference>
        </adminhtml_createadmincontroller_index>
    </layout>
    

    模板:

    <?php
    echo $this->getMyName();
    

    这是您方案的工作模块,您的问题出现是因为您在模块名称“控制器”中使用了关键字,这可能会在一段时间内引起混淆。

    祝你编码愉快:)

    【讨论】:

    • config.xml 中缺少 标签
    • 我必须如何在 CustomController.php 中调用它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 2017-01-04
    相关资源
    最近更新 更多