2013-05-01 21 views
11

Sto cercando di cambiare il blocco di riferimento di contatto noi link..I creato tutto il file phtml e tutti .. Ora nel file di phtml quando sto chiamandoCome chiamare la funzione di un altro blocco Magento

<?php $_links = $this->getLinks(); ?> 

Sto ottenendo il numero di collegamenti come 0..perché non è possibile ottenere l'oggetto di link.php .. Voglio sapere come posso avere oggetto di riferimento di contacts.phtml

risposta

29

Hi lo si può fare con la creazione di riferimento a tale Block.Like

$cpBlock = $this->getLayout()->getBlockSingleton('your block class'); //ect Mage_Catalog_Block_Product_List_Toolbar 

di quanto si può facilmente richiamare ogni funzione della classe come $cpBlock->getLinks(); modo .Altre è utilizzando il codice di blocco XML. Aggiungi contattaci come riferimento a xml come utente2338443 menzionato al tuo xml personalizzato e alle funzioni di accesso di quel blocco.

+0

Ho provato questo. $ tabLinks = Mage :: app() -> getLayout() -> getBlockSingleton ('Mage_Customer_Block_Account_Navigation'); $ allLinks = $ tabLinks-> getLinks(); ma restituisce un array vuoto. Qualsiasi aiuto ?? –

+0

'getBlockSingleton()' non funziona, 'createBlock()' funziona ... Non so perché. –

2

È possibile fare riferimento utilizzando un file XML di layout .

ad esempio:

<block type="{Here you can add reference}" name="contactForm" template="contacts/form.phtml"/> 
+0

i didnt get you .. –

+0

mi hanno dato si In realtà quello che voglio fare è quello di cambiare la posizione di contattarci ..now ho nascondere il contatto noi da link.phtml..and anche io ho creato un nuovo phtml .. ma quando sto facendo questo-> getLinks() .. per ottenere tutti i valori URL sto ottenendo NULL laggiù –

1

Si prega di provare con questo. Ci sono due sintassi per richiamare metodo/funzione blocco come sotto.

$_blockData = $this->getLayout()->getBlockSingleton('yourmodule/blockname')->getFunctionName(); 

o

$_blockData = $this->getLayout()->createBlock('yourmodule/blockname')->getFunctionName(); 
2

blocco in blocco chiamando

Anche provare chiamare un altro metodo di classe isolato dalla corrente di classe blocco modello.

$s = Mage::app()->getLayout()->getBlockSingleton('myproductfamily/family'); 
     print_r($s->getCollection($collectionId));exit; 
Problemi correlati