Notificación, error repentino: advertencia: include (): el nombre de archivo no puede estar vacío

magento.stackexchange https://magento.stackexchange.com/questions/6622

  •  16-10-2019
  •  | 
  •  

Pregunta

Desde esta noche estamos viendo este error.

Primero vemos esto en el registro de errores

2013-08-11T18:46:59+00:00 ERR (3): Warning: include(): Filename cannot be empty  in app/code/core/Mage/Core/Block/Template.php on line 241
2013-08-11T18:46:59+00:00 ERR (3): Warning: include(): Filename cannot be empty  in app/code/core/Mage/Core/Block/Template.php on line 241
2013-08-11T18:46:59+00:00 ERR (3): Warning: include(): Failed opening '' for inclusion (include_path='lib/minify:app/code/local:app/code/community:app/code/core:lib:.')  in app/code/core/Mage/Core/Block/Template.php on line 241

Y con impresión de excepción completa vemos lo siguiente.

Intenté deshabilitar las notificaciones, pero no sé por dónde empezar (y cómo ocurre esto de repente)

Warning: include(): Filename cannot be empty  in app/code/core/Mage/Core/Block/Template.php on line 241

#0 app/code/core/Mage/Core/Block/Template.php(241): mageCoreErrorHandler(2, 'include(): Filename cannot be empty', 'app/code/core/Mage/Core/Block/Template.php', 241, Array)
#1 app/code/core/Mage/Core/Block/Template.php(241): Mage_Core_Block_Template->fetchView()
#2 app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('adminhtml/base/default/template/system/cache/notifications.phtml')
#3 app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#4 app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#5 app/code/core/Mage/Adminhtml/Block/Cache/Notifications.php(62): Mage_Adminhtml_Block_Template->_toHtml()
#6 app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Adminhtml_Block_Cache_Notifications->_toHtml()
#7 app/code/core/Mage/Core/Block/Text/List.php(43): Mage_Core_Block_Abstract->toHtml()
#8 app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Core_Block_Text_List->_toHtml()
#9 app/code/core/Mage/Core/Block/Abstract.php(582): Mage_Core_Block_Abstract->toHtml()
#10 app/code/core/Mage/Core/Block/Abstract.php(526): Mage_Core_Block_Abstract->_getChildHtml('notifications', true)
#11 app/design/adminhtml/default/default/template/page.phtml(55): Mage_Core_Block_Abstract->getChildHtml('notifications')
#12 app/code/core/Mage/Core/Block/Template.php(241): include('app/design/adminhtml/default/default/template/page.phtml')
#13 app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('adminhtml/default/default/template/page.phtml')
#14 app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
#15 app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#16 app/code/core/Mage/Core/Block/Abstract.php(863): Mage_Adminhtml_Block_Template->_toHtml()
#17 app/code/core/Mage/Core/Model/Layout.php(555): Mage_Core_Block_Abstract->toHtml()
#18 app/code/core/Mage/Core/Controller/Varien/Action.php(390): Mage_Core_Model_Layout->getOutput()
#19 app/code/core/Mage/Adminhtml/controllers/DashboardController.php(43): Mage_Core_Controller_Varien_Action->renderLayout()
#20 app/code/core/Mage/Core/Controller/Varien/Action.php(419): Mage_Adminhtml_DashboardController->indexAction()
#21 app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('index')
#22 app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Mage_Core_Controller_Request_Http)
#23 app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#24 app/Mage.php(683): Mage_Core_Model_App->run(Array)
#25 index.php(88): Mage->run('default', 'store')
¿Fue útil?

Solución

Desafortunadamente, no hay suficiente información en su pregunta para depurar con precisión esto, y en base a los detalles de su pila de llamadas, parece que este sistema ha recibido algunas personalizaciones que pueden interferir con el comportamiento estándar de la tienda. Aquí hay algunas observaciones que pueden ayudarlo a rastrear el problema.

  1. Magento está tratando de include Un bloque de plantilla con una cadena vacía establecida como plantilla. Por eso estás viendo la advertencia. Busque cualquier nuevo (o viejo) setTemplate, o template="" En su código, o cualquier lugar donde un bloque de plantilla se instanciera sin establecer una plantilla

  2. Magento está tratando de renderizar la plantilla system/cache/notifications.phtml - Sin embargo, el hecho de que se volvió a caer al base Paquete de diseño para hacer esto significa que Magento no pudo encontrar este archivo en ningún adminhtml paquete/tema. Este es un archivo de stock que se envía con el sistema y puede haber sido eliminado

  3. Dices que lo estás viendo "en todas partes", pero los errores indican que es un problema de solo administrador. Esto podría significar que está tratando de ejecutar el código de administración desde el front-end de viceversa (nuevamente, difícil de depurar remotamente este tipo de cosas)

Otros consejos

Ver ¿Cómo puedo depurar "plantilla vacía"? El nombre de archivo no puede estar vacío en plantlate.php

Resolvimos esto agregando

    if (strpos($includeFilePath, realpath($this->_viewDir)) === 0 || $this->_getAllowSymlinks()) {
        if (empty($includeFilePath)) {
            Mage::Log("Cannot set emptt filename" . $fileName . " on a " . get_class($this) );
            Mage::log(Mage::printDebugBacktrace(), null, 'backtrace.log'); //or you can even log the backtrace
            include $includeFilePath;
        } else {
            include $includeFilePath;
        }
    } else {
        Mage::log('Not valid template file:'.$fileName, Zend_Log::CRIT, null, null, true);
    }

donde 'mago :: printdebugbackTrace ()' fue agarrado desde aquí

http://www.blog.magepsycho.com/utilizing-debug_backtrace-function-for-magento-debugging/

De esta manera tuvimos más información para pasar ...

Todas las respuestas anteriores son correctas. Solo quería agregar un caso específico que creo que muchas personas pueden tropezar con Uppon.

En caso de que esté utilizando Modman para administrar sus módulos (o cualquier otro administrador de módulos de similitud), asegúrese de que su archivo Modman contenga rutas adecuadas y después de eso lo hizo:

modman deploy namespace_module.

Personalmente, me he encontrado perdiendo al menos 15 minutos por depurar algo tan obvio al desarrollar algún módulo y usar un comando Generar -Modman para ahorrar tiempo, después de eso olvidando volver a llamarlo para que agregue archivos recién creados e implementaría los enlaces SYME correctos lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top