Ich habe einen benutzerdefinierten Block, den ich jetzt in zwei separate Blöcke aufteilen möchte.
Hier ist meine Ordnerstruktur (in app / code / local / MyNamespace / CustomerDashboard):
Da ich die Funktionen dieses Moduls in zwei kleinere Teile aufteilen möchte, habe ich die Dateien MyMenu.php
im Blockordner und MyMenuController.php
in Controllern hinzugefügt .
Dann habe ich einfach den Code von Deliverydetails.php
in MyMenu.php
und DeliverydetailsController.php
in kopiert / eingefügt, um MyMenuController.php
zu sehen, ob er funktionieren würde.
Ich ging in meine local.xml und fügte den Verweis zu meinem Modul und seiner Vorlage hinzu:
<reference name="left">
<block type="customerdashboard/mymenu" name="customerdashboard.mymenu" template="customer/form/my-menu.phtml"/>
</reference>
Wenn ich auf die Seite zugreife, auf der ich den Inhalt sehen soll, befindet sich an der Stelle, an der sich das Modul befinden soll, nichts, aber ich habe das Ausnahmen.log überprüft und Folgendes gefunden:
exception 'Mage_Core_Exception' with message 'Invalid block type: MyNamespace_CustomerDashboard_Block_Mymenu' in /var/www/html/mysite/public_html/app/Mage.php:595
Stack trace:
#0 /var/www/html/mysite/public_html/app/code/core/Mage/Core/Model/Layout.php(495): Mage::throwException('Invalid block type...')
#1 /var/www/html/mysite/public_html/app/code/core/Mage/Core/Model/Layout.php(437): Mage_Core_Model_Layout->_getBlockInstance('customerdashboa...', Array)
#2 /var/www/html/mysite/public_html/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('customerdashboa...', 'customerdashboa...')
#3 /var/www/html/mysite/public_html/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('customerdashboa...', 'customerdashboa...')
#4 /var/www/html/mysite/public_html/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 /var/www/html/mysite/public_html/app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#6 /var/www/html/mysite/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#7 /var/www/html/mysite/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(269): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#8 /var/www/html/mysite/public_html/app/code/core/Mage/Customer/controllers/AccountController.php(107): Mage_Core_Controller_Varien_Action->loadLayout()
#9 /var/www/html/mysite/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Customer_AccountController->indexAction()
#10 /var/www/html/mysite/public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('index')
#11 /var/www/html/mysite/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#12 /var/www/html/mysite/public_html/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#13 /var/www/html/mysite/public_html/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#14 /var/www/html/mysite/public_html/index.php(93): Mage::run('', 'store')
#15 {main}
Ich habe weder meine config.xml noch irgendetwas anderes berührt, abgesehen von den beiden bereits erwähnten Dateien (und nur um Funktionen zu entfernen, die ich in diesem bestimmten Block nicht wollte), und dies ist meine config.xml:
<?xml version="1.0"?>
<config>
<modules>
<MyNamespace_CustomerDashboard>
<version>0.1.1</version>
</MyNamespace_CustomerDashboard>
</modules>
<global>
<helpers>
<customerdashboard>
<class>MyNamespace_CustomerDashboard_Helper</class>
</customerdashboard>
</helpers>
<blocks>
<customerdashboard>
<class>MyNamespace_CustomerDashboard_Block</class>
</customerdashboard>
</blocks>
<sales>
<order>
<states>
<invoiced translate="label">
<label>Invoiced</label>
<statuses>
<invoced default="1"/>
</statuses>
<visible_on_front>1</visible_on_front>
</invoiced>
</states>
</order>
</sales>
</global>
<frontend>
<routers>
<customerdashboard>
<use>standard</use>
<args>
<module>MyNamespace_CustomerDashboard</module>
<frontName>customerdashboard</frontName>
</args>
</customerdashboard>
</routers>
</frontend>
</config>
Ich habe andere Themen zu diesem Thema hier auf StackExchange gelesen, aber keine Hinweise darauf erhalten, was das Problem sein könnte.
Also, was mache ich falsch, dass ich meinen Block nicht zum Rendern bringen kann und diesen Fehler in meinem Ausnahmen.log erhalte? Außerdem bin ich ein Magento-Neuling.