Dodany: 26 lutego, 2015 | Kategoria: Magento
Tworząc w magento layout należy podać identyfikator dla danego kontrolera i akcji. Niestety czasem są z tym problemy, ale można dość szybko znaleźć wyciągnąć ten identyfikator w samej akcji za pomocą:
1
| $this->getFullActionName() |
Tagi: adminhtml, layout, magento Brak komentarzy »
Dodany: 27 lipca, 2011 | Kategoria: Magento, PHP
Gdy wstawimy blok do pliku layoutu, będzie on wczytany przy generowaniu strony (nawet jeśli go nie wyświetlamy w templatce) i sprawdza cache. Dzisiaj miałem taki problem, ze aby nie nadpisywać całego magento i wyswietlania kategorii, najprościej było po prostu ustawić pewien parametr w templatce a potem ten drugi blok miał go odczytywać aby utworzyć klucz dla cache. Tu pojawił się problem, bowiem aby skorzystac z getChildHtml() musiałem ustawić blok w layoucie, co powodowało, ze generował się klucz do cache z parametru, którego jeszcze nie było i sypało błędem.
Poszukałem rozwiazania w googlach i było prawie dobre – niestety okazało się, że metoda setData wcale nie ustawi zmiennej $this->_template, a $this->_data[’template’] dla bloku, przez co output HTMLowy się nie wykonywał ($this->getTemplate() zwracało NULL).
Zatem prawidłowe rozwiązanie to:
echo $this->getLayout()
->createBlock('Name_Module_Block_Type', 'name')
->setTemplate('name/module/type.phtml')
->toHtml();
Tagi: block, createBlock, include, layout, magento, module, setTemplate, toHtml Brak komentarzy »