首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento插件块插件

Magento插件块插件
EN

Stack Overflow用户
提问于 2015-09-04 13:07:18
回答 1查看 81关注 0票数 0

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

我的文件夹结构:

代码语言:javascript
复制
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

代码语言:javascript
复制
    <?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

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<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

代码语言:javascript
复制
<?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

代码语言:javascript
复制
 <?php 
echo $this->methodblock();
?>

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

请帮帮我

EN

回答 1

Stack Overflow用户

发布于 2015-09-04 14:18:35

我已经编辑了你的代码,并做了一些更改,现在它如预期的那样工作,请在下面找到更新的代码。

文件:

代码语言:javascript
复制
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

代码

配置:

代码语言:javascript
复制
<?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>

Adminhtml:

代码语言:javascript
复制
<?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>    

CreateAdminControllerController:

代码语言:javascript
复制
<?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();
    }
}

帮助者:

代码语言:javascript
复制
<?php
class JR_CreateAdminController_Helper_Data extends Mage_Core_Helper_Abstract
{

}

数据块:

代码语言:javascript
复制
<?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';
    }

}

布局:

代码语言:javascript
复制
<?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>

模板:

代码语言:javascript
复制
<?php
echo $this->getMyName();

这是你的场景的工作模块,你的问题发生是因为你在你的模块名称中使用了关键字'Controller‘,这可能会导致一段时间的混乱。

有一个愉快的编码:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32390483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档