Skrypt strony www z ogłoszeniami online tylko dla profesjonalistów.
- Opis skryptu
- Możliwości skryptu
- Demo i zakup skryptu
- Wymagania
- Instalacja skryptu
- Konfiguracja skryptu
- Historia zmian (changelog)
- Znane problemy i ich rozwiązania
Opis skryptu
Skrypt Notice3 to nowoczesny i uniwersalny skrypt dla strony internetowej z ogłoszeniami online. Może zostać wykorzystany dla dowolnej kategorii ogłoszeń a także jako strona z bazą nieruchomości, miejsc noclegowych, ofert pracy albo jako katalog firm. Doświadczenie zdobyte przy tworzeniu innych skryptów w tym Notice2, Holmes2, Festa2 oraz od klientów prowadzących własne serwisy zaowocowało stworzeniem skryptu który najbardziej odpowiada potrzebom użytkowników i jego właściciela.
Dzięki Notice3 możesz stworzyć portal lokalny, ogólnopolski lub międzynarodowy. Rozbudowany panel administracyjny ułatwi Ci zarządzanie stroną i dostosowanie go do indywidualnych wymagań. Notice3 został napisany zgodnie z wymaganiami dotyczącymi optymalizacji i pozycjonowania strony www, co pozwala w krótkim czasie zdobyć wysoką pozycję w wyszukiwarkach internetowych.
Skrypt jest oparty o Symfony 5, jest zgodny z MCV, po stronie front endu został wykorzystany VUE oraz Bootstrap 5.
Skrypt Notice3 służy do zastosowań profesjonalnych, jako duży serwis z ogłoszeniami online. Dzięki budowie zgodnej z MVC i opartej na frameworku Symfony jest łatwy w dalszej rozbudowie. Cechuje się także bardzo dużą wydajnością.
Notice3 umożliwia między innymi:
- rejestrację użytkowników, logowanie i reset hasła, przydzielanie ról moderatora oraz administratora, formularze zabezpieczone przez reCAPTCHA
- logowanie przez konto Facebook i Google
- dodawanie i wyszukiwanie ogłoszeń, dodawanie ich do schowka,
- odpłatne wystawianie i promowanie, integracja z Przelewy24, PayPal, HotPay, TPay, Payu i Blue Media
- mapa Google z zaznaczeniem lokalizacji ogłoszenia
- system wewnętrznych wiadomości między użytkownikami
- prowadzenie bloga na stronie oraz dodawanie stron statycznych
- zarządzenie wielopoziomową listą kategorii oraz regionów
- dodanie filtrów dla danej kategorii (max do drugiego poziomu) np. w Samochody Osobowe: rocznik, przebieg, w Nieruchomości: ilość pięter, metraż
- możliwość zmiany języka strony (strona może być w jednym języku)
- wysyłkę mailingu do zarejestrowanych użytkowników lub do zapisanych w newsletterze
- możliwość zapisu do newsletteru
- wysyłkę wiadomości z formularzy kontaktowych
- podgląd statystyk serwisu w panelu admina wraz z wykresem
- generowanie sitemap (mapy strony)
- udostępnienie linku do kanału RSS FEED
- dodawanie komentarzy do ogłoszeń przez zalogowanych użytkowników
- dodawanie komentarzy do wpisów blogowych i stron profilu przez Facebooka
- przycisk do kontaktu przez Messenger na stronie ogłoszenia
- wygenerowanie własnej aplikacji PWA dla portalu
- dodawanie awatara i opisu na stronę profilu przez użytkowników
- ustawienie opłat zależnie od długości trwania ogłoszenia
- podejrzenie w panelu admina logów logowań, wysłanych maili, resetu hasła oraz wyświetleń ogłoszeń
- posiada czarną listę adresów email i adresów IP z których nie można dodać ogłoszenia oraz czarną listę słów kluczowych które zostaną usunięte z tytułu i treści ogłoszenia
- podpowiedzi do wyszukiwarki ogłoszeń
- możliwość ukrycia kontaktu w ogłoszeniu dla niezalogowanych
- klienci mogą zgłaszać naruszenia w ogłoszeniach
Demo i zakup skryptu
Demo skryptu można zobaczyć pod adresem https://notice3.itworksbetter.net
Dane do logowania do panelu admina: https://notice3.itworksbetter.net/admin
login: test
hasło: 1234
Demo wersji angielskiej strony https://notice3en.itworksbetter.net/
Dane do logowania do panelu admina w wersji angielskiej: https://notice3en.itworksbetter.net/admin
login: test
hasło: 1234
Skrypt jest dostępny do zakupu na https://sklep.itworksbetter.net/skrypty-stron-www/1-skrypt-ogloszeniowy-notice3.html
Przykładowe strony stworzone na tym skrypcie: petworld.pl, katalogofert.pl, lamusownia.pl, odsprzedaj.pl, gieldaokien.pl, trafnaokazja.pl, twojaoferta.com.pl
Wymagania skryptu
Notice3 został napisany w Symfony 5. Z tego względu ma wyższe wymagania niż inne skrypty ale jest też znacznie wydajniejszy. Klient który chce samodzielnie wykonać zmiany w serwisie musi posiadać bardzo dobrą znajomość PHP i JavaScript.
Wymagania serwera:
- PHP w wersji min. 8.1
- baza danych (np. MySQL, PostgreSQL, MongoDB)
- wiersz poleceń z dostępem do Composera
- możliwość ustawienia zadań crona poprzez komendy PHP
- możliwość zmiany katalogu na jaki ma wskazywać domena
- MOD Rewrite
- Symfony wymaga aby na serwerze było dostępne polecenie proc_open
Aby sprawdzić czy na Twoim hostingu skrypt będzie mógł zostać zainstalowany możesz sprawdzić czy jest możliwe zainstalowanie Symfony zgodnie z instrukcją pod adresem https://symfony.com/doc/current/setup.html
Obsługiwane hostingi:
- cyber_Folks,
- LH.pl (SSH dostępne od pakietu KIWI),
- smarthost.pl,
- kylos.pl (rekomendują VPS ze względu na czas wykonywania skryptu composera),
- dhosting (rekomendują EWH),
- OVH (oferta PRO, ale pamięć gwarantowana jest dopiero od oferty Performance1),
- zenbox (Hosting Ebiznes 25k lub Hosting profesjonalny),
- AttHost (w ustawieniach strony proszę nie zaznaczać „Odizoluj stronę”),
- aftermarket (od pakietu Biznes, żeby zmienić katalog na który wskazuje strona trzeba napisać do BOK)
- nazwa.pl (sugerują min. VPS Start)
Ze względu na to, że każda firma oferuje różne wersje hostingu, proszę zawsze upewnić się wcześniej czy hosting obsłuży projekt oparty o Symfony 5.
Hostingi na których powinno działać, choć konsultanci tego nie gwarantują:
- home.pl (SSH tylko od Biznes w górę, mało pamięci 256 lub 512 MB, niestandardowe dodawanie poleceń crona, poprzez odpowiednio nazwany plik PHP),
- hostinger (w podstawowej wersji za mało pamięci, max 512 MB, w wersji biznes działa, zobacz na dole strony „Znane problemy” jak przekierować domenę na katalog public),
- az.pl (za mało pamięci do aktualizacji composera, sugerują VPS)
- proserwer.pl – (pakiet PRO lub wyższy) – brak możliwości ustawienia zadania crona jako linia poleceń PHP, wymóg stworzenia controllera dla crona.
Nieobsługiwane hostingi:
- kei.pl (odpowiedź konsultanta: „Zwykły hosting nie spełni wymagań, jedynie VPS”),
- WEBD.pl (mają wyłączone proc_open),
Instalacja skryptu
Instalacja skryptu wygląda podobnie jak instalacja standardowego projektu stworzonego w Symfony 5. Rozbudowana dokumentacja frameworka znajduje się pod adresem https://symfony.com/
Po zakupie skryptu zostanie dostarczone archiwum z plikami. Należy je skopiować na serwer.
Domena powinna wskazywać na katalog /public/ w plikach skryptu. Jeśli np. wgrywasz pliki do katalogu /home/test/domains/domena.pl/public_html/ to ustaw żeby domena wskazywała na katalog /home/test/domains/domena.pl/public_html/public/
Plik .env to główny plik konfiguracyjny systemu, należy go skonfigurować przed rozpoczęciem używania strony:
APP_ENV – powinno mieć wartość „prod”
APP_SECRET – losowy ciąg znaków
MAILER_DSN – ścieżka wysyłki maili, domyślnie ma wartość „sendmail://localhost” czyli maile są wysyłane z localhost. Aby zmienić np na wysyłkę przez SMTP musimy ustawić:
MAILER_DSN=smtp://user:pass@smtp.example.com:port
Więcej informacji pod https://symfony.com/doc/current/mailer.html
Wypełniamy dane do połączenia do bazy danych (jeśli hasło zawiera znaki specjalne należy dać je w cudzysłowie):
DATABASE_HOST=127.0.0.1 DATABASE_PORT=3306 DATABASE_USER=root DATABASE_NAME=notice3 DATABASE_PASS='' DATABASE_SERVER_VERSION=5.7
Wersja serwera bazy danych jest polem wymaganym.
Jeśli na serwerze jest baza MariaDB to należy dodać prefiks „mariadb-” np „mariadb-10.3.23”.
Wersję można sprawdzić wywołując w bazie danych polecenie SELECT VERSION();
Więcej informacji pod https://symfony.com/doc/current/configuration.html
APP_DEMO – czy ma być włączone demo panelu admina, domyślnie powinno być ustawione na 0
APP_URL – adres URL witryny (używany m.in. w linkach w mailach o końcu wyświetlania ogłoszenia, nie powinien zawierać znaku / na końcu)
APP_LANG – kod języka strony (w wersji instalacyjnej en lub pl)
Po skonfigurowaniu pliku .env należy uruchomić następujące polecenie w konsoli do instalacji pakietów (pamiętaj żeby polecenie uruchamiać w PHP min. 8.1 i że musi być ta sama wersja w konsoli jaką ma ustawiona domena):
composer install
Jeśli na hostingu nie masz zainstalowanego composera możesz skorzystać z tej instrukcji:
curl -sS https://getcomposer.org/installer | php
Wtedy zamiast composer musisz wpisywać (pod „php” na niektórych hostingach trzeba podać pełną ścieżkę do php na serwerze):
php composer.phar install
Jeśli wyświetla problem z brakiem pamięci można wykorzystać poniższe polecenia:
php -d memory_limit=-1 composer.phar install
Jeśli pakiety się poprawnie zainstalowały przechodzimy do kolejnego kroku. Ale jeśli wystąpił błąd (np. z brakiem pamięci lub proces został uśmiercony, wyświetla „killed”) należy skontaktować się z administratorem serwera.
Następnie zapełniamy bazę danych poleceniem:
php bin/console doctrine:migrations:migrate
Następny krok do dodanie użytkownika z prawami administratora z poziomu konsoli poleceniem:
php bin/console app:create-user
Skrypt zapyta się o login, adres email oraz hasło. Adres email zostanie automatycznie ustawiony na adres email administratora.
Po tym możemy się zalogować do panelu admina dodając do URL naszej domeny /admin
Następnie zalecane jest skonfigurowanie kluczy do reCAPTCHA zgodnie z instrukcją
Konfiguracja crona:
Należy ustawić następujące zadania crona z PHP w wersji min 8.1
Raz dziennie po północy:
php [sciezka do strony]/bin/console cron:daily
Co 10 min:
php [sciezka do strony]/bin/console cron:10min
Konfiguracja skryptu
Zobacz także ogólną instrukcję https://blog.wyremski.pl/instrukcja-instalacji-i-konfiguracji-skryptow/ odnośnie ustawienia integracji z płatnościami itd.
Przekierowanie na https / www
W przypadku gdy strona korzysta z SSL należy w pliku public/.htaccess odkomentować (usunąć znak # z początku linii) te dwie linie:
RewriteCond %{HTTPS} !on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
A następnie w pliku .env ustawić APP_URL z https
Jeśli ustawiliśmy APP_URL z „www” na początku to w pliku public/.htaccess usunąć te linie:
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]
I zamiast nich wstawić:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Konfiguracja reCAPTCHA
Zobacz https://blog.wyremski.pl/instrukcja-instalacji-i-konfiguracji-skryptow/#uruchomienie_recaptcha
Zmiana języka strony
Skrypt może być uruchomiony w jednym języku. Pliki z tłumaczeniami znajdują się w katalogu /translations
Kategorie, regiony, filtry należy ręcznie przetłumaczyć w panelu admina.
Domyślny język można zmienić w pliku .env pod zmienną APP_LANG
Jeśli ustawisz inny język niż „pl” lub „en” pamiętaj o przetłumaczeniu adresów URL w kontrolerach (w plikach .php w katalogu /src/Controller)
Więcej informacji w dokumentacji https://symfony.com/doc/5.4/translation.html
Płatności
Aby poprawnie skonfigurować płatności przez Przelewy24, PayPal, HotPay, TPay, PayU lub Blue Media patrz https://blog.wyremski.pl/instrukcja-instalacji-i-konfiguracji-skryptow/#platnosci
Logowanie przez Facebook i Google
Aby na stronie była możliwość logowania przez Facebook lub Google należy stworzyć odpowiednie aplikacje na swoim koncie Facebook / Google.
Link do instrukcji dla logowania przez Facebook: https://blog.wyremski.pl/instrukcja-instalacji-i-konfiguracji-skryptow/#logowanie_fb
Jako adres URI do przekierowania proszę wpisać: https://nazwa-domeny/logowanie/fb
Link do instrukcji dla logowania przez Google: https://blog.wyremski.pl/instrukcja-instalacji-i-konfiguracji-skryptow/#logowanie_google
Jako adres URI do przekierowania proszę wpisać: https://nazwa-domeny/logowanie/google
Zdjęcia
Skrypt korzysta z biblioteki LiipImagineBundle do generowania miniatur zdjęć. Z tego też względu pierwsze wyświetlenie miniaturki może chwilę zająć (zależnie od szybkości serwera). Plik konfiguracyjny znajduje się w lokalizacji /config/packages/liip_imagine.yaml
Można w nim zmienić wymiary miniaturek zdjęć w ogłoszeniach oraz na liście wpisów blogowych. Można także dodać znak wodny do tych zdjęć zgodnie z https://symfony.com/bundles/LiipImagineBundle/current/filters/general.html#filter-watermark
Aby na serwerze opróżnić cache zdjęć należy wykonać polecenie:
php bin/console liip:imagine:cache:remove
Wtedy biblioteka będzie generować nowe miniaturki.
Skrypt wymaga aktualnej wersji biblioteki GD Library wspierającej format WEBP.
Więcej informacji pod adresem https://symfony.com/bundles/LiipImagineBundle/current/index.html
Aplikacja PWA
Skrypt jest wstępnie skonfigurowany pod aplikację PWA. Po instalacji skryptu można zmienić tytuł, kolor i inne dane aplikacji w pliku /public/manifest.json
Należy także podmienić ikonki w folderze /public/uploads/icons we wszystkich wymiarach. Można użyć generatora online do wygenerowania ikonek np. https://tools.crawlink.com/tools/pwa-icon-generator/
Po podmianie ikonek należy usunąć cache z telefonu/komputera.
W pliku offline.html można edytować tekst wyświetlany przy braku połączenia z Internetem.
Modyfikacje strony
Choć do obsługi strony wystarczy sama dobra znajomość poruszania się w Internecie to aby dokonać indywidualnych zmian w plikach należy posiadać wiedzę z zakresu PHP (najlepiej znać framework Symfony). Poniżej zamieszczam listę niektórych z częściej używanych poleceń.
Usuwanie cachu produkcyjnego (po np zmianach w szablonie)
php bin/console cache:clear --no-warmup -e prod
Tworzenie nowego kontrollera
php bin/console make:controller BrandNewController
Tworzenie nowej encji i aktualizacja bazy danych
php bin/console make:entity php bin/console make:migration php bin/console doctrine:migrations:migrate
Aktualizacja skryptu
Autor skryptu na prośbę klienta może wysłać najnowszą wersję skryptu, jednak to sam klient musi go zaktualizować.
Uwaga! Przed aktualizacją skryptu wykonaj kopię zapasową plików i bazy danych. Aktualizacja nadpisze wszystkie indywidualnie wykonywane modyfikacje. Wykonujesz aktualizację na własną odpowiedzialność!
Aby zaktualizować skrypt najpierw należy usunąć z serwera katalogi:
/bin/
/config/
/migrations/
/publis/assets/
/src/
/templates/
/translations/
Następnie z nowszej wersji skryptu wgrywamy na serwer wszystkie pliki i katalogi
Instalujemy od nowa biblioteki (w przypadku gdy np. dodano nowe pakiety) poleceniem:
composer install
Następnie wykonujemy aktualizację bazy danych (o ile została zaktualizowana) poleceniem:
php bin/console doctrine:migrations:migrate
I na koniec usuwamy cache:
php bin/console cache:clear --no-warmup -e prod
Historia zmian (changelog)
3.0.0 (23.08.2020) | Premiera skryptu |
3.0.1 (22.09.2020) | Aktualizacja pakietów, linki do podstron po angielsku, naprawienie drobnych błędów przy edycji ogłoszenia |
3.0.2 (24.09.2020) | Przetłumaczalne szablony maili, autofocus do pierwszych pól formularzy, naprawa problemu z przekierowaniem po zapisaniu podregionu lub podkategorii, naprawa ustawiania pozycji po edycji stron statycznych, możliwość ustawienia domyślnego regionu, adresu oraz telefonu w ustawieniach użytkownika |
3.0.3 (14.10.2020) | Wprowadzenie kanału RSS FEED, wyszukiwarki ogłoszeń w panelu administracyjnym oraz na liście użytkowników. Przy aktywacji konta przydzielenie wszystkich ogłoszeń z danego adresu email do użytkownika. Wprowadzenie adresów URL po polsku i angielsku. Aplikacja PWA. |
3.1.0 (23.10.2020) | Optymalizacja ładowania kategorii i regionów. Możliwość dodawania „podobnego ogłoszenia”. Alfabetyczne układanie kategorii, regionów oraz stron statycznych w panelu administracyjnym. 3 nowe pola na kody reklam. Automatyczne generowanie Sitemap (przez zadania crona). Możliwość komentowania ogłoszeń, profilów, wpisów blogowych przez Facebooka. Przejście z jQuery Lazy do Vue Lazy. Wyświetlanie liczby ogłoszeń w kategoriach. |
3.1.1 (19.11.2020) | Poprawki w generowaniu sitemap. Usunięcie zbędnych tokenów. Uporządkowanie helperów klas i wspólna klasy do captchy oraz do maili. Możliwość dodawania administratorów z poziomu konsoli. |
3.2.0 (03.12.2020) | Możliwość dodawania awatara do konta użytkownika oraz opisu na stronę profilu. Możliwość ustawienia opłat w zależności od długości trwania ogłoszenia. Integracja z płatnościami HotPay. |
3.3.0 (12.01.2021) | Natywne lazyload do obrazków. Udostępnianie ogłoszeń przez WhatsApp. Logi logowania użytkowników, wysłanych maili i resetu hasła w panelu admina. Kolejkowanie wysyłki maili. Wysyłka mailingu z panelu admina. Możliwość edycji i usuwania ogłoszeń dodanych przez niezalogowanych użytkowników. Poprawki wizualne. Zaznaczanie naraz wielu ogłoszeń i użytkowników w panelu admina. Breadcrumbs (nawigacja okruszkowa) na liście ogłoszeń. |
3.3.1 (11.02.2021) | Aktualizacja pakietów. Drobne poprawki funkcjonalności i stylów CSS na mobile. Micro dane dla ogłoszeń. |
3.3.2 (01.03.2021) | Wyświetlanie ceny zależnie od kategorii (max 2 poziom kategorii). |
3.3.3 (06.05.2021) | Możliwość sortowania ogłoszeń. Poprawa dostępności (dodanie atrybutów aria). Poprawa jakości kodu PHP i JS. Odseparowanie klas PHP z formularzami. Wprowadzenie BaseController. |
3.3.4 (19.05.2021) | Zmiany w sortowaniu ogłoszeń. Własny skrypt resetu hasła. Zmiana wyglądu listy ogłoszeń na mobile. Możliwość ustawiania tytułu SEO dla kategorii. Poprawki przy ładowaniu kategorii na liście ogłoszeń. |
3.3.5 (28.06.2021) | Drobne poprawki w sortowania i filtrowaniu ogłoszeń. Aktualizacja do Symfony 5.2 |
3.4.0 (05.07.2021) | Poprawki w ładowaniu kategorii i filtrów, w CSS oraz w microdata. Ikony do przeglądarek. Generowanie miniaturek w WEBP. Optymalizacja zapytań do bazy danych. Zmiana slajdera z OWL na Swiper. |
3.4.1 (07.07.2021) | Wspólne ustawienia waluty do płatności. Zmiana slajdera pełnoekranowego. Możliwość logowania przez konto Facebook i Google. |
3.4.2 (12.08.201) | Poprawki w wyświetlaniu filtrów, zapamiętywanie ich widoczności. Zmiana wyglądu maili. Zapisywanie liczby wyświetleń ogłoszenia. Style dla drukarek. Wykres statystyk w panelu administracyjnym. Zgłaszanie naruszeń w ogłoszeniach. Czarna lista adresów email, IP i słów kluczowych. |
3.5.0 (24.08.2021) | Aktualizacja do Symfony 5.3. Przejście z Bootstrap 4 do Bootstrap 5. |
3.5.1 (19.09.2021) | Poprawki nazw zmiennych. Drobne poprawki wizualne. |
3.5.2 (21.10.2021) | Komunikat o Cookie. Wartości filtrów w adresie URL po przecinku. Dodanie indeksów do bazy danych. Usuwanie logów płatności. |
3.5.3 (28.10.2021) | Aktualizacja klas uwierzytelniania do Symfony 5.3 |
3.5.4 (15.11.2021) | Zmiany w slajderze ogłoszenia. Link do edycji ogłoszeń dla moderatorów. Poprawione linki do udostępniania w mediach społecznościowych. Dodanie przycisku do przewijania na górę strony. Przejście na Vue 3. |
3.5.5 (10.12.2021) | Dodanie nowych indeksów w bazie danych. |
3.6.0 (03.01.2022) | Moduł newsletteru. Lista zapisanych do newsletteru w panelu administracyjnym. Podpowiedzi do wyszukiwarki. Możliwość ukrycia danych kontaktowych ogłoszenia dla niezalogowanych. |
3.6.1 (14.04.2022) | W nawigacji okruszkowej na liście ogłoszeń wszystkie poziomy regionów i kategorii. Avatar w pasku menu. |
3.6.2 (22.04.2022) | Aktualizacja pakietów. Optymalizacja kodu HTML. Canonical na liście ogłoszeń. Numer strony w title. Poprawa breadcrumb. Lepsze podpowiedzi do wyszukiwarki na stronie głównej. |
3.6.3 (03.10.2022) | Poprawa płatności Przelewy24. Poprawa wyświetlania paginacji i strony ogłoszenia na urządzeniach mobilnych. |
3.6.4 (25.10.2022) | Aktualizacja Bootstrap, FontAwesome, Axios i Swiper. Poprawa wyświetlania zdjęć w ogłoszeniach. |
3.6.5 (30.01.2023) | Poprawki w wyszukiwaniu ofert i użytkowników. |
3.6.6 (05.02.2023) | Usunięcie systemu płatności DotPay. Przebudowa klas płatności. |
3.7.0 (22.02.2023) | Wprowadzenie płatności TPay, Payu oraz Blue Media. Możliwość zaznaczania wielu filtrów w panelu admina. |
3.7.1 (12.04.2023) | Aktualizacja do Symfony 5.4. Aktualizacja Recipes w Symfony. Poprawa tłumaczeń, SEO oraz sformatowanie kodu JS. Poprawa microdata dla ogłoszeń. |
3.7.2 (15.04.2023) | Czarna lista używana także w formularzu kontaktowym ogłoszenia. Rozdzielenie kodu w body za tagiem otwierającym i przed zamykającym. Zapisywanie daty uruchomienia crona. Zmiana wyglądu listy ogłoszeń. Dodanie nowych miejsc reklamowych. Możliwość podania całej domeny dla czarnej listy adresów email. Wyświetlanie liczby rekordów w panelu admina nad paginacją. Przebudowa reCAPTCHA. |
3.7.3 (26.04.2023) | Poprawa microdata i „Bez ceny”. Paginacja ogłoszeń w Sitemap. Zapisywanie prawdziwej daty zakończenia wyświetlania ogłoszenia. Wybór czy wyświetlać liczbę wyświetleń ogłoszenia. |
3.7.4 (20.05.2023) | Poprawa microdata w ogłoszeniach. Możliwość wyszukiwania w logach wysłanych maili. |
3.8.0 (16.08.2023) | Nowa minimalna wersja PHP: 8.1. Wprowadzenie alternatywy dla deprecated getDoctrine(). Upgrade Annotations to Attributes. Aktualizacja bibliotek CSS, JS oraz pakietów composera. Dodanie aria-label do przycisków. Natywne komentarze do ogłoszeń. Poprawa wyglądu na mobile. Kontakt przez Messenger. |
3.8.1 (28.08.2023) | Poprawa błędów zwracanych podczas logowania przez FB i Google. Nowe ikony kategorii. Aktualizacja UserPasswordEncoderInterface. Dodanie atrybutu title do wszystkich linków. |
3.8.2 (31.08.2023) | Mapa Google na stronie z ogłoszeniem. System wewnętrznych wiadomości dla zalogowanych użytkowników. Dodanie constraints do klas PHP formularzy. |
Znane problemy i ich rozwiązania
Aby włączyć wyświetlanie błędów na ekranie należy w pliku .env zmienić APP_ENV=prod
na
APP_ENV=dev
W wersji produkcyjnej należy wrócić do „prod”. Logi błędów można także podejrzeć w pliku /var/log/dev.log oraz /var/log/prod.log
Przy instalacji pakietów wyświetla „requires ext-zip * -> it is missing from your system. Install or enable PHP’s zip extension.”
Należy z konsoli zainstalować:
sudo apt-get install php8.1-zip
(gdzie 8.1 to wersja PHP)
Jeśli wyświetla bład z „ext-xml” należy uruchomić:
sudo apt-get install php-xml
Przy próbie wysłania maila (np. przy aktywacji ogłoszenia, rejestracji) wyświetla błąd.
Domyślnie w pliku .env jest ustawiona wysyłka maili z localhost:
MAILER_DSN=sendmail://localhost
Jeśli Twój serwer tego nie wspiera musisz ustawić wysyłkę przez np. SMTP:
MAILER_DSN=smtp://user:pass@smtp.example.com:port
Więcej informacji pod https://symfony.com/doc/current/mailer.html
Przy próbie migracji bazy danych wyświetla „An exception occured in driver: could not find driver with mysql”
Należy zainstalować sterownik mysql:
sudo apt install php-mysql
Symfony Make:Migration: The metadata storage is not up to date, please run the sync-metadata-storage command to fix this issue
W pliku konfiguracyjnym /config/packages/doctrine.yaml podana została nieprawidłowa wersja serwera bazy danych. Jeśli na serwerze jest baza MariaDB to należy dodać prefiks „mariadb-” np „mariadb-10.3.23”. Więcej informacji pod adresem https://github.com/doctrine/DoctrineMigrationsBundle/issues/337#issuecomment-645390496
Przekierowanie domeny na katalog public (np. Hostinger)
Niektóre hostingi nie umożliwiają przekierowania domeny na dany katalog. Należy do nich np. Hostinger. Aby przekierować w tej sytuacji domenę na katalog public należy w katalogu public_html stworzyć plik .htaccess z takim kodem (podmieniając nazwę domeny na własną):
RewriteEngine on RewriteCond %{HTTP_HOST} ^domain.com$ [NC,OR] RewriteCond %{HTTP_HOST} ^www.domain.com$ RewriteCond %{REQUEST_URI} !public/ RewriteRule (.*) /public/$1 [L]
Problem z polskimi znakami w bazie danych
Problem pojawił się po imporcie gotowej bazy danych z jednego hostingu na hosting home.pl. Stare dane pobierane z bazy danych nie wyświetlały poprawnie polskich znaków. Rozwiązaniem okazało się dodanie do pliku config/packages/doctrine.yaml
doctrine:
dbal:
options:
1002: „SET NAMES 'UTF8′ COLLATE 'utf8_unicode_ci'”
Nie tworzą się zdjęcia, nie zostały załadowane style bibliotek np. edytora wizualnego
Skrypt musi mieć prawa dostępu do zapisu w folderze public. Zarówno composer przy instalacji pakietów jak i później Symfony przy uruchomionej stronie. Należy ustawić prawa dostępu 0777 dla folderu /public.
Strona nie działa, wyświetla błąd: require(): open_basedir restriction in effect.
Błąd może się pojawić na hostingach AttHost po zaznaczeniu „Odizoluj stronę” w ustawieniach strony www. Należy ją odznaczyć.