Datos de ayuda no encontrados en magento

8

Escribí una nueva extensión e intenté crear un archivo de configuración en Magento Admin. Cuando ejecuto el navegador después de borrar el caché, recibí el error que se muestra a continuación

Fatal error: Class 'Mage_GlobalSms_Helper_Data' not found in D:\wamp\www\project\app\Mage.php on line 547

En el archivo de registro de errores system.log encontré el error a continuación:

2015-05-27T13:40:43+00:00 ERR (3): Warning: include(Mage\GlobalSms\Helper\Data.php): failed to open stream: No such file or directory  in D:\wamp\www\project\lib\Varien\Autoload.php on line 93
2015-05-27T13:40:43+00:00 ERR (3): Warning: include(): Failed opening 'Mage\GlobalSms\Helper\Data.php' for inclusion (include_path='D:\wamp\www\project\app\code\local;D:\wamp\www\project\app\code\community;D:\wamp\www\project\app\code\core;D:\wamp\www\project\lib;.;C:\php\pear')  in D:\wamp\www\project\lib\Varien\Autoload.php on line 93

Mi archivo de aplicación \ etc \ modules \ como se muestra a continuación:

<?xml version="1.0"?>
<config>
    <modules>
        <Php_GlobalSms>
            <active>true</active>
            <codePool>local</codePool>
            <version>0.0.1</version>
        </Php_GlobalSms>
    </modules>
</config>

Mi config.xml como a continuación:

<config>
<modules>
    <Ucs_GlobalSms>
        <version>0.0.1</version>
    </Ucs_GlobalSms>
</modules>
<admin>
     <routers>
        <adminhtml>
            <args>
                <modules>
                    <ucs_globalsms before="Mage_Adminhtml">Ucs_GlobalSms_Adminhtml</ucs_globalsms>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>
<global>
    <helpers>
        <globalsms>
            <class>Ucs_GlobalSms_Helper</class>
        </globalsms>
    </helpers>
    <models>
        <custommodule>
            <class>Ucs_GlobalSms_Model</class>
        </custommodule>
    </models>
    <events>
        <customer_register_success>
            <observers>
                <Ucs_GlobalSms_customer_register_success>
                    <type>singleton</type>
                    <class>Ucs_GlobalSms_Model_Observer</class>
                    <method>customerRegisterSuccess</method>
                </Ucs_GlobalSms_customer_register_success>
            </observers>
        </customer_register_success>
    </events>
</global>

My Helper / Data.php de la siguiente manera:

<?php
class Php_GlobalSms_Helper_Data extends Mage_Core_Helper_Abstract {

}

Puedo encontrar muchas publicaciones en SO diciendo que falta Data.php, pero todo está allí, aún recibo un error

Mariposa
fuente
3
¿Limpiaste <webroot>/var/cache?
pspahn

Respuestas:

10

Su declaración de ayudantes debería verse así:

<global>
    <helpers>
        <globalsms>
            <class>Php_GlobalSms_Helper</class>
        </globalsms>
    </helpers>
</global>

y deberías llamar a tu ayudante en el código así:

Mage::helper('globalsms');
Marius
fuente
Cambié en consecuencia, pero todavía no funciona
Mariposa
¿Has visto mi error system.log?
Mariposa
1
Si. Compruebe si su módulo es recogido por Magento. Si es así, entonces debería funcionar como lo describí. Tal vez debería agregar a la pregunta su respuesta completa config.xmly la forma en que está utilizando el ayudante
Marius
actualizado completo config.xml, no estoy llamando al archivo de ayuda en ninguna parte. Si no declaro que recibo un error, es por eso que agregué la etiqueta de ayuda en xml
Butterfly
El error que se muestra indica que el nombre de la clase del grupo no se está recogiendo. Esto indica que config.xml no está cargado o que la configuración del asistente está en el lugar incorrecto. Debe estar en / config / global / helpers como se indica en la respuesta de Marius. (también tenga en cuenta que la versión probablemente no debería estar en el archivo XML del módulo).
Kevin Schroeder
5

El nombre de su módulo module.xmles diferente en config.xml.

No estoy seguro de lo que quieres usar, Php_GlobalSmso Ucs_GlobalSms?

Vernard Luz
fuente
4

Si habilita la compilación (Sistema> Herramientas> Compilación), debe deshabilitarla o volver a compilarla. Es mejor que desactive la compilación cuando realice el desarrollo.

Magebuzz
fuente
2

Necesita definir su ayudante en config.xml

<config>
<modules>
    <Php_GlobalSms>
        <version>0.0.1</version>
    </Php_GlobalSms>
</modules>
<admin>
     <routers>
        <adminhtml>
            <args>
                <modules>
                    <ucs_globalsms before="Mage_Adminhtml">Php_GlobalSms_Adminhtml</ucs_globalsms>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>
<global>
    <models>
        <custommodule>
            <class>Php_GlobalSms_Model</class>
        </custommodule>
    </models>
    <helpers>
        <globalsms>
            <class>Php_GlobalSms_Helper</class>
        </globalsms>
    </helpers>
    <events>
        <customer_register_success>
            <observers>
                <Php_GlobalSms_customer_register_success>
                    <type>singleton</type>
                    <class>Php_GlobalSms_Model_Observer</class>
                    <method>customerRegisterSuccess</method>
                </Php_GlobalSms_customer_register_success>
            </observers>
        </customer_register_success>
    </events>
</global>
brianwalleshauser
fuente
1

Dijiste que creaste una configuración para el área de administración; en el archivo system.xml, supongo que tiene algo como esto (debería tener):

<php_globalsms_options translate="label" module="php_globalsms">[...]

Aquí es donde Magento intenta cargar su ayudante: maneja la traducción, independientemente de si llama al ayudante en cualquiera de sus archivos o no. Las otras respuestas indican la forma correcta: actualice su archivo config.xml y dígale a Magento que GlobalSms-helper reside en su módulo.

simonthesorcerer
fuente
1

Yo tengo el mismo problema. Compruebo mi config.xml y compruebo mi diseño xml:

  <layout>
        <updates>
            <module_name>
                <file>module_name.xml</file>
            </module_name>
        </updates>
    </layout>

He cometido un error en module_name.xml. He eliminado ese código que no es necesario.

alok
fuente