Notification, erreur soudaine: Warning: include (): Nom du fichier ne peut pas être vide
Question
Depuis ce soir, nous voyons cette erreur.
D'abord, nous le voyons dans le journal des erreurs
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
et à l'exception de l'impression complète, nous voyons ce qui suit.
J'ai essayé de désactiver les notifications, mais ne sais pas où commencer (et comment cela se produit soudainement)
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')
La solution
Malheureusement, il n'y a pas assez d'informations dans votre question pour déboguer avec précision cela, et en fonction des spécificités de votre pile d'appel, il semble que ce système a reçu quelques personnalisations qui peuvent interférer avec le comportement du magasin standard. Voici quelques observations qui peuvent vous aider à traquer le problème
-
Magento essaie de
include
un bloc de modèle avec un ensemble de chaîne vide comme modèle de lui. Voilà pourquoi vous voyez l'avertissement. Recherchez les nouveaux (ou anciens)setTemplate
outemplate=""
dans votre code, ou tout autre lieu un bloc de modèle est instancié sans définition d'un modèle -
de Magento essayer de rendre le modèle
system/cache/notifications.phtml
- cependant, le fait le dos tombé à l'ensemble de la conception debase
faire ce moyen Magento n'a pas pu trouver ce fichier dans any Forfaitadminhtml
/ thème . Ce fichier de stock qui est livré avec le système, et peuvent avoir été supprimées -
Vous dites que vous le voir « partout », mais les erreurs indiquent qu'il est un administrateur seul problème. Cela pourrait signifier que vous essayez d'exécuter du code administrateur de la fin avant de vice-versa (encore une fois, difficile de déboguer à distance ce genre de chose)
Autres conseils
Voir Comment puis-je déboguer « template vide »: Nom du fichier ne peut pas être vide dans template.php
Nous avons résolu ce problème en ajoutant
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);
}
où «Mage :: printDebugBacktrace () a été saisi d'ici
http: //www.blog.magepsycho. com / utilisation-debug_backtrace-fonction-de-magento-débogage /
De cette façon, nous avions un peu plus d'informations pour aller par ...
Toutes les réponses ci-dessus sont corrects. Je voulais juste ajouter un cas spécifique que je pense que beaucoup de gens peuvent trébucher uppon.
Dans le cas où vous utilisez Modman pour gérer vos modules (ou tout autre gestionnaire de lien symbolique du module), assurez-vous que votre fichier Modman contient des chemins appropriés et après que vous avez fait:
modman deploy namespace_module
.
Personnellement, je me suis trouvé perdre au moins 15 minutes pour le débogage chose évidente lors de l'élaboration et certains modules en utilisant une commande generate-Modman pour gagner du temps - après que l'oubli à appeler à nouveau il ajouterait les fichiers nouvellement créés et deploy des liens symboliques vers bon endroit.