Smart Favicon: konfiguracja i pomoc
Szybki start
- Zainstaluj ZIP Smart Favicon przez "Modules > Module Manager > Upload a module", a następnie wybierz konkretny sklep.
- Otwórz "Favicon > Configuration" i pozostaw "Enable Smart Favicon" włączone.
- Prześlij "Light-mode favicon" i opcjonalnie "Dark-mode favicon", kliknij "Save" i sprawdź podglądy ikon.
- Sprawdź "Show count badge on the favicon", "Count calculation", "Cart items" i "Maximum displayed count".
- Skonfiguruj "Attention nudge when the tab is in the background" i "Nudge messages"; włącz "Prefix the tab title with the count" tylko w razie potrzeby.
- W przypadku źródła PNG/WebP sprawdź "Generate the full icon set" i "Emit a web manifest"; pozostaw nadpisywanie w globalnym katalogu głównym wyłączone, chyba że ten sklep ma nim zarządzać.
- W zwykłej przeglądarce dodaj, zmień i usuń pozycje koszyka, zmień schemat kolorów, przejdź do innej karty i wróć, a następnie sprawdź plakietkę, tytuł i zachowanie ikony.
Wymaga PrestaShop 1.6.0.4 lub nowszego oraz PHP 7.1 lub nowszego.
Generowanie zestawów ikon rastrowych wymaga GD z odpowiednim dekoderem PNG/WebP; oczyszczanie SVG korzysta z DOM.
Instrukcja konfiguracji
Instalacja Smart Favicon
Wymagania
Wymaga PrestaShop 1.6.0.4 lub nowszego oraz PHP 7.1 lub nowszego.
Funkcje przeglądarki wymagają JavaScript i standardowych hooków nagłówka oraz multimediów aktywnego motywu.
Prześlij ZIP wydania przez "Modules > Module Manager > Upload a module" i zainstaluj moduł. Otwórz "Favicon > Configuration" lub kliknij "Configure" w "Module Manager". W multistore wybierz konkretny sklep przed edycją zwykłych ustawień.
"Enable Smart Favicon" jest początkowo włączone. Plakietka licznika i przypomnienie w tle również są włączone. "Prefix the tab title with the count" jest początkowo wyłączone. Bez przesłanej ikony moduł może wykorzystać istniejącą ikonę favicon sklepu na potrzeby plakietki.
Przesyłanie jasnej i ciemnej ikony
Pliki ikon
Ustaw "Light-mode favicon" i "Dark-mode favicon". Możesz przesłać ICO, PNG, SVG lub WebP. Jako podstawową ikonę zastosuj kwadratowy PNG o wymiarach co najmniej 32 na 32 piksele. Użyj większego źródła rastrowego, jeśli chcesz wygenerować większe ikony aplikacji.
Limit przesyłania wynosi 1 MB. Obrazy PNG/WebP nie mogą przekraczać 1024 pikseli w żadnym wymiarze. Pliki SVG wymagają viewBox lub jawnej szerokości i wysokości; mechanizm oczyszczania odtwarza zaakceptowany SVG przed zapisaniem. Nieobsługiwane lub niebezpieczne pliki są odrzucane.
Kliknij "Save" i sprawdź "Current light icon" oraz "Current dark icon". Przesłane pliki są zapisywane w img/mprfavicon/ pod nowymi nazwami, aby nie używać ponownie poprzedniego adresu URL z pamięci podręcznej. Serwer WWW musi mieć prawo zapisu w tym katalogu.
Użyj "Remove light icon on save" lub "Remove dark icon on save", aby usunąć wariant. Te przełączniki są początkowo wyłączone.
Zachowanie schematów kolorów
Przeglądarki obsługujące reguły CSS media queries dla ikon favicon wybierają odnośniki jasny/ciemny przez prefers-color-scheme. Moduł reaguje też na zmiany systemowego schematu kolorów. Schemat bez własnego przesłanego pliku korzysta z natywnej ikony favicon sklepu. Gdy nie przesłano żadnego wariantu, moduł nie dodaje zastępczych odnośników schematów; aktywna plakietka nadal może generować zarządzaną ikonę.
Generowanie ikon przeglądarki i aplikacji
| Ustawienie | Domyślnie | Co zrobić |
|---|---|---|
| "Generate the full icon set" | Włączone | Prześlij źródło PNG lub WebP. Ten generator nie potrafi przeskalować ICO ani SVG. |
| "Emit a web manifest" | Włączone | Pozostaw włączone, aby używać minimalnego manifestu tego modułu. Wyłącz, jeśli motyw lub moduł PWA już go dostarcza. |
| "Write the generated favicon.ico to the global root" | Wyłączone | Włącz tylko wtedy, gdy ten sklep ma zarządzać wspólnym plikiem /favicon.ico instalacji. |
Generator używa pierwszego źródła rastrowego, które można zdekodować, sprawdzając wariant jasny przed ciemnym. Tworzy pliki PNG o rozmiarach 16, 32, 48, 180, 192, 256 i 512 pikseli oraz ICO z wieloma rozmiarami. Witryna sklepu może emitować odnośniki ikon 16/32/48, ikonę Apple touch i ikony 192/512 manifestu. Moduł udostępnia manifest z typem zawartości wymaganym dla manifestu internetowego.
Generowanie obrazów wymaga GD z odpowiednim dekoderem PNG/WebP. Jeśli panel administracyjny informuje o potrzebie źródła rastrowego, prześlij PNG lub WebP i zapisz ponownie.
Globalna ikona główna w multistore
Instalacja ma jeden plik favicon.ico w katalogu głównym. Może on wpływać na każdy sklep współdzielący ten katalog. Sklep, który włączy nadpisywanie, staje się jego właścicielem. Inny sklep nie może zastąpić ani przywrócić pliku właściciela za pomocą własnych ustawień.
Moduł tworzy kopię oryginału przed jego zastąpieniem. Właściciel może wyłączyć przełącznik i zapisać, aby zlecić przywrócenie. W "All shops" opcja "Release global favicon.ico ownership" zwalnia współdzieloną własność i podejmuje próbę przywrócenia. Zwykłe ustawienia sklepu edytuje się w kontekście konkretnego sklepu.
Jeśli ktoś zmienił główną ikonę poza modułem, odzyskiwanie zachowa ten nowszy plik. Jeśli tworzenie kopii, obsługa własności, blokowanie lub przywracanie się nie powiedzie, moduł zachowa stan odzyskiwania i zgłosi problem. Nie usuwaj kopii zapasowej, aby usunąć błąd.
Wyszukiwarki same decydują, którą ikonę wyświetlają i kiedy ją odświeżają.
Konfiguracja ikony panelu administracyjnego
"Custom back-office favicon" jest początkowo włączone. Prześlij "Back-office favicon", aby użyć osobnej ikony administracyjnej, lub pozostaw puste, aby ponownie użyć jasnej ikony. Jeśli żadna nie istnieje, pozostaje dostępna natywna ikona administracyjna.
Sprawdź "Current admin icon" po zapisaniu. Użyj "Remove admin icon on save", aby usunąć osobny plik. Ikona panelu administracyjnego nie wyświetla plakietki koszyka witryny sklepu.
Konfiguracja plakietki licznika i źródeł
| Ustawienie | Domyślnie | Działanie |
|---|---|---|
| "Show count badge on the favicon" | Włączone | Rysuje wybraną dodatnią wartość licznika na płótnie o rozmiarze 64 pikseli. Plakietka znika przy zerze. |
| "Badge background" | #dc3545 |
Kolor dymka. |
| "Badge text" | #ffffff |
Kolor licznika. |
| "Badge corner" | "Top right" | Wybierz dowolny z czterech narożników. |
| "Maximum displayed count" | 9 | Wyższe wartości są domyślnie wyświetlane jako 9+. Ustaw 0, aby wyłączyć limit. Dozwolone wartości to od 0 do 999. |
| "Count calculation" | "Sum of all enabled sources" | Wybierz sumę lub "A single priority source". |
| "Priority source" | "Cart items" | Używane tylko w trybie pojedynczego źródła priorytetowego. |
| "Cart items" | Włączone | Włącza wbudowane źródło licznika koszyka. |
Inne moduły mogą dodawać przełączniki źródeł. Wyłącz źródła, których nie chcesz zliczać. Plakietka, prefiks licznika i domyślne przypomnienie używają wybranej łącznej wartości, więc inne włączone źródło może utrzymywać je aktywne przy pustym koszyku.
W PrestaShop 1.7/8/9 kod przeglądarki nasłuchuje zdarzeń koszyka. W PrestaShop 1.6 obserwuje starszy licznik koszyka i opakowuje obsługiwane metody ajaxCart. Przetestuj dodawanie, usuwanie i zmiany ilości w swoim motywie.
Konfiguracja tytułu karty
Prefiks licznika
Włącz "Prefix the tab title with the count", jeśli chcesz widzieć licznik w tytule. "Title format" ma początkowo wartość ({count}) {title}. Zachowaj {title} w formacie, aby tytuł strony pozostał widoczny. Pusty format lub format bez {title} powoduje powrót do wartości domyślnej.
Przypomnienie w tle
"Attention nudge when the tab is in the background" jest początkowo włączone. Wypełnij "Nudge messages" dla każdego języka sklepu, po jednej wiadomości na wiersz. Dostarczone angielskie wiadomości to „🛒 Still thinking it over?” i „Your items are waiting”; dostarczone tłumaczenia są używane tam, gdzie są dostępne.
"Rotation interval" wynosi początkowo 4 sekundy i jest ograniczone do zakresu od 2 do 60 sekund. Domyślne przypomnienie działa, gdy karta nie ma fokusu, a wybrana wartość licznika jest dodatnia. Powrót do karty zatrzymuje przypomnienie i przywraca zwykły tytuł, łącznie z bieżącym prefiksem licznika, jeśli jest włączony.
Zmiany tytułu zachodzą w JavaScript po załadowaniu strony. Tytuł renderowany po stronie serwera pozostaje bez zmian. Kod pomija wykryte boty i przeglądarki zgłaszające navigator.webdriver, dlatego testuj zarówno w zwykłej sesji przeglądarki, jak i narzędziami automatycznymi.
Opcjonalne kampanie angażujące
Otwórz "Favicon > Engagement campaigns", aby dodać własne reguły angażowania. Podstawowe ustawienia plakietki, schematu i tytułu nie wymagają kampanii.
Ustaw "Name", wybierz "Trigger", a następnie "Match mode" jako "All conditions" lub "Any condition". Korzystaj z dostępnych w kreatorze list warunków i działań. Ustaw "Minimum re-entry delay on this page" w milisekundach; początkowo wynosi 0 i resetuje się przy nawigacji. "Priority" zaczyna się od 0, a wyższe wartości wygrywają wyłączne kanały działań. Dopuszczalny zakres wynosi od -1000 do 1000. Nowe kampanie są początkowo wyłączone; po sprawdzeniu reguły włącz "Enabled" i kliknij "Save".
Kampanie należą do wybranego sklepu. Przetestuj wyzwalacz i sprawdź nakładanie się z domyślnymi działaniami tytułu i favicon. Wyłącz kampanię na liście, jeśli chcesz zachować jej konfigurację bez jej uruchamiania.
Źródła plakietek dla programistów
Rejestracja włączonego źródła
Zarejestruj moduł dostawcy w actionRegisterFaviconBadge i zwróć deskryptor:
public function hookActionRegisterFaviconBadge($params)
{
return [
'id' => 'tickets',
'label' => $this->l('Unread replies'),
'script' => 'modules/yourmodule/views/js/source.js',
];
}
Identyfikatory źródeł używają małych liter, cyfr, _ lub -, maksymalnie 40 znaków. Nie używaj zarezerwowanego identyfikatora cart. Ścieżka skryptu jest opcjonalna i musi być względna wobec katalogu głównego sklepu. Moduł tworzy przełącznik dla zadeklarowanego źródła; dodane źródła są początkowo włączone.
Zarejestruj odpowiedni licznik w skrypcie:
window.mprFavicon.registerSource('tickets', function () {
return 3; // A number or a Promise resolving to a number.
});
window.mprFavicon.update();
Wywołaj update() po zmianie wartości źródłowej. Wiążąca jest serwerowa lista włączonych źródeł. Samo zarejestrowanie dowolnego źródła JavaScript nie dodaje go do tej listy ani nie omija wyłączenia źródła przez sprzedawcę. Ten sam identyfikator źródła musi być zadeklarowany, włączony i zarejestrowany w czasie działania.
Weryfikacja i rozwiązywanie problemów
Pierwsza kontrola
- Zapisz ikony i sprawdź ich podglądy w panelu administracyjnym.
- Otwórz sklep w zwykłej przeglądarce, dodaj produkt i sprawdź plakietkę.
- Zmień ilość, usuń produkt i potwierdź, że plakietka znika.
- Przełącz systemowy tryb jasny/ciemny i sprawdź ikonę bazową.
- Przy dodatnim liczniku przejdź do innej karty, sprawdź przypomnienie i wróć, aby potwierdzić przywrócenie tytułu.
- Jeśli są włączone, przetestuj osobno prefiks licznika, ikonę administracyjną, wygenerowane odnośniki i manifest.
Typowe problemy
- Przesłana ikona wygląda na niezmienioną. Wymuś odświeżenie i ponownie otwórz kartę. Przeglądarki buforują favicon niezależnie od zawartości strony.
- Plakietka nie aktualizuje się w PrestaShop 1.6. Sprawdź, czy motyw ma obsługiwany licznik bloku koszyka lub integrację
ajaxCart. - Własne źródło jest ignorowane. Sprawdź jego deskryptor PHP, przełącznik sprzedawcy, identyfikator źródła i rejestrację w czasie działania.
- Brakuje zestawu ikon. Sprawdź źródło rastrowe, obsługę GD i możliwość zapisu w katalogu
img/mprfavicon/. ICO/SVG nadal mogą być ikonami źródłowymi, ale nie mogą posłużyć do wygenerowania zestawu. - Nie można zmienić głównej ikony. Przeczytaj komunikat o własności, przejdź do sklepu właściciela i sprawdź uprawnienia systemu plików. Użyj działania zwalniającego w "All shops", gdy chcesz zwolnić globalną własność.
- Podczas automatyzacji nic się nie dzieje. Kod celowo pomija WebDriver i wykryte identyfikatory user agent botów. Sprawdź wynik ręcznie.
- Brakuje infrastruktury. Otwórz "Favicon > Integrity".
Odinstalowanie
Wyłącz nadpisywanie pliku w katalogu głównym w sklepie właściciela i potwierdź odzyskanie przed usunięciem modułu, jeśli chcesz jawnie sprawdzić przywrócenie. Odinstalowanie także podejmuje próbę odzyskania pliku głównego i usuwa zwykłą konfigurację oraz pliki favicon, gdy to przejście się powiedzie.
Jeśli odzyskanie nie może się zakończyć, odinstalowanie zachowuje konfigurację i kopie zapasowe potrzebne do ponowienia próby oraz zapisuje problem w logu. Plik zastąpiony zewnętrznie zostaje zachowany. Po odinstalowaniu sprawdź /favicon.ico i wszelkie zgłoszone błędy odzyskiwania; nie zakładaj, że każda operacja na systemie plików się powiodła.
Pytania
Brak pytań o ten moduł
Zapytaj o instalację, zgodność lub konfigurację. Odpowiedzi pojawią się tutaj.
Znane problemy
13
Znacznik koszyka używał niewłaściwej ikony motywu
Główna favicona mogła pozostać zablokowana po usunięciu sklepu
Zapisane kampanie zaangażowania mogły nie działać
Usunięte umiejscowienia powracały automatycznie
Zapisz i zostań nie zapisywało ustawień
Odinstalowanie mogło usuwać dane odzyskiwania favicony
Kopie zapasowe favicony mogły stać się niedostępne
Usunięcie sklepu mogło blokować zmiany głównej favicony
Menu ustawień otwierało nieistniejącą stronę
Wspólne kontrole instalacji pomijały moduł
Moduł nie ładował się na PrestaShop 1.7
Wymiana favicony mogła utracić poprzednią ikonę
Pliki ikon mogły kolidować między sklepami
Zgłoszenia funkcji
9
Zaimplementowane
Favicony dla jasnego i ciemnego motywu
Wskaźniki koszyka na żywo
Komunikaty przyciągające uwagę na karcie
Ikony dla urządzeń i wyszukiwarki
Zastępowanie głównego faviconu sklepu
Favicon panelu administracyjnego
Ekrany pomocy i konserwacji
Wyłączanie komunikatów na karcie według języka
Kreator kampanii angażujących
Dziennik zmian
v1.1.12025-08-04
- Hardening: multistore-safe favicon.ico override with merchant-file protection and verified backup/restore.
- Per-shop icon-set files and a grace period for cached manifests.
- PHP 7.1 WebP compatibility and scheme-qualified sized icon links (192 px link, 256 px ICO entry).
- Automatic icon-set generation right after upgrading.
Starsze wersje
v1.1.02025-07-17
- Search-engine icon set generated from one PNG/WebP upload: 16/32/48 px link icons, 180 px Apple touch icon, 192/512 px web-app icons and a web manifest served with the correct content type.
- Multi-size favicon.ico with an optional shop-root override — the file Bing, DuckDuckGo, Yahoo and search-result icon fetchers read — including one-time backup and automatic restore on disable or uninstall.
- Custom back-office favicon (dedicated upload or light-icon fallback) so multiple open shop admins are distinguishable.
- Back-office warnings when the icon set needs a raster source or the shop root is not writable.
v1.0.02025-06-12
- Initialfree Smart Favicon release for PrestaShop 1.6-9.
- InitialLight and dark favicon served per visitor color scheme (declarative media-query links plus a live JavaScript fallback).
- InitialLive cart count badge drawn onto the favicon with configurable corner, colors and 9+ cap; hidden at zero.
- InitialTab-title count prefix and polite blur-time nudge messages per language, restoring the exact original title on focus.
- InitialPluggable badge-source registry: JavaScript API plus the actionRegisterFaviconBadge hook with per-source toggles and sum/priority modes.
- InitialSEO-safe by design: server-rendered title untouched, JavaScript-only after load, bots excluded.
Demo
Przetestuj pełny moduł
- Gotowy sklep demo Poznaj gotowy sklep demo w przeglądarce.
- Bez rejestracji Bez konta, adresu e-mail ani domeny sklepu.
Otwierając to demo, akceptujesz regulamin wersji demo oraz politykę prywatności.