2013-05-01 10 views
11

Próbuję zmienić bloku odniesienia kontaktu z nami link..I stworzył cały plik Phtml i wszyscy nazywają .. Teraz w pliku Phtml gdy wzywamJak funkcją innego bloku Magento

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

Otrzymuję liczbę linków jako 0, ponieważ nie mogę uzyskać obiektu links.php .. Chcę wiedzieć, jak mogę mieć obiekt odniesienia contacts.phtml

Odpowiedz

29

Hi można to zrobić poprzez utworzenie odniesienia do tego Block.Like

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

niż można łatwo wywołać każdą funkcję tej klasy jak $cpBlock->getLinks(); .Other sposób jest przy użyciu kodu blokowego XML. Dodaj do nas odnośnik xml, podobnie jak user2338443, o którym mowa w niestandardowym pliku xml, a nie funkcje dostępu tego bloku.

+0

Próbowałem tego. $ tabLinks = Mage :: app() -> getLayout() -> getBlockSingleton ('Mage_Customer_Block_Account_Navigation'); $ allLinks = $ tabLinks-> getLinks(); , ale zwraca pustą tablicę. Każda pomoc? –

+0

'getBlockSingleton()' nie działa, działa 'createBlock()'. Nie wiem dlaczego. –

2

Możesz odwoływać się za pomocą pliku XML układu .

na przykład:

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

nie zrobił cię .. –

+0

nie zrobił Ci Właściwie to, co chcę zrobić, to zmienić lokalizację z nami skontaktować ..now mam ukryć skontaktuj się z nami link.phtml..and również ja utworzyłem nowy phtml ... ale kiedy robię to-> getLinks() .., aby uzyskać wszystkie wartości adresów URL otrzymuję NULL tam –

1

Proszę spróbować z tym. Istnieją dwie składni do wywołania metody/funkcji bloku, jak poniżej.

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

lub

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

bloku do bloku dzwoni

także spróbować wywołać inną metodę klasy blok z bieżącej klasy bloku szablonu.

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