Come collegare il mio blocco personalizzato per il layout
-
13-12-2019 - |
Domanda
C'è quindi un pezzo di custom block puzzle non sto veramente ottenere.
Quello che sto cercando di fare:
Voglio usare $this->getChildHtml('customBlock') all'interno del mio di intestazione.phtml file e averlo subito print 'Ciao Mondo'
Quello che ho, non:
Un file xml chiamato app/etc/modules/ Jiri_CustomBlock.xml con il seguente contenuto:
<?xml version="1.0"?>
<config>
<modules>
<Jiri_CustomBlock>
<active>true</active>
<codePool>local</codePool>
</Jiri_CustomBlock>
</modules>
</config>
Quindi un file chiamato app/code/local/Jiri/CustomBlock/etc/ config.xml
<?xml version="1.0"?>
<config>
<modules>
<Jiri_CustomBlock>
<version>0.0.1</version>
</Jiri_CustomBlock>
</modules>
</config>
Questo funziona, posso andare a Sistema>Configurazione>Avanzate e vedere all'interno i Moduli Disabili in Uscita
Poi ho questo in app/code/local/Jiri/CustomBlock/Block/ Header.php
class Jiri_CustomBlock_Block_Header extends Mage_Page_Block_Html_Header{
public function helloWorld(){
return 'Hello World';
}
}
Infine ho nel mio tema personalizzato cartella in app/design/frontend/customtheme/default/template/page/html/ customblock.phtml
<?php echo $this->helloWorld(); ?>
Ora, per la milioni di dollari;come faccio a fare in modo che in questo custom locale modulo/blocco diventa un bambino blocco del blocco di intestazione?
Io ho questo, non nel mio local.xml ma non ho idea di come collegare il codice per questa parte.
<reference name="header">
<block type="(what do I add here?)" template="page/html_header">
</block>
</reference> -->
Ho cercato online e ho scoperto che posso aggiungere 'azienda/module' nell'attributo 'type', ma poi come fa a sapere di caricare Block/Header.php?
Soluzione
Applicare la seguente modifica al codice,
In config.xml
<?xml version="1.0"?>
<config>
<modules>
<Jiri_CustomBlock>
<version>0.0.1</version>
</Jiri_CustomBlock>
</modules>
<global>
<blocks>
<jiri_customblock>
<class>Jiri_CustomBlock_Header</class>
</jiri_customblock>
</blocks>
</global>
</config>
In local.xml,
<?xml version="1.0"?>
<layout version="0.1.0">
<default>
<reference name="header">
<block type="jiri_customblock/header" name="customBlock" as="customBlock" template="page/html/customblock.phtml"/>
</reference>
</default>
</layout>
Altri suggerimenti
in etc/config.xml
aggiungi blocco in <global>
tag
<?xml version="1.0"?>
<config>
<modules>
<Jiri_CustomBlock>
<version>0.0.1</version>
</Jiri_CustomBlock>
</modules>
<global>
<blocks>
<jiri_customblock>
<class>Jiri_CustomBlock_Block</class>
</jiri_customblock>
</blocks>
</global>
</config>
in local.xml
aggiungere name
di blocco
<reference name="header">
<block type="jiri_customblock/header" name="html_header" template="page/html_header" >
</block>
</reference>