2013-05-01 9 views
11

Ich versuche, den Referenzblock des Kontakts zu ändern uns link..I alle die Datei phtml erstellt und alle .. Jetzt in phtml Datei, wenn ichWie Funktion eines anderen Blocks nennen Magento

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

Ich bekomme die Anzahl der Links als 0, weil es das Objekt von links.php nicht bekommen kann. Ich möchte wissen, wie ich Referenzobjekt von contacts.phtml haben kann

Antwort

29

Hallo Sie können es durch Verweis auf diese Block.Like Schaffung

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

als Sie bequem alle Funktionen dieser Klasse wie $cpBlock->getLinks(); .Weitere Weise nennen kann, ist Verwenden Sie XML-Block-Code.Fügen Sie Kontakt zu uns XML-Referenz wie Benutzer2338443 erwähnt, um Ihre benutzerdefinierten XML und als Zugriff auf Funktionen dieses Blocks.

+0

Ich habe das versucht. $ tabLinks = Mage :: app() -> getLayout() -> getBlockSingleton ('Mage_Customer_Block_Account_Navigation'); $ allLinks = $ tabLinks-> getLinks(); aber leeres Array zurückgeben. Irgendwelche Hilfe ?? –

+0

'getBlockSingleton()' funktioniert nicht, 'createBlock()' funktioniert .. Ich weiß nicht warum. –

2

Sie können mit einer Layout-XML-Datei verweisen .

zum Beispiel:

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

i did not Sie bekommen .. –

+0

ich nicht Sie Eigentlich bekommen, was ich tun möchte, die Lage der Kontakt uns ist ..now ich den Kontakt mit uns auch von link.phtml..and verstecken müssen sich ändern i habe einen neuen phtml erstellt .. aber wenn ich das tue-> getLinks() ... um alle URL-Werte zu bekommen, bekomme ich NULL da drüben –

1

Bitte versuchen Sie es mit diesem. Es gibt zwei Syntax zum Aufruf von Block-Methode/-Funktion wie folgt.

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

oder

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

Block zu Block

Aufruf versuchen

Auch andere Blockklassenmethode von aktuellen Vorlage Block-Klasse aufrufen.

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