2015-02-06 2 views
0

Я использую Magento 1.9.0.1, и я создал новое расширение, в котором я добавил новую вкладку в панели администратора, чтобы посмотреть на картинку.Magento - Как создать новую страницу администратора

enter image description here

Вот что я имею в моих файлах.

В: /app/code/community/VivasIndustries/SmsNotification/etc/config.xml:

<?xml version="1.0"?> 
<config> 
    <modules> 
    <VivasIndustries_SmsNotification> 
     <version>0.1.0</version> 
    </VivasIndustries_SmsNotification> 
    </modules> 
    <global> 
    <models> 
     <smsnotification> 
      <class>VivasIndustries_SmsNotification_Model</class> 
     </smsnotification> 
    </models> 
    <events> 
     <sales_order_save_after> 
      <observers> 
       <vivasindustries_smsnotification> 
        <class>smsnotification/observer</class> 
        <method>orderSaved</method> 
       </vivasindustries_smsnotification> 
      </observers> 
     </sales_order_save_after> 
    </events> 
    <helpers> 
     <smsnotification> 
      <class>VivasIndustries_SmsNotification_Helper</class> 
     </smsnotification> 
     <adminhtml> 
      <rewrite> 
       <data>VivasIndustries_SmsNotification_Helper_Adminhtml_Data</data> 
      </rewrite> 
     </adminhtml> 
    </helpers> 
    </global> 
    <admin> 
     <routers> 
      <adminhtml> 
       <args> 
        <modules> 
         <VivasIndustries_SmsNotification before="Mage_Adminhtml">VivasIndustries_SmsNotification_Adminhtml</VivasIndustries_SmsNotification> 
        </modules> 
       </args> 
      </adminhtml> 
     </routers> 
    </admin> 
</config> 

Вот что я имею в:/приложение/код/​​сообщества/VivasIndustries/SmsNotification/и т.д./adminhtml.xml:

<?xml version="1.0"?> 
<config> 
    <menu> 
     <vivassms translate="title" module="smsnotification"> 
      <title>SMS Center</title> 
      <sort_order>110</sort_order> 
      <children> 
       <sendsms translate="title" module="smsnotification"> 
        <title>Send SMS</title> 
        <action>adminhtml/magesms_sendsms</action> 
        <sort_order>1</sort_order> 
       </sendsms> 
       <settings> 
        <title>Settings</title> 
        <action>adminhtml/system_config/edit/section/vivas/</action> 
        <sort_order>10</sort_order> 
       </settings> 
       <about translate="title" module="smsnotification"> 
        <title>About</title> 
        <action>adminhtml/smsnotification_about</action> 
        <sort_order>11</sort_order> 
       </about> 
      </children> 
     </vivassms> 
    </menu> 
    <acl> 
     <resources> 
      <admin> 
       <children> 
        <vivassms> 
         <title>SMS</title> 
         <children> 
          <sendsms translate="title" module="smsnotification"> 
           <title>Send SMS</title> 
          </sendsms> 
          <settings> 
           <title>Settings</title> 
           <children> 
            <smsprofile translate="title" module="smsnotification"> 
             <title>Edit user account</title> 
            </smsprofile> 
           </children> 
          </settings> 
          <about translate="title" module="smsnotification"> 
           <title>About</title> 
          </about> 
         </children> 
        </vivassms> 
        <system> 
         <children> 
          <config> 
           <children> 
            <vivassms translate="title" module="smsnotification"> 
             <title>Vivas SMS</title> 
            </vivassms> 
           </children> 
          </config> 
         </children> 
        </system> 
       </children> 
      </admin> 
     </resources> 
    </acl> 
</config> 

Я добавил эти три детские закладки для созданной новой вкладки SMS Center, но когда я нажимаю на вкладке About я получил ошибку 404 ON MY FRONTEND. Это неловко. Почему я перенаправлен на интерфейс?

Не могли бы вы помочь мне создать простую новую пользовательскую страницу на панели администратора, где я хочу добавить простой текст?

Заранее благодарен!

ответ

2

Похоже, Magento признает, что ваш модуль говорит «Проверяйте меня на наличие admin» контроллеров, но Magento не находит. Лучший способ выяснить, что думает Magento ваш файл контроллера должен быть назван (а также, какие папки она должна быть расположена в), это добавить некоторую временную отладку _validateControllerClassName

protected function _validateControllerClassName($realModule, $controller) 
{ 
    $controllerFileName = $this->getControllerFileName($realModule, $controller); 
    if (!$this->validateControllerFileName($controllerFileName)) { 
     var_dump($controllerFileName); //add this line  
     return false; 
    } 

Это дамп каждый файл Magento проверки для контроллера. Найдите в нем строку с именем своего модуля и сравните пути между файлами, где находится ваш файл, и где Magento считает, что он должен быть расположен.

+0

В каком файле я должен помещать эту функцию? Благодаря! –

+1

Вы не должны останавливаться нигде, вы должны отредактировать функцию _validateControllerClassName, которая существует в вашей основной системе Magento. Быстрый поиск текста поможет вам найти его. –

+0

Я нашел его, и когда я его разместил и снова открыл страницу «О себе», я получил следующее: http://pastebin.com/zzyv41Ed Пожалуйста, взгляните и дайте мне совет! Заранее спасибо! –