PrestaShop, dzięki swojej potężnej i elastycznej strukturze, pozwala deweloperom dostosowywać różne aspekty platformy do konkretnych wymagań biznesowych. Jedną z takich dostosowań jest dodanie niestandardowej zakładki na stronie produktu w zapleczu. W tym blogu przejdziemy przez proces krok po kroku, aby to osiągnąć, tworząc przykładowy moduł o nazwie kbcustommodule.
Możemy utworzyć niestandardową zakładkę na stronie produktu w zapleczu na dwa sposoby:
- Korzystanie z komponentów Symfony.
- Korzystanie z haka displayAdminProductsExtra
Metoda 1:
Niniejszy samouczek dotyczy PrestaShop w wersji 8.1 i nowszych, wykorzystujących komponenty Symfony.
Krok 1: Utwórz swój moduł
kbcustommodule/ |– composer.json |– config/ | |– services.yml |– src/ | |– Form/ | | |– Modifier/ | | |– ProductFormModifier.php | | |– Type/ | | | |– CustomTabType.php |– kbcustommodule.php Zacznij od utworzenia folderu o nazwie kbcustommodule w katalogu modules instalacji PrestaShop. W tym folderze utwórz plik kbcustommodule.php, który będzie zawierał główną klasę dla Twojego modułu. Klasa modułu inicjuje moduł i rejestruje wymagane haki. Oto przykład pliku kdcustommodule.php:
Uruchom polecenie composer dump-autoload w katalogu głównym modułu, aby włączyć automatyczne ładowanie przestrzeni nazw.
Krok 2: Zdefiniuj usługi
Utwórz plik services.yml w katalogu config swojego modułu (kbcustommodule/config/services.yml). Ten plik definiuje usługi Symfony wymagane do dostosowania formularza.
Krok 3: Utwórz niestandardowy typ formularza karty
Utwórz klasę CustomTabType w folderze src/Form/Type swojego modułu. Ta klasa definiuje pola, które pojawią się w karcie niestandardowej.
Krok 4: Utwórz klasę ProductFormModifier
Klasa ProductFormModifier definiuje sposób, w jaki karta niestandardowa integruje się z istniejącym formularzem produktu.
Ostatni krok: instalacja i testowanie
- Zainstaluj moduł za pośrednictwem zaplecza lub ręcznie umieść go w katalogu modułów i włącz.
- Przejdź do strony produktu back office. Powinieneś zobaczyć nową zakładkę oznaczoną jako „Custom Tab” z polem oznaczonym jako „Custom Field”.
- Przetestuj funkcjonalność, dodając dane do pola niestandardowego i upewniając się, że zostaną one prawidłowo zapisane.
Po pomyślnej instalacji powyższego modułu otrzymasz następujący wynik.
Zintegruj Menedżera tagów Google z Prestashop
Metoda 2:
Hak displayAdminProductsExtra umożliwia dodawanie niestandardowej zawartości lub zakładek do strony edycji produktu w Back Office. Ta metoda unika złożoności definiowania usług Symfony i jest łatwiejsza dla programistów niezaznajomionych z Symfony.
Krok 1: Utwórz moduł
Zacznij od utworzenia podstawowej struktury modułu. Na przykład: Kbcustommodule/ |– config/ |– translations/ |– views/ | |– templates/ | |– admin/ | |– products/ | |– custom_tab.tpl |– Kbcustommodule.php
Krok 2: Zdefiniuj klasę modułu
W pliku Kbcustommodule.php zdefiniuj swój moduł i zarejestruj hak displayAdminProductsExtra.
Krok 3: Utwórz plik szablonu
W pliku views/templates/admin/products/custom_tab.tpl zdefiniuj kod HTML i zawartość swojej niestandardowej karty.
Krok 4: Zapisz dane
Aby zapisać niestandardowe dane, użyj haka actionAdminControllerSetMedia wraz z JavaScript lub PHP. Alternatywnie możesz użyć haka actionProductUpdate w PHP. Przykład w Kbcustommodule.php:
Krok 5: Dodaj pole do bazy danych
Zmodyfikuj bazę danych, aby przechowywać swoje niestandardowe dane. Na przykład: ———————————————————————— ALTER TABLE ps_product ADD custom_field TEXT NULL; ———————————————————————— Po pomyślnej instalacji powyższego modułu otrzymasz następujący wynik. Aby uzyskać dalszą pomoc, skontaktuj się z nami lub zostaw komentarz poniżej. Możesz również skontaktować się z nami na Centrum pomocy Knowband.
