2015-09-04 8 views
0

Я создал модуль в magento, и я хочу добавить в него блок, но он не работает для меня.Вставка блока плагина 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(); 

    } 

} 

приложение \ дизайн \ adminhtml \ по умолчанию \ умолчанию \ расположение \ 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> 

местный/JR/CreateAdminController/блок/Monblock.php

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

приложение \ дизайн \ adminhtml \ умолчанию \ default \ template \ test \ afficher.phtml

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

Как я могу включить свой блок в модуле?

пожалуйста, помогите мне

ответ

0

Я редактировал свой код и сделал некоторые изменения в настоящее время его работу, как ожидается, найти обновленный код ниже.

Файлы:

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 

Код

Config:

<?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:

<?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:

<?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(); 

Это рабочий модуль вашего сценария, ваша проблема возникает из-за того, что вы использовали ключевое слово в своем имени модуля «Контроллер», это может вызвать некоторое замешательство.

У счастливого кодирования :)

+0

тег отсутствует конфигурации.xml –

+0

Как я могу назвать это в CustomController.php? – devx

+0

пожалуйста, кто-нибудь? – devx

Смежные вопросы