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ą

PIM Data Syndication Illustration
30.04.2024

Syndykacja danych / Skuteczne zarządzanie informacjami

Product Information Management

Adekwatne, sprawdzone informacje są prawdziwą siłą. Dla firm działających w różnych branżach stanowią często znaczący czynnik sukcesu w komunikacji z klientami i partnerami. Do optymalnego zarządzania informacjami służą systemy PIM (Product Information Management). Umożliwiają organizacjom skuteczne gromadzenie, zarządzanie i dystrybucję...

23.04.2024

AI w marketingu / Przegląd możliwości

AI

„W dynamicznie rozwijającym się świecie biznesu, optymalizacja marketingu odgrywa coraz ważniejszą rolę”. Tak zapewne zaczynałby się kolejny artykuł wygenerowany przez sztuczną inteligencję. Bez obaw! Choć jesteśmy fanami AI, to poniższy tekst został napisany przez człowieka. Przygotowaliśmy dla Ciebie przegląd najważniejszych...

PIM in Marketplace Platform
16.04.2024

Rola systemów PIM na platformach marketplace

E-Commerce

Dobrej jakości, kompletne informacje produktowe pozwalają sprzedawcom w odpowiedni sposób zaprezentować asortyment, a klientom znaleźć dokładnie to, czego szukają. Najpopularniejsze platformy marketplace działają niemalże jak wyszukiwarki, pozwalając konsumentom na zaawansowane filtrowanie ofert za pomocą wielu słów kluczowych i różnych...

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>