Press "Enter" to skip to content

dodanie dodatkowego pola opisu w kategorii – Presta Shop 1.6, Presta Shop 1.7 [Aktualizacja]

Admin 10

Domyślnie w danej kategorii opis znajduje się nad listą produktów. Czasem ze względów pozycjonerskich (SEO) zachodzi potrzeba dodania dodatkowego opisu pod produktami. Deklarowanego oddzielnie w edycji lub tworzeniu nowej kategorii.

Presta Shop 1.6 przez swoją innowacyjną budowę pozwala stosunkowo łatwo dodać takie pole. Poniżej szczegóły.

Dodanie pola w bazie danych.

Nasze modyfikacje w plikach były by na nic, gdyby system nie miał gdzie zapisywać tego dodatkowego opisu. Opisy kategorii są trzymane w tabeli ps_category_lang. Dodanie pola realizujemy poprzez zapytanie:

Modyfikacja obiektu Category.

Edytujemy plik:

Na początku klasy PHP: CategoryCore deklarujemy analogiczną do “domyślnego” opisu zmienną. Zastępujemy kod (okolice 40 linii) :

Kodem:

W tym samym pliku odnajdujemy statyczną, publiczną zmienną tablicową $definition;

(okolice 95 linii) i dodajemy do niej kolejny element zamieniając kod:

na:

Modyfikacja kontrolera kategorii.

edytujemy plik:

W metodzie konstrukcyjnej __construct() znajdujemy zmienną tablicową $this->fields_list:

i dodajemy do niej kolejny element zamieniając kod:

na:

(Uwaga dla wersji PrestaShop 1.7 może się to nieznacznie różnić)

W tym samym pliku odnajdujemy publiczną metodę:

(okolice 412 linii) następnie w tej metodzie znajdujemy zmienną tablicową:

i dodajemy do niej kolejny element zamieniając kod:

na:

 

Gotowe, wykonanie powyższych czynności pozwala nam deklarować dodatkowy opis w kategorii. To, jak zostanie on nazwany (w naszym przypadku Alternative Description) zależy tylko od nas, poprzez odpowiednie zmodyfikowanie powyższego kodu. Wygląd pola:

Strony WWW Kraków - SmartProjects.pl

 

Modyfikacja szablonu kategorii.

PrestaShop 1.6:

Pozostało nam tylko zaprezentować dodatkowy opis na sklepie. W tym celu edytujemy plik:

Nastepnie w miejscu gdzie chcemy aby pojawił się nowy opis wklejamy kod:

Lub krócej:

Jeżeli opis ma być pod listą produktów – musi on sie znaleźć pod wywołaniem tego kodu:

PrestaShop 1.7:

Otwórz plik:

Na końcu pliku (lub na końcu przed kodem {/block} ) wklej:

 

 

  1. Świetny tutorial. Przydało mi się i najważniejsze, że to działa 🙂 Dzięki! Czy posiadacie jakiś sztywny cennik jeśli chodzi o prestashop czy wycena wdrożeń/modyfikacji jest zawsze wyceniana indywidualnie?

    • Admin admin

      Dzięki za miłe słowo;) staramy się pomóc. Co do cen raczej indywidualnie, zależy co jest do zrobienia.

    • Witam, czy treść polecenia, które dodaje pole w bazie danych jest na pewno poprawna?
      ALTER TABLE
      ::CODECOLORER_BLOCK_3::
      ADD
      ::CODECOLORER_BLOCK_4::
      TEXT NOT NULL ;

      • Admin Admin

        Masz rację @Jakub – zostało to poprawione w opisie artykułu. Dzięki za zwrócenie na to uwagi!

  2. Cześć, wszystko prawie działa dobrze. Po dodaniu tekstu w drugim (alternatywnym polu) pojawia się on w bazie danych, ale nie wyświetla się na stronie :(. Czy czasem nie musi być dodane gdzieś jeszcze zapytanie odnośnie pobrania danych z bazy? Select …. ?

    • Działa, mój błąd xD. W presta 1.7 zamiast {$category->description_alt} jest {$category.description_alt nofilter}

      Super!!!

      • Admin Admin

        @ietui.pl dokładnie tak – własnie zaktualizowaliśmy treść artykułu dla PS 1.7 🙂

  3. Maciej Maciej

    Dzień Dobry,

    Niestety nie działa. Możliwość wpisania alternatywnego tekstu jest, rekord w bazie danych się pojawia, a na stronie nic. Mimo dodania {$category->description_alt} w category.tpl

    Co może być zrobione źle?

    • Admin Admin

      Cześć, a napisz @Maciej dla jakiej wersji PS to robisz? A kod {$category.description_alt} też nie działa? hmm

  4. Maciej Maciej

    Cześć,

    Dziękuje za odpowiedź, niestety {$category.description_alt} , również nie działa. Wersja to 1.6.1.17 . Mam pytanie czy istnieje jakieś inne rozwiązanie na wdrożenie dodatkowego tekstu pod produktami np. modułem?

    Pozdrawiam i dziękuje za odpowiedź 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Zobacz także !
Czasem w skrypcie lub module zachodzi potrzeba dodania nowej podkategorii…