Ich habe immer Probleme, die richtigen Griffe für alles zu finden. Bitte nehmen Sie hier Kontakt mit mir auf. Ich habe Google, SE durchsucht und unzählige Variationen ausprobiert, ohne Glück. (Und ja, ich habe hier Techniken verwendet: Debuggen des Ladens von Layouts , bin mir aber nicht sicher, was ich mit der Ausgabe tun soll.
Das Problem: Der Controller wird geladen. Das Layout nicht.
Wenn ich die Seite unter besuche localhost/magento/mymodule/ajax/cart
Es hallt "HIER!". Der var_dump der getLayouts generiert:
array(4) {
[0]=> string(17) "mymodule_ajax_cart"
[1]=> string(13) "STORE_default"
[2]=> string(24) "THEME_frontend_theme_theme"
[3]=> string(19) "customer_logged_out"
}
Der Code
Benutzerdefinierte Steuerung:
app/code/local/mycompany/mymodule/controllers/AjaxController.php
class Mycompany_Mymodule_AjaxController extends Mage_Core_Controller_Front_Action
{
public function cartAction() {
echo 'HERE!';
$this->loadLayout('mymodule_ajax_cart');
var_dump($this->getLayout()->getUpdate()->getHandles());
$this->renderLayout();
}
}
Konfigurationsdatei:
app/code/local/mycompany/mymodule/etc/config.xml
<config>
<modules>
<mycompany_mymodule>
<version>1.0.0</version>
</mycompany_mymodule>
</modules>
<global>
<helpers>
<mymodule>
<class>Mycompany_Mymodule_Helper</class>
</mymodule>
</helpers>
</global>
<frontend>
<routers>
<mymodule>
<use>standard</use>
<args>
<module>Mycompany_Mymodule</module>
<frontName>mymodule</frontName>
</args>
</mymodule>
</routers>
<layout>
<updates>
<mymodule>
<file>mymodule.xml</file>
</mymodule>
</updates>
</layout>
</frontend>
</config>
Layoutdatei bei
app/design/frontent/base/default/layout/mymodule.xml
<?xml version="1.0"?>
<layout>
<mymodule_ajax>
<block type="core/text_list" name="content" output="toHtml" as="content" />
</mymodule_ajax>
<mymodule_ajax_cart>
<reference name="content">
<block type="core/template" template="mymodule/ajaxcart.phtml" />
</reference>
</mymodule_ajax_cart>
</layout>
Und schließlich die Vorlagendatei unter
app/design/frontend/theme/theme/template/mymodule/ajaxcart.phtml
<div style="border: 2px solid red">
Hello world
</div>
Bitte beraten. Ich weiß, dass mir etwas Offensichtliches fehlt, aber ich kann es für mein ganzes Leben nicht finden.
mycompany_mymodule
(erstes Handle). Jedes XML-Tag, das das Präfix mymodule
ohne mycompany_
Präfix hat, ist meiner Meinung nach schlecht. Sie sollten alle Tag-Namen so ändern, dass sie das Präfix mycompany_
haben mymodule
.
mycompany_mymodule
in jedem Handle ein Präfix verwenden? (mycompany_mymodule_ajax
zum Beispiel).