Dodany: 21 kwietnia, 2017 | Kategoria: Magento, PHP
Ponieważ w Magento zależnie od ustawionego języka separatorem miejsc dziesiętnych jest kropka lub przecinek, a miałem klienta, który chciał cyfry po tym znaku zamieniać na małe, musiałem znaleźć rozwiązanie. Mimo setek plików XML jednego prostego rozwiązania nie ma, ale jest funkcja która zwraca nam tablicę zawierającą tę i inne cenne informacje o cenach:
Mage::app()->getLocale()->getJsPriceFormat();
1 2 3
| $options = Mage::app()->getLocale()->getJsPriceFormat();
echo $options['decimalSymbol']; // returns . (1.5) or , (1,5)
echo $options['groupSymbol']; // returns , (1,000.5) or . (1.000,5) |
Tagi: character, decimal, magento, separator, symbol Brak komentarzy »
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: 9 października, 2012 | Kategoria: Magento, PHP
Potrzebowałem znaleźć, gdzie jest ograniczana kolekcja produktów w widoku kategorii, przez co zamiast X produktów wyświetla się np. 9.
1 2
| class Mage_Catalog_Block_Product_List {
... |
162 163
| // set collection to toolbar and apply sort
$toolbar->setCollection($collection); |
Tagi: apply, category, filter, magento, page, pagination, toolbar 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 »