Notifica, errore improvviso: Warning: include (): Nome del file non può essere vuoto
Domanda
Dal momento che questa sera stiamo vedendo questo errore.
Per prima cosa vedere questo nel registro degli errori
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
e con piena eccezione stampa vediamo quanto segue.
Ho provato a disattivare le notifiche, ma non so da dove cominciare (e come questo si verifica improvvisamente)
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')
Soluzione
Purtroppo, ci non è abbastanza informazioni nella sua domanda di eseguire il debug in modo accurato questo, e sulla base delle specifiche del tuo stack di chiamate, sembra che questo sistema ha ricevuto un paio di personalizzazioni che possono interferire con il comportamento negozio standard. Ecco alcune osservazioni che possono aiutare a rintracciare il problema
-
Magento sta cercando di
include
un blocco modello con un insieme stringa vuota come di modello. È per questo che si sta vedendo l'avvertimento. Cercare qualsiasi nuovo (o vecchio)setTemplate
, otemplate=""
nel codice, o di qualsiasi luogo un blocco di template è un'istanza senza impostare un modello -
di Magento cercando di rendere il
system/cache/notifications.phtml
template - tuttavia, il fatto le spalle caduto al pacchetto di progettazionebase
fare questo mezzo Magento potrebbe non trovare questo file in qualsiasi pacchettoadminhtml
/ a tema . Si tratta di un file stock fornito con il sistema, e potrebbero essere stati rimossi -
dici che stai vedendo "ovunque", ma gli errori indicano che è un amministratore unico problema. Questo potrebbe significare che si sta cercando di eseguire codice di amministrazione dal front-end viceversa (di nuovo, difficile da eseguire il debug remoto questo genere di cose)
Altri suggerimenti
Come posso eseguire il debug "modello vuoto": nome del file non può essere vuoto in template.php
Abbiamo risolto questo con l'aggiunta di
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);
}
dove 'Mage :: printDebugBacktrace ()' è stato afferrato da qui
http: //www.blog.magepsycho. com / utilizzando-debug_backtrace-funzione-per-Magento-debug /
In questo modo abbiamo avuto qualche informazione in più per andare da ...
Tutte le risposte sopra sono esatte. Volevo solo aggiungere un caso specifico che penso un sacco di gente può inciampare uppon.
Nel caso in cui si sta utilizzando Modman per gestire i moduli (o qualsiasi altro gestore modulo link simbolici), assicurarsi che il file Modman contiene i percorsi adeguati e dopo che avete fatto:
modman deploy namespace_module
.
Personalmente ho trovato me stesso di perdere almeno 15 minuti per il debug di una cosa ovvia quando si sviluppa un certo modulo e l'utilizzo di un comando generate-Modman per risparmiare tempo - dopo che il dimenticare di chiamare di nuovo in modo che sarebbe aggiungere file e distribuire appena creati link simbolici a posto giusto.