2017-12-04 1 views
0

Ich habe ein benutzerdefiniertes Modul in Magento gemacht. Ich versuche nun, ein benutzerdefiniertes Layout/Template zu laden. Ich bin sicher, dass es etwas ist, das ich vermisse. Bitte sehen Sie sich meinen Code an und sagen Sie mir, was ich falsch mache.Benutzerdefiniertes Layout für benutzerdefiniertes Modul wird nicht in Magento 1.9 geladen

Mein Paket ist "Ben" und mein Modul "Distribution" genannt

Zum einen in "App/etc/modules" i lassen magento über mein Modul wissen "Ben_Distribution.xml"

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Ben_Distribution> 
      <active>true</active> 
      <codePool>local</codePool> 
     </Ben_Distribution> 
    </modules>  
</config> 

dann in "app/code/local/Ben/Vertrieb/Controller" ich habe meinen Controller "IndexController.php"

<?php 
class Ben_Distribution_IndexController extends Mage_Core_Controller_Front_Action 
{ 
    public function indexAction() 
    { 
     //echo 'Hello World'; 
     $this->loadLayout();  
     $this->renderLayout(); 
    } 
} 
?> 

dann in "App/code/local/Ben/Vertrieb/etc" ich habe meine Config-Datei "config.xml"

<config> 
    <modules> 
     <Ben_Distribution> 
      <version>0.1.0</version> 
     </Ben_Distribution> 
    </modules> 

    <frontend> 
     <routers> 
      <distribution> 
       <use>standard</use> 
       <args> 
        <module>Ben_Distribution</module> 
        <frontName>distribution</frontName> 
       </args> 
      </distribution> 
     </routers> 
     <layout> 
      <updates> 
       <distribution> 
        <file>distribution.xml</file> 
       </distribution> 
      </updates> 
     </layout>     
    </frontend>  
</config> 

dann in "App/Design/Frontend/Paketname/THEME/template/ben /" i put "distribution.phtml" einige HTML enthält

anzuzeigen

die schließlich habe ich versucht, die layout.xml Datei zu machen, so in "App/Design/Frontend/Paketname/THEME/layout/ben /" i put "distribution.xml"

<?xml version="1.0"?> 
<layout version="0.1.0"> 
    <distribution_index_index> 
     <reference name="content"> 
      <block type="core/template" name="distribution" template="distribution.phtml"/> 
     </reference> 
    </distribution_index_index> 
</layout> 

Das Endergebnis ist, dass mein Seite lädt bei www.url.co.uk/distribution/ wie erwartet. Wenn ich die echo-Anweisung im Controller verwendet, lädt es gut (eine leere Seite mit "Hello World".) Aber wenn ich zum Laden/Rendern des Layouts wechseln, bekomme ich die Standard-Website-Layout und keine auf den Inhalt in meiner .phtml-Datei. Also mein layout.xml ist nicht in geladen.

Dank

ZUSÄTZLICHE INFORMATIONEN ich hatte meine .phtml Vorlage Laden mein diesen Code in der Steuerung verwenden, aber da dies geladen, um den Standard „3 Spalte“ Seite layout und ich brauchte ein 1-spalten-layout ich habe versucht, es mit der layout.xml-datei zu machen statt

<?php 
class Ben_Distribution_IndexController extends Mage_Core_Controller_Front_Action 
{ 
    public function indexAction() 
    { 
     //Get current layout state 
     $this->loadLayout(); 

     $block = $this->getLayout()->createBlock(
      'Mage_Core_Block_Template', 
      'ben.distribution', 
      array(
       'template' => 'ben/distribution.phtml' 
      ) 
     ); 

     $this->getLayout()->getBlock('content')->append($block); 

     $this->_initLayoutMessages('core/session'); 

     $this->renderLayout(); 
    } 
} 
?> 

Antwort

1

Ich habe meinen eigenen einfachen Fehler gefunden. Entschuldige, dass du deine Zeit verschwendest.

<block type="core/template" name="distribution" template="distribution.phtml"/> 

sollte

<block type="core/template" name="distribution" template="ben/distribution.phtml"/> 
Verwandte Themen