Domyślnie dana kategoria w edycji posiada następujące pola tekstowe:

  • Nazwa
  • Opis
  • Meta opis
  • Meta tytuł
  • Przyjazny adres URL

Jeśli chodzi o nazwę – jeśli jesteśmy w widoku danej kategorii, to pole jest używane w nagłówku tej kategorii. Tak samo – test który jest tam wpisany pojawia się w bloku z drzewem kategorii.

Czasami zachodzi potrzeba w celach pozycjonerskich (SEO) dodania słów kluczowych w nazwie kategorii w nagłówku na stronie tej kategorii. Jednak dodanie tam takich fraz powoduje jednoczesne dodanie ich na drzewie kategorii co może wyglądać dość nieestetycznie lub powodować wręcz rozsypanie tego drzewa, bo tytuły są za długie.

Wyjściem z sytuacji jest dodanie dodatkowego pola w formularzu edycji istniejącej / dodawania starej kategorii w zapleczu sklepu. Wtedy standardowa nazwa kategorii pojawia się w drzewie kategorii natomiast w ciele strony nad listą produktów wybrana przez nas dowolna nazwa.

Poniżej instrukcja jak to zrobić.

Modyfikacja bazy danych

Logujemy się np. do narzędzia PhpMyAdmin na naszym serwerze i wywołujemy kod SQL:


ALTER TABLE `ps_category_lang` ADD `name_alt` VARCHAR( 128 ) NOT NULL ;

(Uwaga, jeśli w naszym sklepie posiadamy inny tzw. prefix w nazwie tabel – domyślnie to „ps_” musimy go podmienić na obowiązujący)

Modyfikacja Klasy PHP:

Edytujemy plik:


classes/Category.php

Zamieniamy kod na początku pliku:


/** @var string Name */
public $name;

Na:


/** @var string Name */
public $name;

/** @var string Name Alternative */
public $name_alt;

Następnie kilkadziesiąt linii poniżej zamieniamy kod:


'name' =>                 array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCatalogName', 'required' => true, 'size' => 128),

Na:


'name' =>                 array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCatalogName', 'required' => true, 'size' => 128),
'name_alt' =>             array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCatalogName', 'required' => true, 'size' => 128),

Modyfikacja kontrolera:

Edytujemy plik:


controllers/admin/AdminCategoriesController.php

Dodajemy kolejny element w tablicy asocjacyjniej $this->fields_form zamieniając kod:


array(
'type' => 'text',
'label' => $this->l('Name'),
'name' => 'name',
'lang' => true,
'required' => true,
'class' => 'copy2friendlyUrl',
'hint' => $this->l('Invalid characters:').' <>;=#{}',
),

Na:


array(
'type' => 'text',
'label' => $this->l('Name'),
'name' => 'name',
'lang' => true,
'required' => true,
'class' => 'copy2friendlyUrl',
'hint' => $this->l('Invalid characters:').' <>;=#{}',
),
array(
'type' => 'text',
'label' => $this->l('Name Aternative'),
'name' => 'name_alt',
'lang' => true,
'required' => true,
'class' => 'copy2friendlyUrl',
'hint' => $this->l('Invalid characters:').' <>;=#{}',
),

Efektem naszych działań będzie pojawienie się takiego pola w formularzu dodawania / edycji kategorii:

kategoria-dodatkowe-pole-name

Modyfikacja szablonu .tpl

Otwieramy plik:


themes/{NAZWA-NASZEGO-SZABLONU}/category.tpl

Znajdujemy wystąpienie wywołania nazwy kategorii:


{$category->name}

Zameniamy ją na:


{if $category->name_alt}
{$category->name_alt}
{else}
{$category->name}
{/if}

Powyższa konstrukcja warunkowa pozwoli nam na uniknięcie pokazywania pustego nagłówka. W sytuacji jak np. w którejś kategorii nie zdeklarujemy alternatywnej nazwy.

Uwaga. Aby powyższe zmiany były widoczne w przeglądarce www należy upewnić się, że wyczyściliśmy pamięć podręczną w Presta Shop. Aby to zrobić wejdź w sekcję:

Zaawansowane » Wydajność » Wyczyść pamięć podręczną

Share This:

Zostaw komentarz

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