Я работаю над проектом, и все работает отлично на моей локальной машине (OS x - нечувствительная к регистру файловая система), но выдает исключение «Недопустимый тип блока» на рабочем сервере (Linux - чувствительный к регистру файловая система). Проблема в том, что я думаю, что я проверил все имена файлов для правильного верхнего/нижнего регистра.Исключение недопустимого типа блока только для производства
Вот трассировки стека:
exception 'Mage_Core_Exception' with message 'Invalid block type: Eqush_Eqush_Block_Footertop' in /www/eqush/app/Mage.php:595
Stack trace:
#0 /www/eqush/app/code/core/Mage/Core/Model/Layout.php(495): Mage::throwException('Invalid block t...')
#1 /www/eqush/app/code/core/Mage/Core/Model/Layout.php(437): Mage_Core_Model_Layout->_getBlockInstance('eqush/footertop', Array)
#2 /www/eqush/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('eqush/footertop', 'eqush_footertop')
#3 /www/eqush/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('eqush/footertop', 'eqush_footertop')
#4 /www/eqush/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element))
#5 /www/eqush/app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#6 /www/eqush/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#7 /www/eqush/app/code/core/Mage/Catalog/controllers/CategoryController.php(148): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#8 /www/eqush/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Catalog_CategoryController->viewAction()
#9 /www/eqush/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('view')
#10 /www/eqush/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#11 /www/eqush/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#12 /www/eqush/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#13 /www/eqush/index.php(87): Mage::run('', 'store')
#14 {main}
Вот конфигурация модуля с планировкой и блоком: (и пользовательские модель оплаты правильно работает)
<?xml version="1.0"?>
<config>
<modules>
<Eqush_Eqush>
<version>0.0.1</version>
</Eqush_Eqush>
</modules>
<global>
<blocks>
<eqush>
<class>Eqush_Eqush_Block</class>
</eqush>
</blocks>
<models>
<eqush>
<class>Eqush_Eqush_Model</class>
</eqush>
</models>
</global>
<default>
<payment>
<eqush_paypal>
<model>eqush/paypal</model>
<active>1</active>
<order_status>pending</order_status>
<title>PayPal</title>
<sort_order>1</sort_order>
</eqush_paypal>
</payment>
</default>
<frontend>
<layout>
<updates>
<eqush>
<file>eqush_page.xml</file>
</eqush>
</updates>
</layout>
</frontend>
</config>
Вот блок кода (приложение/код/местный/Eqush/Eqush/Block/Footertop.php)
class Eqush_Eqush_Block_Footertop extends Mage_Core_Block_Template
{}
И часть макета вызывающему для этого блока: (eqush_ page.xml)
<reference name="footerTop">
<block type="eqush/footertop" name="eqush_footertop" template="eqush/footer-top.phtml" before="-"></block>
</reference>
У меня нет идей. Я много искал, но ничего не помогло. Все выглядит хорошо для меня.
Вы правы. Я сбросил $ block до строки 494 и это строка (27) «Eqush_Eqush_Block_Footertop». Теперь я пытаюсь понять, почему. Если посмотреть на код до этого, то должно быть, что class_exists возвращает false, а mageFindClassFile также возвращает false. Почему это не делается в моей локальной среде? – Lai
Глядя на это сейчас, ваш ответ заставил меня понять, что все правильно настроено, и я проверил единственное, о чем не думал раньше. Файл имел неправильные разрешения. Теперь я чувствую себя немой. Спасибо, что открыл глаза и научил копаться в коде. – Lai