Подтвердить что ты не робот

Показать шаблон в модуле администратора Magento

Я новичок в Magento. Я пытаюсь разработать собственный модуль для панели Magento Admin. Мои коды выглядят следующим образом

Местоположение: приложение /etc/modules

Digitab_Brandlogo.xml

<?xml version="1.0" encoding="utf-8"?>
<config>
    <modules>
        <Digitab_Brandlogo>
            <active>true</active>
            <codePool>local</codePool>
        </Digitab_Brandlogo>
    </modules>
</config>

Местоположение: app/code/local/Digitab/Brandlogo/Block/Adminhtml

logo.php

<?php
    class Digitab_Brandlogo_Block_Adminhtml_slider extends Mage_Adminhtml_Block_Widget_Grid_Container
    {
        public function __construct()
        {
                $this->_controller = 'adminhtml_brandlogo';
                $this->_blockGroup = 'brandlogo';
                $this->_headerText = Mage::helper('brandlogo')->__('Brand Logo Manager');
            $this->_addButtonLabel = Mage::helper('brandlogo')->__('Add Brand');
                parent::__construct();
        }
    }

Местоположение: app/code/local/Digitab/Brandlogo/контроллеры/Adminhtml

IndexController.php

<?php

class Digitab_Brandlogo_Adminhtml_BrandlogoController extends Mage_Adminhtml_Controller_Action 
{
    public function indexAction()
    {                
           $this->loadLayout();
           $this->renderLayout();
    }
}

местоположение: app/code/local/Digitab/Brandlogo/etc

config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <digitab_brandlogo>
            <version>1.0.0</version>
        </digitab_brandlogo>
    </modules>
    <global>
        <models />
        <blocks />
        <resources />
        <extraconfig />
        <helpers>
            <digitab_brandlogo>
                <class>Digitab_Brandlogo_Helper</class>
            </digitab_brandlogo>
        </helpers>
    </global>
    <admin>
        <routers>
            <digitab_brandlogo>
                <use>admin</use>
                <args>
                    <module>Digitab_brandlogo</module>
                    <frontName>brandlogo</frontName>
                </args>
            </digitab_brandlogo>
        </routers>
    </admin>
    <adminhtml>
        <layout>
        <updates>
            <brandlogo>
                <file>brandlogo.xml</file>
            </brandlogo>
        </updates>
    </layout>
    </adminhtml>
</config>

местоположение: app/code/local/Digitab/Brandlogo/etc

adminhtml.xml

<?xml version="1.0"?>
<config>
    <menu>
        <digitab translate="title" module="digitab_brandlogo">
            <title>Digitab</title>
            <sort_order>110</sort_order>
            <children>
                <brandlogo>
                    <title>Brand Logo</title>
                    <sort_order>1</sort_order>
                    <action>brandlogo/adminhtml_brandlogo</action>
                </brandlogo>
            </children>
        </digitab>
    </menu>
</config>

местоположение: app/code/local/Digitab/Brandlogo/Helper

Data.php

<?php
class Digitab_Brandlogo_Helper_Data extends Mage_Core_Helper_Abstract
{
}

местоположение: app/design/adminhtml/default/default/layout

brandlogo.xml

<?xml version="1.0"?> 
<layout version="0.1.0">
    <brandlogo_adminhtml_brandlogo_index>
        <reference name="content">
            <block type="brandlogo/adminhtml_brandlogo" name="brandlogo" template="test.phtml"/>
        </reference>
    </brandlogo_adminhtml_brandlogo_index> 
</layout>

местоположение: приложение/дизайн/adminhtml/по умолчанию/по умолчанию/шаблон

test.phtml

ABCD

Я получаю вывод, как показано ниже

введите описание изображения здесь

Как я могу отобразить шаблон? Может ли кто-нибудь помочь мне в этом отношении? Благодаря

:

Обновление

Я изменил свои файлы, как показано ниже, но он не работает.

Местоположение: приложение /etc/modules

Digitab_Brandlogo.xml

<?xml version="1.0" encoding="utf-8"?>
<config>
    <modules>
        <Digitab_Brandlogo>
            <active>true</active>
            <codePool>local</codePool>
        </Digitab_Brandlogo>
    </modules>
</config>

Местоположение: app/code/local/Digitab/Brandlogo/Block/Adminhtml

Brandlogo.php

<?php
    class Digitab_Brandlogo_Block_Adminhtml_Brandlogo extends Mage_Adminhtml_Block_Widget_Grid_Container
    {
        public function __construct()
        {
                $this->_controller = 'adminhtml_brandlogo';
                $this->_blockGroup = 'brandlogo';
                $this->_headerText = Mage::helper('brandlogo')->__('Brand Logo Manager');
            $this->_addButtonLabel = Mage::helper('brandlogo')->__('Add Brand');
                parent::__construct();
        }
    }

Местоположение: app/code/local/Digitab/Brandlogo/контроллеры/Adminhtml

BrandlogoController

<?php

class Digitab_Brandlogo_Adminhtml_BrandlogoController extends Mage_Adminhtml_Controller_Action 
{
    public function indexAction()
    {                
           $this->loadLayout();
           $this->renderLayout();
    }
}

местоположение: app/code/local/Digitab/Brandlogo/etc

config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <digitab_brandlogo>
            <version>1.0.0</version>
        </digitab_brandlogo>
    </modules>
    <global>
        <models />
        <blocks>
            <brandlogo>
                <class>Digitab_Brandlogo_Block</class>
            </brandlogo>
        </blocks>
        <resources />
        <extraconfig />
        <helpers>
            <digitab_brandlogo>
                <class>Digitab_Brandlogo_Helper</class>
            </digitab_brandlogo>
        </helpers>
    </global>
    <admin>
        <routers>
            <digitab_brandlogo>
                <use>admin</use>
                <args>
                    <module>Digitab_brandlogo</module>
                    <frontName>brandlogo</frontName>
                </args>
            </digitab_brandlogo>
        </routers>
    </admin>
    <adminhtml>
    <layout>
        <updates>
            <brandlogo>
                <file>brandlogo.xml</file>
            </brandlogo>
        </updates>
    </layout>
    </adminhtml>
</config>

местоположение: app/code/local/Digitab/Brandlogo/etc

adminhtml.xml

<?xml version="1.0"?>
<config>
    <menu>
        <digitab translate="title" module="digitab_brandlogo">
            <title>Digitab</title>
            <sort_order>110</sort_order>
            <children>
                <brandlogo>
                    <title>Brand Logo</title>
                    <sort_order>1</sort_order>
                    <action>brandlogo/adminhtml_brandlogo</action>
                </brandlogo>
            </children>
        </digitab>
    </menu>
</config>

местоположение: app/code/local/Digitab/Brandlogo/Helper

Data.php

<?php
class Digitab_Brandlogo_Helper_Data extends Mage_Core_Helper_Abstract
{
}

местоположение: app/design/adminhtml/default/default/layout

brandlogo.xml

<?xml version="1.0"?> 
<layout version="0.1.0">
    <brandlogo_adminhtml_brandlogo_index>
        <reference name="content">
            <block type="brandlogo/adminhtml_brandlogo" name="brandlogo" template="test.phtml"/>
        </reference>
    </brandlogo_adminhtml_brandlogo_index> 
</layout>

местоположение: приложение/дизайн/adminhtml/по умолчанию/по умолчанию/шаблон

test.phtml

ABCD

Но он не работает. Теперь я вижу пустую белую страницу в панели администратора. Благодаря

4b9b3361

Ответ 1

Вот полный ответ:

Местоположение: приложение /etc/modules

Digitab_Brandlogo.xml

Выглядит хорошо.

Местоположение: app/code/local/Digitab/Brandlogo/Block/Adminhtml

Эта папка должна содержать следующие файлы и папки:

Приложение/код/​​локальные/Digitab/Brandlogo/блок/Adminhtml/Brandlogo/Grid.php

<?php 
class Digitab_Brandlogo_Block_Adminhtml_Brandlogo_Grid extends Mage_Adminhtml_Block_Widget_Grid
{
    public function __construct()
    {
        parent::__construct();
        $this->setId('digitab_brandlogo_grid');
        $this->setDefaultSort('increment_id');
        $this->setDefaultDir('DESC');
        $this->setSaveParametersInSession(true);
        $this->setUseAjax(true);
    }

    public function getGridUrl()
    {
        return $this->getUrl('*/*/grid', array('_current'=>true));
    }
}

Приложение/код/​​локальные/Digitab/Brandlogo/блок/Adminhtml/Brandlogo.php

<?php
class Digitab_Brandlogo_Block_Adminhtml_Brandlogo extends Mage_Adminhtml_Block_Widget_Grid_Container
{
    public function __construct()
    {
        $this->_blockGroup = 'digitab_brandlogo';
        $this->_controller = 'adminhtml_brandlogo';
        $this->_headerText = Mage::helper('digitab_brandlogo')->__('Brand Logo Manager');

        parent::__construct();
        $this->_addButtonLabel = Mage::helper('digitab_brandlogo')->__('Add Brand');
    }
}

Местоположение: app/code/local/Digitab/Brandlogo/Helper/Data.php

<?php
class Digitab_Brandlogo_Helper_Data extends Mage_Core_Helper_Abstract {}

Местоположение: app/code/local/Digitab/Brandlogo/контроллеры/Adminhtml/BrandlogoController.php

<?php
class Digitab_Brandlogo_Adminhtml_BrandlogoController extends Mage_Adminhtml_Controller_Action 
{
    public function indexAction()
    {                
        $this->loadLayout();
        $this->renderLayout();
    }
}

Основная проблема заключается в том, как вы написали файлы XML.

Местоположение: app/code/local/Digitab/Brandlogo/etc

1. app/code/local/Digitab/Brandlogo/etc/config.xml Ниже приведен пример кода config.xml.

<?xml version="1.0"?>
<config>
    <modules>
        <Digitab_Brandlogo>
            <version>1.0.0</version>
        </Digitab_Brandlogo>
    </modules>
    <global>
        <models />
        <blocks>
            <digitab_brandlogo>
                <class>Digitab_Brandlogo_Block</class>
            </digitab_brandlogo>
        </blocks>
        <resources />
        <extraconfig />
        <helpers>
            <digitab_brandlogo>
                <class>Digitab_Brandlogo_Helper</class>
            </digitab_brandlogo>
        </helpers>
    </global>
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>                        
                        <digitab_brandlogo before="Mage_Adminhtml">Digitab_Brandlogo_Adminhtml</digitab_brandlogo>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
    <adminhtml>
        <layout>
            <updates>
               <brandlogo>
                    <file>brandlogo.xml</file>
               </brandlogo>
            </updates>
        </layout>
    </adminhtml>
</config>

2. app/code/local/Digitab/Brandlogo/etc/adminhtml.xml Ниже приведен код кода config.xml.

<?xml version="1.0"?>
<config>
    <menu>
        <digitab translate="title" module="digitab_brandlogo">
            <title>Digitab</title>
            <sort_order>110</sort_order>
            <children>
                <brandlogo>
                    <title>Brand Logo</title>
                    <sort_order>1</sort_order>
                    <action>adminhtml/brandlogo/index</action>
                </brandlogo>
            </children>
        </digitab>
    </menu>
</config>

Местоположение: app/design/frontend/adminhtml/default/default/layout/brandlogo.xml

<?xml version="1.0"?> 
<layout version="0.1.0">
    <adminhtml_brandlogo_index>
        <reference name="content">
            <block type="digitab_brandlogo/adminhtml_brandlogo" name="brandlogo" template="test.phtml"/>
        </reference>
    </adminhtml_brandlogo_index> 
</layout>

Местоположение: app/design/frontend/adminhtml/default/default/template/test.phtml

Выглядит хорошо.

Я проверил этот код на своей локальной машине. Найдите скриншот здесь:

введите описание изображения здесь

Сообщите мне, если это сработает для вас.

Примечание:: ПОСЛЕДУЮЩАЯ ТОЧНУЮ КОНВЕНЦИЮ НАИМЕНОВАНИЯ И ИМЕНА ПАПКИ И КОД, КАК УКАЗАНО ЗДЕСЬ в моем ответе

Счастливое кодирование...

Ответ 2

Достаточно немного не так, я пройду каждый файл шаг за шагом.

Digitab_Brandlogo.xml

Здесь все хорошо.

logo.php

Единственное, что неправильно здесь, это то, что ваше имя файла отличается от вашего имени класса (логотип!= слайдер). Просто измените имя файла на имя класса или наоборот, и вы должны быть хороши в этом файле. Кроме того, сделайте первую букву своего класса и имя файла заглавными буквами.

IndexController.php

То же самое, что и логотип .php, вы назвали этот файл иначе, чем этот класс, но это вы хотели бы изменить имя файла на имя класса, поскольку вы использовали его во многих других файлах, Имя файла должно быть BrandlogoController.php

config.xml

Поскольку у вас есть определенный блок, вы хотите определить свои блоки под глобальными.

Заменить

<blocks />

с этим:

<blocks>
    <digitab_brandlogo>
        <class>Digitab_Brandlogo_Block</class>
    </digitab_brandlogo>
</blocks>

Затем под вашим маршрутизатором вы хотите убедиться, что Brandlogo капитализируется так:

<digitab_brandlogo>
    <use>admin</use>
    <args>
        <module>Digitab_Brandlogo</module>
        <frontName>brandlogo</frontName>
    </args>
</digitab_brandlogo>

adminhtml.xml

Ваше действие - это то, что вы хотите поразить в своем контроллере. Настройка для этого (на контроллерах администратора) - adminhtml/module_controller_action (если вы оставите действие выключенным по умолчанию для индекса), так что в этом случае вы хотите, чтобы это было:

<action>adminhtml/brandlogo_brandlogo</action>

Data.php

Здесь все хорошо.

brandlogo.xml

Ваш тег должен иметь формат adminhtml_module_controller_action, поэтому измените его на следующее:

<adminhtml_brandlogo_brandlogo_index>

Затем на этой строке:

<block type="brandlogo/adminhtml_brandlogo" name="brandlogo" template="test.phtml"/>

Вы пытаетесь использовать мнимый тип блока. Помните ранее, когда мы назвали наш блок логотипом или слайдером? Это вступает в игру здесь, так как это должен быть путь к файлу, который вы используете для "type". Поэтому он должен выглядеть следующим образом:

Если вы выбрали слайдер

<block type="brandlogo/adminhtml_slider" name="brandlogo" template="test.phtml"/>

Если вы выбрали логотип

<block type="brandlogo/adminhtml_logo" name="brandlogo" template="test.phtml"/>

test.phtml

Здесь все хорошо.

Надеюсь, это поможет!