Zawartość artykułu
Moduł do bloga w PrestaShop
Problem pojawia się w przypadku zakupionego szablonu PrestaShop (w naszym przypadku PrestaShop 8.1.7) wraz z wbudowanym modułem smartblog
do blogowania.
Jak wiadomo blog w sklepie PrestaShop jest dość dobrym pomysłem aby pomagać w jego orgranicznym pozycjonowaniu w wyszukiwarkach (SEO). Może być też dla klientów po prostu podręcznym źródłem wiedzy na temat asortymentu Twojego sklepu internetowego.
Blog poza dedykowaną stroną ze wszystkimi wpisami posiada hook
(rodzaj widgetu lub zaczepu/slotu) na stronie głównej. Są tam prezentowane zazwyczaj 3 najnowsze wpisy. W formie boxów – zdjęcie, tytuł, zajawka itd.
Objawy awarii
Na początku instalacji – wszystko działa prawidłowo. Wpisy-atrapy w blogu dołączonym do demo szablonu działają prawidłowo:
Jednak po dalszej konfiguracji sklepu i włączeniu „przyjaznego adresu URL” dziale „Ruch”:
zdjęcia w module na stronie głównej przestają się wyświetlać:
Co gorsza także w detalach każdego wpisu nie widać zdjęcia wyróżniającego.
Wszystkie te zdjęcia linkują do adresu:
http://[domena-sklepu]/blog/[rozmiar-zdjęcia-ustawienia-modułu]/[tytuł-wpisu].jpg
Czyli np.:
https://pskrk.com/blog/4-single-default/ways-to-deodorize-vegetables-and-fruits.jpg
Wszystkie rozmiary zdjęć – tutaj
4-single-default
określa się w ustawieniach modułusmartblog
W zasadzie pod kątem SEO jest to korzystne rozwiązanie. Nazwa obrazka jest sprzężona z tytułem artykułu i wpływa korzystnie na pozycjonowanie.
Jeśli znowu wyłączyć przyjazne linki w sklepie – obrazki działają.
Reset modułu smartblog nic nie daje. Wyłączenie SSL także nic. Wskazówką jest właśnie „przyjazny adres URL” w dziale „Ruch”.
Naprawa
Naprawa jest stosunkowo łatwa do przeprowadzenia.
Kopia bezpieczeństwa pliku .htaccess
Wejdz do katalogu głównego Twojego sklepu (np. poprzez FTP) i wykonaj kopię bezpieczeństwa znajdujacego sie tam pliku:
.htaccess
Np. skopiuj go pod nową nazwą:
.htaccess_kopia
Plik zaczyna nazwę od kropki. W systemach unixowych tak zazwyczaj są oznaczone pliki ukryte. Może być przez to niewidoczny w Twoim programie FTP. Upewnij się, że program wyświetla pliki ukryte.
Pobranie kodu do nadpisywania lików obrazków
Otwórz plik:
modules/smartblog/htupdate.php
Następnie skopiuj z niego zawartość typu:
RewriteRule ^blog/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}modules/smartblog/images/$1$2$3.jpg [L] RewriteRule ^blog/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}modules/smartblog/images/$1$2.jpg [L]
Następnie wklej go w pliku „.htaccess” na jego końcu albo przed dyrektywą dotyczącą obrazków:
# Images
Zauważ, że w pliku PHP z którego kopiujesz te dyrektywy do .htaccess wpisy kończą się znakiem „’;” – jest to nic innego jak zamknięcie zmiennej PHP (stringa). Należy wkleić to do pliku .htaccess bez tych znaków, bo inaczej Twój serwer może zwrócić błąd 500
Po tej stosunkowo nietrudnej modyfikacji – strona główna po odświeżeniu powinna wyświetlać miniatury bloga. Tak samo zdjęcia w treści wpisu danego artykułu.
Uwaga! W zależności od wersji modułu – kod do skopiowania może być inny. W naszym artykule wersja modułu smartblog
to: 4.1.1
grafika: unsplash.com