Archiwum

All posts for the month Kwiecień, 2016

Każda instalacja Magento posiada dane konfiguracyjne, które zapisywane są w bazie danych. Również parametry konfiguracyjne dodatkowych modułów zapisywane są do bazy. Wszystkie te ustawienia gromadzone są głównie w jednej tabeli o nazwie core_config_data. Parametry konfiguracyjne dostępne są z poziomu panelu administracyjnego, ale czasem może zajść potrzeba zmiany tych parametrów bezpośrednio w kodzie. Jest to oczywiście możliwe i takie rozwiązanie zostanie tu przedstawione.

Załóżmy, że chcemy wyłączyć Schowek (Wishlist)
wishlist
Ścieżka do konfiguracji dla tego parametru jest następująca wishlist/general/active – użyjemy jej, aby zmienić ustawienia. Taki kod wygląda następująco:

Po wykonaniu powyższego kodu konfiguracja w panelu administracyjnym zostanie zmieniona i Schowek (Wishlist) zostanie wyłączony.

Jeżeli chcemy pozyskać identyfikatory każdego rodzica kategorii to jest na to szybki i prosty sposób.

Najpierw wczytujemy model kategorii:

Następnie wykorzystujemy pole path, które zawiera identyfikatory rodziców bieżącej kategorii:

Teraz zmienna $path będzie zawierała ciąg identyfikatorów kategorii oddzielonych znakiem /, np. 1/2/5/17/22.
Aby otrzymać z takiego ciągu znaków poszczególne identyfikatory używamy funkcji explode:

W ten sposób otrzymamy tablicę z identyfikatorami:

Do prywatnych (private) i chronionych (protected) właściwości obiektów nie ma możliwości dostepu z zewnątrz, można więc operować tylko na publicznych (public) właściwościach obiektów. Co jednak zrobić gdy z jakiegoś powodu musimy uzyskać wartość np. jakiejś zmiennej chronionej? Jest na to sposób – można posłużyć się ReflectionClass. Przykład takiego użycia przedstawia kod poniżej:

Funkcja preg_replace jest bardzo przydatną funkcją służącą do operowania na wyrażeniach regularnych. W tym poście zostanie przedstawione wyrażenie, które umożliwi zmianę pewnego ciągu znaków pomiędzy innymi znakami na znaki jakie dowolnie określimy. Przykład prezentuje się więc następująco:

W powyższym przykładzie nastąpi zmiana zdania „Stoi na stacji lokomotywa.” na „Stoi na drodze lokomotywa.”. Tak więc zamieniliśmy ciąg znaków znajdujący się pomiędzy słowami „na” i „lokomotywa” na słowo „drodze”.

Aby wyrenderować niestandardową wartość na grid’zie przede wszystkim trzeba dodać do kolumny parametr, który będzie wskazywał na plik odpowiedzialny za renderowanie odpowiedniej wartości. Tak więc w pliku {Namespace}/{Module}/Block/Adminhtml/{Entity}/Grid.php dodajemy parametr renderer:

Teraz należy utworzyć plik renderujący {Namespace}\{Module}\Block\Adminhtml\{Entity}\Renderer\Customvalue.php:

Teraz w kolumnie otrzymamy wyrenderowaną wartość.