Custom Layout w PimCore jako narzędzie ograniczania widoczności zakładek edycji dla wybranych użytkowników lub grup użytkowników

Każdy, kto pracował z danymi produktowymi, wie, że nie wszystkie parametry przypisane do obiektu powinny być widoczne i dostępne do edycji przez każdego użytkownika. Gdy tworzymy niestandardowy widok, uwzględniający wybrane parametry dla danego użytkownika lub grupy użytkowników, w PimCore występuje błąd, który odkrywa niedostępne dla tych użytkowników zakładki.

O tym, jak go naprawiliśmy i co było jego przyczyną, przeczytacie w poniższym tekście.


Jednym z narzędzi, jakie system PimCore daje swoim użytkownikom, jest możliwość definiowania więcej niż jednego layoutu formularza edycji dla obiektu danych. Można to zrobić z poziomu edycji klasy PimCore – przez otwarcie klasy, którą chcemy edytować i wybranie opcji “Skonfiguruj układy niestandardowe”, a następnie skomponowanie, w oparciu o już istniejące elementy danych, niestandardowego widoku edycji obiektu.

Custom Layout Definition

Mechanizm ten może po prostu umożliwiać tworzenie widoków, które później będą ułatwiać pracę nad obiektami danych określonym użytkownikom lub grupom użytkowników. Istnieje jednak use case, w którym musimy ograniczyć widoczność danych pól i możliwość ich edycji dla wybranych grup użytkowników.

Wyobraźmy sobie, że mamy obiekt produktu, wystawiany na stronie internetowej. Obiekt ten posiada parametry podstawowe (takie jak np. nazwa i jej tłumaczenia), parametry techniczne, dane finansowe i parametry SEO. Parametry SEO są związane z pozycjonowaniem strony obiektu w wyszukiwarce i są przetwarzane na stronie obiektu. Parametry finansowe są wypełniane przez księgowość i wysyłane do systemu ERP. Parametry techniczne określają właściwości samego produktu.

Od razu widać, że nie każdy użytkownik systemu powinien mieć dostęp do wszystkich zakładek, np. pracownicy księgowości nie powinni mieć możliwości edycji parametrów SEO i parametrów technicznych, a osoby odpowiedzialne za pozycjonowanie nie powinny mieć możliwości zmiany parametrów finansowych. W dodatku zbyt duża ilość zakładek może utrudniać użytkownikowi systemu korzystanie z formularza edycji.

Stwórzmy zatem niestandardowy widok, zawierający wyłącznie zakładki parametrów podstawowych obiektu oraz jego parametrów finansowych. Po jego stworzeniu trzeba go jeszcze przypisać do określonej grupy i ścieżki: żeby to zrobić, należy wejść w „Użytkownicy/grupy” / „Grupy”, następnie w zakładce „Obszary” wpisać ścieżkę, w której znajdują się nasze produkty, po czym obok wpisanej ścieżki wejść w sekcję „Ustawienia niestandardowe”„Układy niestandardowe” i wybrać stworzony przez nas niestandardowy widok.

Od tej pory pracownicy księgowości będą widzieć tylko parametry finansowe i parametry podstawowe produktu, który edytują. W systemie PimCore w wersji 5.8.4 i wcześniejszych znajduje się jednak błąd, który sprawia, że po odświeżeniu przeglądarki – jeżeli przed odświeżeniem produkt był otwarty do edycji – formularz produktu wczyta się ze wszystkimi zakładkami, również tymi, które powinny być ukryte. Błąd jest spowodowany tym, że żądanie o dane obiektu wysyłane przez frontend PimCore po odświeżeniu strony, zawiera pusty parametr layoutId. Sprawia to, że system wczytuje domyślny widok obiektu zamiast widoku ustawionego dla użytkownika/grupy użytkowników.

Żeby to poprawić, wystarczy zedytować linijkę 428 klasy Pimcore\Bundle\AdminBundle\Controller\Admin\DataObject\DataObjectController i zamienić istniejący warunek:

if (is_null($currentLayoutId) && !empty($validLayouts))

na:

if ((is_null($currentLayoutId) || !strlen($currentLayoutId)) && !empty($validLayouts))

Sprawi to, że PimCore będzie prawidłowo odświeżał niestandardowy widok obiektu po przeładowaniu strony.


Nasz zespół przygotował poprawkę corowych mechanizmów PimCore, która została już oficjalnie zatwierdzona. Można ją podejrzeć pod adresem https://github.com/pimcore/pimcore/pull/4479.

Nasi eksperci
/ Dzielą się wiedzą

01.09.2022

Dlaczego potrzebujesz systemu PIM w swoim e-biznesie?

E-Commerce

Uwaga: ten blogpost został napisany przez naszych przyjaciół z Ergonode w ramach wsparcia Commerce Days Transformation 2022. Sprawdźcie oba te adresy! 👍 Wdrożenie systemu PIM to sposób na wyprzedzenie konkurencji w przyszłości. Wraz z ekspansją biznesu detalicznego i e-commerce oraz rosnącą ilością danych o produktach,...

30.08.2022

Strategia omnichannel – korzyści, trendy, przykłady

Digital Experience

Uwaga: ten blogpost został napisany przez naszych przyjaciół z Kontent.ai w ramach wsparcia Commerce Days Transformation 2022. Sprawdźcie oba te adresy! 👍 Jak zapewnić spójne doświadczenia klientów bez względu na kanał i urządzenie, z którego korzystają? Odpowiedzią jest omnikanałowość. Czym są treści omnikanałowe? Tworzenie...

24.08.2022

Q-Commerce/ Czas dostawy jako nowy czynnik decyzyjny?

E-Commerce

Jeszcze kilka lat większość sklepów e-commerce nawet bałoby się pomyśleć o 30-minutowej dostawie. Jednak w wyniku pandemii nastąpiły istotne zmiany w popycie konsumenckim – a jednocześnie zmieniły się możliwości firm w zakresie zaspokajania tego popytu. Klienci zawsze chcieli kupować lepiej i taniej. A teraz chcą też kupować szybciej....

Ekspercka wiedza
dla Twojego biznesu

Jak widać, przez lata zdobyliśmy ogromną wiedzę - i uwielbiamy się nią dzielić! Porozmawiajmy o tym, jak możemy Ci pomóc.

Napisz do nas

<dialogue.opened>