2014-09-26 9 views
5

Chciałbym móc ustawić zmienne za pomocą pola "Niestandardowe aktualizacje układu", które jest wyświetlane pod Manage Categories -> [Some Category] -> Custom Design, aby określić fragmenty danych, które mogą być użyte w szablonie strony kategorii list.phtml.Magento: ustawianie zmiennych za pomocą "Custom Layout Updates" XML w zależności od kategorii?

Dotychczas Próbowałem przy użyciu to:

<reference name="product_list"> 
    <action method="setData"> 
     <name>custom_banner_type</name> 
     <value>single</value> 
    </action> 
    <action method="setData"> 
     <name>custom_banner_position</name> 
     <value>3</value> 
    </action> 
</reference> 

Ale gdy próbuję echo $this->getData("custom_banner_type"); wewnątrz list.phtml dane nie są dostępne.

Próbowałem również uzyskać dane wewnątrz funkcji _beforeToHtml() wewnątrz List.php, kontrolera szablonu, ale to również nie robi nic!

Czy jest jakiś sposób przekazania danych/zmiennych za pomocą pliku XML Custom Layout Updates? Trzeba to zrobić przez to, ponieważ dane będą się zmieniać dla każdej kategorii, więc nie będę mógł korzystać z zakodowanych na sztywno plików.

+0

Zobacz ten link tutaj: http://magento.stackexchange.com/a/14605/395 –

+0

@RohitS Dzięki, ale to nie pomogło. O ile widzę, moja składnia jest poprawna i używam poprawnych metod. Ale dane wciąż nie docierają. – WackGet

+0

odświeżyć pamięć podręczną, a var/cache/* już? –

Odpowiedz

8

W jakim uchwycie układu to robisz? Należy użyć catalog_category_view i catalog_category_layered. Być może używasz domyślnej metody Magento do ustawiania danych za pomocą XML. Magento ustawia dane w formacie xml za pomocą funkcji set, które uważam za bardziej czytelne niż setData w XML.

Przykład:

<catalog_category_view> 
    <reference name="product_list"> 
    <action method="setCustomBannerType"><value>single</value></action> 
    <action method="setCustomBannerPosition"><value>3</value></action> 
    </reference> 
</catalog_category_view> 

do pobierania danych można użyć $this->getData('custom_banner_type'); ale także $this->getCustomBannerType(); która jest taka sama. Jeśli chcesz wiedzieć więcej na ten temat, sugerowałbym przeglądanie magicznych metod (http://php.net/manual/en/language.oop5.magic.php)

Nie wiem, czy pamięć podręczna jest włączona, jeśli tak, opróżnij pamięć podręczną i powinna działać.

+1

Czy uchwyt jest niezbędny, jeśli już znajdujesz się w polu aktualizacji układu niestandardowego kategorii w backendie? –

+0

Nie, powinien działać bez! –

Powiązane problemy