Dokumentacja - przyjazne linki dla PrestaShop

Instrukcja instalacji i obsługi modułu Przyjaznych linków - URL bez ID dla PrestaShop od X13.pl
1.7.X  1.6.X  1.5.X 
1.3.0 / 2020-05-04
zobacz changelog

Przed instalacją i konfiguracją modułu zapraszamy do zapoznania się z instrukcją.

Wymagania instalacyjne

Moduł wymaga kilku podstawowych usług na serwerze, które w większości przypadków są aktywne.
Gdyby któraś z wymienionych opcji nie była dostępna - należy ją włączyć w panelu serwera lub napisać do administratora.

  1. PHP: 5.4 - 7.4
  2. ionCube: tak

Instalacja

Moduł możesz znaleźć na liście jako

  1. Nazwa: Przyjazne linki
  2. Opis: Przyjazne linki - usuń ID z linku oraz domyślny kod iso z języka
  3. Autor: x13.pl
  4. Kategoria: Funkcjonalność sklepu
  5. Filtruj po: Zainstalowane i niezainstalowane / Aktywne i nieaktywne

Konfiguracja

Podstawowa konfiguracja

W module możemy ukryć ID dla wybranych grup linków, takich jak:

  • Produkty
  • Kategorie
  • Producenci
  • Dostawcy
  • Kategorie CMS
  • CMS
Robimy to poprzez zmienienie opcji z NIE na TAK.

Kolejną istotną opcją modułu jest możliwość usuwania kodu ISO domyślnego języka czyli zamiast domena.pl/pl/ otrzymujemy link domena.pl/, by włączyć tą opcję wystarczy w polu Język ustawić TAK.

Sprawdzenie możliwości korzystania z overidów

Po zmianie, i odświeżeniu strony sklepu linki powinny automatyczni się zmienić, jeśli to nie nastąpi musimy sprawdzić czy w opcjach Zaawansowane -> Wydajność przy Wyłącz wszystkie nadpisywania mamy wybraną opcję NIE, jeśli nie zmieniamy jej wybór.

Moduł automatycznie czyści cache linków, po zmianie struktury lub opcji linki powinny być automatycznie odświeżone, gdyby jednak tak się nie stało należy wyczyścić cache ręcznie.
Wchodzimy w Zaawansowane -> Wydajność i wybieramy Wyczyść pamięć podręczną - w prawym górnym roku.

Zaawansowana konfiguracja

W module istnieje opcja ustawienia indywidualnej struktury linków, by to zrobić należy w opcji Zaawansowane ustawienia ustawić wybór na TAK.
Po zmianie ustawienia pod każdą z włączonych opcji usuwania ID pojawi się pole Ustawienia struktury linków dla w którym wpisana jest domyślna struktura linku.

Możemy w każdym z tych pól edytować schemat do tworzenia linków, pod polem do wpisywania mamy listę znaczników jakie mogą być w nich użyte, i np dla strony produktu to:
{rewrite}* - dodaje adres wpisany w polu (Przyjazny adres URL) na karcie produktu, czyli np koszulka-w-kwiatki
{category} - dodaje główną kategorię do linku czyli np bez-rekawka
{categories} - dodaje całkowitą ścieżkę kategorii do linku produktu czyli np dla-kobiet/koszulki/bez-rekawka

znaczniki {category} oraz {categories} mogą być wpisane również jako {category:/} oraz {categories:/} w takim przypadku utworzy się za nimi automatycznie znak / czyli np zamiast bez-rekawka, będzie adres bez-rekawka/.

W przypadku definiowania struktury linków dla kategorii możemy dodać również znacznik {parents} który dodaje rodzica kategorii do linku czyli np zamiast bez-rekawka otrzymujemy adres koszulki/bez-rekawka.

Zmiany w szablonie dla

Modyfikacja wymagana jest tylko w przypadku włączenia opcji ukrywania domyślnego języka sklepu z linków.

PrestaShop 1.6.XŁączymy się przez FTP i wybieramy folder themes/nazwa-tematu/js/modules/blocklayered/blocklayered.js - edytujemy plik, oraz odszukujemy w nim:
url: baseDir + 'modules/blocklayered/blocklayered-ajax.php',
zmieniamy na
url: baseDir + 'modules/blocklayered/blocklayered-ajax.php?id_lang='+x13LangId,

Od wersji 1.3.0 moduł automatycznie podmienia linki w tych elementach, zmiany wprowadzamy tylko w przypadku problemu z automatyczną podmianą linków do takich elementów jak logo (wszystkie wersje PrestaShop), czy tez ikonkę home w breadcumb dla PrestaShop 1.5 i 1.6.

W przypadku PrestaShop i ustawionej opcji ukrywania domyślnego języka sklepu, klikając na logo będziemy przenosili się na stronę sklepu z językiem domyślnym, zamiast wybranym. By poprawić ten problem musimy edytować szablon wg poniższego opisu.

PrestaShop 1.7.X
Łączymy się przez FTP i wybieramy folder themes/nazwa-tematu/templates/_partials/header.tpl - edytujemy plik.
odszukujemy w nim:
<a href="{$urls.base_url}">
    <img class="logo img-responsive" src="{$shop.logo}" alt="{$shop.name}">
</a>
zmieniamy na
<a href="{$logo_lang_url}">
    <img class="logo img-responsive" src="{$shop.logo}" alt="{$shop.name}">
</a>
Kolejny plik który musimy edytować na podobnej zasadzie znajduje się w themes/nazwa-tematu/templates/checkout/_partials/header.tpl - również edytujemy plik:
<a href="{$urls.base_url}">
    <img class="logo img-responsive" src="{$shop.logo}" alt="{$shop.name}">
</a>
zmieniamy na
<a href="{$logo_lang_url}">
    <img class="logo img-responsive" src="{$shop.logo}" alt="{$shop.name}">
</a>


PrestaShop 1.6.X oraz 1.5.X
Łączymy się przez FTP i wybieramy folder themes/nazwa-tematu/header.tpl - edytujemy plik:
odszukujemy w nim:
<a href="{if isset($force_ssl) && $force_ssl}{$base_dir_ssl}{else}{$base_dir}{/if}" title="{$shop_name|escape:'html':'UTF-8'}">
	<img class="logo img-responsive" src="{$logo_url}" alt="{$shop_name|escape:'html':'UTF-8'}"{if isset($logo_image_width) && $logo_image_width} width="{$logo_image_width}"{/if}{if isset($logo_image_height) && $logo_image_height} height="{$logo_image_height}"{/if}/>
</a>
zmieniamy na
<a href="{$logo_lang_url}" title="{$shop_name|escape:'html':'UTF-8'}">
	<img class="logo img-responsive" src="{$logo_url}" alt="{$shop_name|escape:'html':'UTF-8'}"{if isset($logo_image_width) && $logo_image_width} width="{$logo_image_width}"{/if}{if isset($logo_image_height) && $logo_image_height} height="{$logo_image_height}"{/if}/>
</a>

Uwagi

Moduł tworzy przekierowania 301 tylko z domyślnego formatu linków z PrestaShop (jeśli były wcześniej edytowane, przekierowania nie zostaną utworzone).


Moduł nie sprawdza konfliktów linków między grupami - np link do kategorii i podstrony może być taki sam (przy włączonych zaawansowanych ustawieniach modułu). W takiej sytuacji tylko 1den z linków zadziała.


W przypadku zmiany struktury linków w międzyczasie gdy moduł jest już zainstalowany, przekierowania 301 nie zostaną utworzone. Będą działały tylko z domyślnej struktury linków.