Press "Enter" to skip to content

sposób na hurtowe ustawienie okładek danej kategorii i wszystkich jej kategorii potomnych (podkategorii)

Admin 1

Jak są deklarowane okładki kategorii w PrestaShop?

Okładki kategorii w PrestaShop są ustawiane po prostu przez wgranie pliku JPEG w folder:

Pod nazwą:

Mogą być jeszcze inne wymiary okładek – są one zdeklarowane w wygląd -> zdjęcia (PrestaShop 1.7) lub Preferencje -> zdjęcia (PrestaShop 1.6)

Czyli np.

Dla kategorii o ID = 12.

Jest to o tyle problematyczne że ciężko jest ustawić np. tą samą okładkę dla np. 300 podkategorii. No chyba, że masz czas kopiować 300 x 2 plików JPEG (jak kategorie mają więcej wymiarów to jeszcze więcej…).

Dla przykładu (wycinek drzewa ze sklepu www.wetkarma.pl):

Tutaj dla kategorii podstawowej „Pies” wszystkie potomne kategorie musza mieć taką samą okładkę jak ta kategoria podstawowa. Zatem trzeba by było utworzyć pliki:

Zatem około weekend kopiowania plików 🙂

Gdyby to było zdeklarowane w bazie danych – wystarczyło by zapytanie. Tutaj niestety nic nam to nie da.

Idea skryptu który zrobi to za nas.

Aby obejść to ograniczenie opracowaliśmy sprytną metodę na ustawienie tego w parę sekund. Idea jest taka:

  1. Skrypt pobiera ID kategorii podstawowej – czyli tej która ma podkategorie. Ilość podkategorii nie ma znaczenia. Może być ich 50 a może być 1500. Mogą być podzielone na jeszcze kolejne podkategorie i liczba zagłębień – nie ma znaczenia.
  2. Skrypt tworzy listę wszystkich potomnych kategorii
  3. Skrypt kopiuje zdjęcie kategorii podstawowej (musi być ono ustawione) i powiela je dla wszystkich kategorii wgłąb
  4. Skrypt de facto – po prostu kopiuje pliki JPEG na serwerze.

Jeśli interesuje Cię taka zmiana – wykonaj poniższe czynności ! 🙂

Uwaga! Prezentowane tutaj rozwiązanie zadziała zarówno w wersji PrestaShop 1.7 jak i w nieco starszej – PrestaShop 1.6. Zostało to przez nas sprawdzone 😉

Ustawienie okładki kategorii podstawowej.

Aby skrypt zadziałał – musi on mieć skąd skopiować okładkę do kategorii potomnych. W innym wypadku – skrypt zostanie przerwany.

Włącz zatem edycję kategorii głównej (w powyższym przykładzie będzie to kategoria „Pies”).

Nastepnie wgraj okładkę w polu „Zdjęcie kategorii”:

Pole do wgrania zdjęcia kategorii w edycji kategorii

I zapisz edycję tej kategorii.

Zmiany w plikach

UWAGA! Przed modyfikacjami wykonaj kopie plików PHP z przed zmiany!

UWAGA #2! Nasza modyfikacja permanentnie i nieodwracalnie nadpisze pliki w folderze img/c. Rozważ wykonanie kopii bezpieczeństwa tego folderu w razie potrzeby

Dla szybkości posłużymy się stroną CMS. Tam wkleimy kod który wykona zadanie i po ukończeniu procesu kopiowania – usuniemy go 🙂

Otwórz plik:

Znajdź fragment kodu:

Wklej nad nim kod:

W wcześniej wspomnianej metodzie initContent() po kodzie:

Wklej kod:

Gotowe!

W tym momencie musisz uruchomić wklejony skrypt. W tym celu wejdź na dowolną stronę statyczną-CMS (fraza „content” w adresie) na Twoim sklepie internetowym.

Np. na stronę regulaminu:

http://{adres-twojego-sklepu}/content/3-regulamin

ID strony którą wywołasz nie ma znaczenia.

Jednak po w/w adresie – doklej w pasku przegladarki:

Czyli docelowy adres będzie to np.

http://{adres-twojego-sklepu}/content/3-regulamin?subcatcopy=12

Gotowe! Skrypt nast. rozpocznie kopiowania i zobaczysz listing typu:

Gdy strona się w całości załaduje – możesz sprawdzić czy wszystkie okładki zostały skopiowane 🙂

Jak wszystko się zgadza – usuń wklejony kod w pliku:

Regeneracja miniatur

Aby było w pełni po bożemu możesz w dziale „Zdjęcia” wywołać regenerację miniatur dla wybranych rozmiarów zdjęć kategorii.  W naszym skrypcie nie skalujemy zdjęć tylko po prostu dla każdego wymiaru – kopiujemy zdjęcie oryginalne.

grafika:wallpaperflare.com

  1. Czy nie uważasz, że edycja bezpośrednio w kontrolerach potem będzie problematyczna przy aktualizacji? Zabezpieczasz się jakoś przed tym?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Zobacz także !
Szybki sposób na przetłumaczenie nazw zakładek w adminie w PrestaShop…