Wpis ten dotyczy skryptów: Corta, Cuadro, Demoty2, Festa2, Holmes2, JobNotice, MotoNotice oraz częściowo Notice3. Wpis jest na bieżąco aktualizowany.
Spis treści:
- Wymagania techniczne
- Instalacja skryptu
- Cron
- Panel Administracyjny
- Uruchomienie skryptu
- Po skopiowaniu plików na serwer (lub już po instalacji) wyświetla się biała strona
- Problem z linkami do podstron (m.in. do logowania, rejestracji)
- Tryb testowy Panelu Administracyjnego
- Reset loginu i hasła do Panelu Administracyjnego
- Problem z captcha na stronie
- Uruchomienie SSL
- Uruchomienie reCAPTCHA
- Własny szablon w skrypcie
- Wyświetlanie błędów PHP
- Język w skrypcie
- Integracja z mediami społecznościowymi
- Płatności
- Uruchamianie płatności przez system Dotpay
- Uruchamianie płatności przez system PayPal
- Uruchamianie płatności przez system Przelewy24
- Uruchamianie płatności przez system HotPay
- Uruchamianie płatności przez system Paynow
- Uruchamianie płatności przez system Autopay (Blue Media)
- Uruchamianie płatności przez system PayU
- Uruchamianie płatności przez system Tpay
- Pozostałe
- Edycja plików/materiałów/ogłoszeń przez moderatora
- Problem z uploadem zdjęć i video (mp4)
- Uruchamianie mapy Google
- Statystyki a usunięci użytkownicy / materiały
- Nie dochodzą wiadomości email wysyłane przez skrypt
- Nie wyświetlają się reklamy Google AdSense
- Nie działa logowanie i dodawanie materiałów – po kliknięciu przycisku przesyłania danych wraca na bieżącą stronę
- Edycja slajdera (slidera) i zdjęć na stronach
- Zmiana linków do kategorii, regionu oraz typu ogłoszenia
- Ogłoszenia i promowanie się automatycznie nie dezaktywują
- Ogłoszenia się nie zapisują. Nie można się zalogować. Wyświetla błąd sesji
- Nie generują się obrazki w skrypcie Demoty2
- Aktualizacja skryptu
- Nie wyświetlają się komentarze z Facebooka ani przycisk do polubienia
- Zmiany w CSS i JS nie są widoczne na stronie
- Nie wyświetla się podgląd ogłoszenia/wpisu przy udostępnianiu przez Facebooka
- Aplikacja PWA
Zobacz też: Porady i odpowiedzi na pytania dotyczące skryptów stron www
Wymagania techniczne
- Baza danych MySQL
- Na serwerze uruchomione mod rewrite (obsługa plików .htaccess)
- Uruchomiona funkcja mail() lub możliwość wysyłki maili przez SMTP
- Możliwość ustawiania zadań Cron
- PHP w wersji min 7.2 (lub 7.4)
- Dla skryptu Demoty2 wymagane są biblioteki GD library oraz FreeType library.
Instalacja skryptu
Dotyczy wszystkich skryptów oprócz Notice 3. Instrukcja dla Notice 3 znajduje się pod adresem https://blog.wyremski.pl/skrypt-ogloszeniowy-notice3/#instalacja
Po rozpakowaniu archiwum z plikami skryptu kopiujemy przez FTP do katalogu na serwerze na który wskazuje domena.
W przypadku jeśli nie ma folderu /vendor (np w skrypcie Corta, Cuadro i Demoty2) należy zainstalować biblioteki poprzez SSH będąc w katalogu ze skryptem tym poleceniem:
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
Po wejściu na adres domeny powinien pokazać się program instalacyjny (bezpośredni adres do niego to: http://nazwadomeny.pl/install). Wypełniamy wszystkie pola wpisując dane do bazy danych: serwer (domyślnie localhost), jeśli numer portu jest inny niż 3306 to za dwukropkiem należy go podać w polu serwer, nazwę użytkownika, hasło, nazwę bazy, następnie dane związane z Panelem Administracyjnym, czyli login i hasło jakich chcemy używać przy logowaniu do Panelu Administracyjnego (można je później zmienić).
Jeśli w programie instalacyjnym nie ma pozycji „numer portu” a serwer korzysta z niestandardowego portu należy do adresu serwera dodać dwukropek a po nim numer portu np: „localhost:3307”
W pole „Email administratora” należy wpisać email, który będzie użyty w formularzu kontaktowym oraz w charakterze nadawcy wiadomości email.
W pole „Prefiks tabel w bazie danych” należy wpisać prefiks tabel w bazie danych w przypadku gdy np. do jednej bazy podłączamy kilka różnych witryn – zapobiega to nadpisaniu tabel o takich samych nazwach. W przypadku gdy baza danych używana jest tylko do tej witryny pole można zostawić puste.
W pole „Sól do haseł w systemie” możemy wpisać dowolny ciąg znaków które będą dopisywane do haseł użytkowników, a następnie kodowane funkcją md5. Służy to jako dodatkowe zabezpieczenie haseł użytkowników, na wypadek gdyby ktoś niepowołany dostał się do bazy danych. Ustawienie to zapisywane jest w pliku config/config.php i można je później zmienić (oczywiście po zmianie żaden użytkownik nie będzie mógł się zalogować do systemu , będzie musiał skorzystać z resetu hasła). Pole można zostawić puste, jednak zalecane jest dopisanie dowolnego ciągu znaków. Hasła do Panelu Administracyjnego nie korzystają z „solenia”.
Pole to nie występuje w skryptach Corta, Festa2, Holmes2, JobNotice i MotoNotice – hasła w nich są kodowane przy pomocy bcrypt który automatycznie generuje hash do hasła.
Klikamy „Zapisz”, program instalacyjny powinien stworzyć odpowiednie tabele w bazie danych, nadpisać plik config/db.php oraz ustawić prawidłowe prawa dostępu dla kilku folderów.
Po zakończeniu instalacji należy usunąć folder /install z serwera
W folderze /config znajdują się dodatkowe pliki:
– „db – default.php” – domyślny plik db.php dla instalacji serwisu, wymusza uruchomienie instalacji (w przypadku gdy chcemy ponownie zainstalować skrypt musimy usunąć wszystkie tabele z bazy danych a także usunąć istniejący plik db.php i zmienić nazwę tego pliku na db.php)
– „db – ready.php” – w przypadku gdy chcemy podłączyć serwis do istniejącej bazy danych należy użyć tego pliku, zawiera on wstępnie skonfigurowany plik db.php w którym należy wypełnić pola dotyczące podłączenia do bazy danych (należy usunąć istniejący plik db.php i zmienić nazwę tego pliku na db.php)
Ważne!
W przypadku gdy w Panelu Administracyjnym naszej strony zostało ustawione, żeby domena zaczynała się od przedrostka „www” należy z pliku .htaccess usunąć następujące 2 linie:
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]
Zamiast nich należy dodać:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Cron
Dotyczy wszystkich skryptów oprócz Notice 3. Instrukcja dla Notice 3 znajduje się pod adresem https://blog.wyremski.pl/skrypt-ogloszeniowy-notice3/#instalacja
Skrypt do prawidłowego działania potrzebuje skonfigurowania zadań cron-a (są to automatycznie wykonywane zadania przez serwer co określoną ilość czasu). W zależności od skryptu nie wszystkie pliki mogą występować:
cron-daily.php – raz dziennie, po północy.
cron-hourly.php – co godzinę
cron-10min.php – co 10 minut lub inny ustalony czas. Plik ten jest odpowiedzialny za wysyłkę mailingu
Cron musi być uruchamiany w tej samej wersji PHP co sam skrypt.
Konfiguracja crona różni się zależnie od serwera/hostingu. Najlepiej jest sprawdzić w dokumentacji. Zwyczajowe wywoływania crona to:
php /home/TWÓJ_LOGIN/domains/NAZWA_DOMENY/public_html/cron-daily.php
Albo:
wget -q -O – http://domena/cron-daily.php
Panel Administracyjny
Po instalacji skryptu Panel Administracyjny jest dostępny pod adresem http://nazwadomeny.pl/admin gdzie nazwadomeny.pl to domena, pod którą jest zainstalowany skrypt.
Login i hasło takie jak zostały podane przy instalacji systemu. Przy pięciokrotnym podaniu nieprawidłowego loginu lub hasła logowanie zostaje zablokowane dla danego adresu IP na 30 minut.
Uruchomienie skryptu
1. Po skopiowaniu plików na serwer (lub już po instalacji) wyświetla się biała strona
Proszę sprawdzić uruchomioną wersję PHP na serwerze czy jest większa lub równa minimalnej wymaganej przez skrypt.
2. Problem z linkami do podstron (m.in. do logowania, rejestracji)
Proszę się upewnić czy wszystkie pliki strony zostały poprawnie wgrane na serwer, najlepiej spróbować wgrać je ponownie. Proszę także sprawdzić czy w głównym katalogu strony znajduje się plik .htaccess (jest to plik bez nazwy, ma tylko rozszerzenie), a na serwerze jest włączony mod rewrite.
W przypadku serwerów z nginx należy do pliku konfiguracyjnego dodać:
location / {
rewrite ^/(.+)$ /index.php?path=$1 last;
}
location /admin {
try_files $uri $uri/ /admin/index.php?$args;
}
3. Tryb testowy Panelu Administracyjnego
Dotyczy wszystkich skryptów oprócz Notice 3. Instrukcja dla Notice 3 znajduje się pod adresem https://blog.wyremski.pl/skrypt-ogloszeniowy-notice3/#instalacja
Tryb testowy (tryb pokazowy) Panelu Administracyjnego deaktywuje w Panelu Administracyjnym wszystkie funkcje edycyjne. Może być używany do pokazania funkcjonalności systemu. Uruchamia się go w pliku config/config.php zmieniając
define('_ADMIN_TEST_MODE_', false);
na
define('_ADMIN_TEST_MODE_', true);
4. Reset loginu i hasła do Panelu Administracyjnego
Dotyczy wszystkich skryptów oprócz Notice 3. W Notice 3 należy skorzystać z opcji resetu hasła.
W przypadku gdy nie są znane dane do Panelu Administracyjnego należy ustawić nowy login i hasło bezpośrednio w tabeli w bazie danych. W tym celu logujemy się do phpMyAdmin do bazy danych podłączonej do skryptu, następnie wchodzimy do tabeli admin (lub prefiks_tabel-admin) i klikamy na Przeglądaj. Przy nazwie naszego użytkownika klikamy na edytuj, w pole username wpisujemy nasz nowy login, w pole password hasło i zaznaczamy przy polu password funkcje MD5. Po tym klikamy na „Wykonaj”. W bazie zostaną zapisane nowe dane do Panelu Administracyjnego, którymi możemy się do niego logować. Jeśli nie ma żadnych użytkowników możemy dodać nowego poleceniem MySQL:
INSERT INTOadmin
(username
,password
) VALUES ('nowy login',md5('nowe hasło'));
W przypadku skryptów Corta, Festa2, Holmes2, JobNotice i MotoNotice dane w bazie nie są hashowane funkcją MD5 ale funkcją BCrypt. A więc nie zaznaczamy MD5. Przykładowy hash od hasła 1234 to: $2y$10$J/PrdUn1NwP38XoQVBMu5e8hzivdrUd/ssg3VFa1XNEGAelJZuu6u
Polecenie dodania nowego użytkownika w tym momencie wygląda tak (dla hasła 1234):
INSERT INTOadmin
(username
,password
) VALUES ('nowy login','$2y$10$J/PrdUn1NwP38XoQVBMu5e8hzivdrUd/ssg3VFa1XNEGAelJZuu6u');
Po zalogowaniu do panelu administracyjnego można zmienić hasło.
5. Problem z captcha na stronie
Dotyczy tylko zwykłej captchy (nie reCAPTCHA) i tylko sytuacji gdy ustawimy adres bazowy Base URL strony z przedrostkiem „www”. W takiej sytuacji należy z pliku .htaccess usunąć następujące 2 linie które przekierowują na wersję bez www:
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]
6. Uruchomienie SSL
W przypadku gdy na domenie uruchamiany certyfikat SSL należy w pliku .htaccess od komentować (usunąć znak # na początku) z tych dwóch linii:
#RewriteCond %{HTTPS} !=on
#RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Tak aby wyglądało w ten sposób:
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Należy także w Panelu Administracyjnym w ustawieniach zmienić Base URL aby zaczynał się od https://
7. Uruchomienie reCAPTCHA
Dotyczy skryptów Corta, Festa2, Holmes2, JobNotice, MotoNotice, Notice3
W celu uruchomienie reCAPTCHA musimy wygenerować Site Key (klucz witryny) i Secret Key (klucz tajny) na swoim koncie Google. Będąc zalogowani w Google przechodzimy pod adres: https://www.google.com/recaptcha/admin#list i klikamy na przycisk Stwórz (+). W polu Etykieta wpisuje dowolną nazwę, wybieramy
8. Własny szablon w skrypcie
Dotyczy wszystkich skryptów oprócz Notice 3. W Notice 3 należy postępować zgodnie z dokumentacją Symfony.
Aby stworzyć własny szablon w skrypcie najłatwiej jest skorzystać ze standardowego szablonu tylko wprowadzić w nim własne zmiany. Należy skopiować katalog /views/default wraz ze wszystkimi plikami do katalogu views/[tu nasza nazwa szablonu] a następnie w panelu administracyjnym w ustawieniach wyglądu wybrać nasz nowy szablon. Nazwa szablonu nie może zawierać spacji ani znaków specjalnych (w tym polskich znaków diaktrycznych).
Od tego momentu możemy wprowadzać zmiany w naszym nowym szablonie z możliwością wrócenia do standardowego szablonu (default) w każdej chwili. Aby dokonać własnych zmian niezbędna jest wiedza z zakresu HTML, CSS i JavaScript.
Po każdej zmianie należy opróżnić katalog z cachem szablonu czyli katalog /tmp
Można także w pliku /index.php zakomentować linię 'cache’=>’tmp’ wtedy system nie będzie cachował szablonu.
Jeśli celem modyfikacji jest dokonanie niewielkich zmian np w kolorystyce to sugeruje wykonać je w standardowym szablonie lub dodając własne style CSS w ustawieniach wyglądu w panelu administracyjnym.
Wyświetlanie błędów PHP
Dotyczy wszystkich skryptów oprócz Notice 3. W Notice 3 należy postępować zgodnie z dokumentacją Symfony.
Jeśli z jakiegoś powodu skrypt nie działa, np. po wprowadzeniu własnych mofyikacji należy sprawdzic jakie błędy PHP są zgłaszane. Domyślnie skrypt ukrywa wszystkie błędy. Aby włączyć ich wyświetlanie należy w pliku /config/db.php zmienić stałą _DEBUG_MODE_ na „true”, czyli zmienić:
// Debug Mode (show all error) true/false
define('DEBUG_MODE', false);
Na:
// Debug Mode (show all error) true/false
define('DEBUG_MODE', true)
Po rozwiązaniu problemu należy przywrócić wartość false.
Język w skrypcie
Dotyczy wszystkich skryptów oprócz Notice 3. Instrukcja dla Notice 3 znajduje się pod adresem https://blog.wyremski.pl/skrypt-ogloszeniowy-notice3/#zmiana_jezyka
1. Zmiana języka instalacji
Dotyczy wszystkich skryptów oprócz Notice3.
Po uruchomieniu programu instalacyjnego wybierz z menu „Select language” preferowany język.
2. Zmiana / poprawki w tłumaczeniach
Dotyczy wszystkich skryptów oprócz Notice3.
Wszystkie wersje językowe dostępne są w plikach PHP katalogu /config/langs/
Aby zmienić teksty w istniejącym języku, należy otworzyć istniejący plik PHP, a następnie wyszukać wiersz z szukanym słowem lub zdaniem. Aby dodać nowy język wystarczy skopiować plik z istniejącym językiem (np. polskim), zmienić jego nazwę na „skrót języka” kropka PHP np. „de.php” a następnie ręcznie przetłumaczyć wszystkie znajdujące się w nim teksty. Teksty po lewej, te po angielsku muszą zostać bez zmian. Tłumaczymy tylko teksty po prawej. Przed i po tekstem musi znajdować się pojedynczy cudzysłów. Przetłumaczony plik musi być prawidłowym plikiem PHP, przykład prawidłowego tłumaczenia:
$translate['Add IP to black list'] = 'Dodaj adres IP do czarnej listy';
$translate['Add article'] = 'Dodaj artykuł';
$translate['Add category'] = 'Dodaj kategorie';
3. Powrót do języka polskiego
Dotyczy wszystkich skryptów oprócz Notice3.
Należy przejść pod adres http://nazwa_domeny/admin/?controller=settings i w trzecim polu od góry wybrać właściwy język.
Integracja z mediami społecznościowymi
1. Uruchomienie możliwości logowania przez Facebooka
Dotyczy skryptu Cuadro, Demoty2, Festa2, Holmes2, JobNotice, MotoNotice oraz Notice3
Uwaga! Bardzo ważne jest żeby poniższe czynności wykonać dokładnie krok po kroku. Pominięcie któregoś spowoduje, że logowanie nie będzie działać. Poniższe czynności muszą być wykonane na koncie Facebook należącym do klienta. Strona musi posiadać aktywny certyfikat SSL (adres strony musi zaczynać się od https).
Będąc zalogowanym na swoim koncie Facebook przechodzimy pod adres: https://developers.facebook.com/apps/
Klikamy na „Create App”. Z listy wybieramy „Konsument” i klikamy na „Next”. W polu „Add an app name” wpisujemy nazwę naszej aplikacji (dowolna, sugeruję nazwę strony lub domeny). Następnie klikamy na „Create App”.
Otworzy się okno edycji aplikacji na Facebook-u. Z menu po lewej stronie wybieramy „Settings” > „Basic” i w polu „App Domains” wpisujemy domenę naszej strony. W polu „Privacy Policy URL” wklejamy link do polityki prywatności naszej strony. W polu „User Data Deletion” wybieramy „Data Deletion Instructions URL” i wklejamy adres URL podstrony z instrukcją usuwania danych osobowych (w skryptach konto użytkownika i dodane przez niego materiały może usunąć administrator strony). Klikamy na „Save Changes”.
W menu po lewej obok PRODUCTS klikamy na znak +. Przy Facebook Login wybieramy Set Up. Nie korzystamy z Quickstart tylko po prostu w menu po lewej pod Facebook Login klikamy na Settings.
W polu „Valid OAuth Redirect URIs” wpisujemy następujące wartości (jeśli używamy polskiej wersji skryptu), proszę pamiętać żeby „nazwa_domeny.pl” podmienić na nazwę naszej domeny:
https://nazwa_domeny.pl
https://nazwa_domeny.pl/logowanie
https://nazwa_domeny.pl/logowanie?facebook_login
W przypadku skryptu Notice3 wpisujemy tylko taki adres:
https://nazwa_domeny.pl/logowanie/fb
Facebook wymaga aby adresy były na SSL. Klikamy na „Save Changes”.
Po lewej w menu App Review klikamy na Permissions and Features. Wyszukujemy i włączamy standardowy dostęp do „email” oraz „public_profile”.
U góry klikamy na „In development” aby zmienić tryb aplikacji na produkcyjny. Wybieramy kategorie (np Business and Pages) i klikamy na Switch Mode. „In development” powinno się zmienić na „Live”.
Następnie klikamy w menu po lewej na „Settings”>”Basic”. W drugim oknie przeglądarki wchodzimy w ustawienia portali społecznościowych naszego skryptu (w panelu administracyjnym) i kopiujemy z Facebook-a wartość z pola „App ID” do pola „Facebook API” oraz z pola „App Secret” do pola „Facebook Secret”.
Zaznaczamy także pole „Zezwól na logowanie przez Facebook-a”.
Zgodnie z https://developers.facebook.com/docs/development/maintaining-data-access/data-use-checkup/ począwszy od stycznia 2024 użytkownicy będą musieli powiązać konto firmowe z aplikacją Facebook i przesłać dokumenty identyfikacyjne firmy aby móc korzystać z możliwości logowania przez Facebook.
2. Podłączenie możliwości logowania przez Google
Dotyczy skryptu Cuadro, Demoty2, Festa2, Holmes2, JobNotice, MotoNotice oraz Notice3
Aby podłączyć pod skrypt możliwość logowania przez Google musimy mieć założone konto na Google. Następnie przechodzimy do Google API Console pod adres https://console.developers.google.com/
Jeśli nie mamy stworzonego projektu klikamy na „Stwórz projekt” (Create project) u góry w menu.
Następnie przechodzimy na stronę projektu, z menu po lewej wybieramy zakładkę „Biblioteka” (Library), szukamy pozycji „Google+ API”, klikamy na nią, następnie na „Włącz” (Enable). Podobnie włączamy pozycję „People API”.
Następnie przechodzimy do zakładki „Dane logowania” (Credentials) z menu po lewej stronie.
Klikamy na „Utwórz dane logowania” (Create Credentials) i wybieramy pozycję „Identyfikator klienta OAuth” (OAuth client ID). Jako typ aplikacji wybieramy „Aplikacja internetowa” (Web application).
Następnie są dwie możliwości:
- 1. Jeśli jest to nowy projekt Google może wyświetlić monit o wybór „User Type”. Wybieramy „Zewnętrzny”.
Wpisujemy nazwę aplikacji. W polu „Autoryzowane domeny” wpisujemy adres URL naszej strony. W następnym kroku dodajemy następujące zakresy:
…/auth/userinfo.email
…/auth/userinfo.profile
W następnym kroku jeśli wyświetli się monit o publikację, publikujemy aplikację.
Następnie ponownie przechodzimy do zakładki „Dane logowania” (Credentials) z menu po lewej stronie.
Klikamy na „Utwórz dane logowania” (Create Credentials) i wybieramy pozycję „Identyfikator klienta OAuth” (OAuth client ID). Jako typ aplikacji wybieramy „Aplikacja internetowa” (Web application) i przechodzimy do punktu 2.
- 2. Jeśli jest to istniejący projekt Google w polu „Autoryzowane identyfikatory URI przekierowania” wpisujemy adres URL strony logowania naszego skryptu czyli https://nazwa_domeny.pl/logowanie (w przypadku Notice3 będzie to https://nazwa_domeny.pl/logowanie/google) gdzie nazwa_domeny.pl to adres URL naszej strony.
Następnie pobieramy z Dane logowania Google ID i Google Secret. Obydwie wartości kopiujemy do ustawień portali społecznościowych w naszym skrypcie: http://nazwa_domeny.pl/admin/?module=settings_social_media
W tym miejscu zaznaczamy także pole „Zezwól na logowanie przez Google”. Po zapisaniu zmian na stronie logowania i rejestracji w naszym skrypcie zobaczmy nowe przyciski pozwalające na logowanie przez Google.
Płatności
1. Uruchamianie płatności przez system Dotpay
Dotyczy skryptu Festa2, Holmes2, JobNotice oraz MotoNotice
Aby uruchomić płatności Dotpay musimy mieć aktywowane konto w Dotpay w wersji T2 (jest to wymóg). Następnie przechodzimy do panelu logowania: https://ssl.dotpay.pl/enter
Z menu u góry wybieramy pozycję „Ustawienia”. Znajdziemy tam wygenerowany PIN, który jest nam niezbędny do podłączenia płatności. Pozycja „Urlc” powinna zostać pusta, pozycja „Blokuj zewnętrzne urlc” powinna być odznaczona, natomiast pozycje „HTTPS verify” oraz „SSL certificate verify” powinny być zaznaczone jedynie w przypadku gdy na naszej stronie ze skryptem mamy włączone SSL (adres strony zaczyna się od https://)
Przechodzimy do ustawień płatności w naszym skrypcie w Panelu Administracyjnym
Zaznaczamy pole „Płatność przez Dotpay”. W pole „Dotpay ID” wpisujemy nasz ID z systemu DotPay (dostaliśmy go przy rejestracji), w pole „Dotpay PIN” kopiujemy wygenerowany PIN z systemu Dotpay, pole „Dotpay –
waluta” wpisujemy skrót waluty używanej w Dotpay (domyślnie PLN).
Pole „Dotpay Tryb Testowy” zaznaczamy jedynie w przypadku gdy chcemy przetestować płatności – Dotpay w tym celu wymaga zarejestrowania się na stronie https://ssl.dotpay.pl/test_seller/ (po rejestracji zostanie wygenerowany inny numer ID i kod PIN niż na zwykłym koncie w Dotpay)
W przypadku gdy po wykonaniu płatności skrypt nie otrzymuje odpowiedzi z systemu Dotpay należy sprawdzić logi odpowiedzi z serwera w Dotpay. Jeśli występuje tam „You don’t have permission to access /php/payment_dotpay.php on this server.” to należy zgłosić ten błąd do administratora swojego serwera. Prawdopodobnie firewall blokuje dostęp do tego pliku.
2. Uruchamianie płatności przez system PayPal
Dotyczy skryptów Festa2, Holmes2, JobNotice, MotoNotice oraz Notice3
Przechodzimy do ustawień płatności w naszym skrypcie:
http://nazwa_domeny.pl/admin/?controller=settings_payments
Zaznaczamy pole „Zapłać przez PayPal”, w pole „PayPal adres email” wpisujemy adres email naszego konta w PayPal.
W pole „PayPal lokalizacja” wpisujemy skrót lokalizacji (domyślnie PL),więcej informacji na stronie: https://developer.paypal.com/docs/classic/api/country_codes/
PayPal waluta – domyślnie PLN. Skrót waluty, która ma być używana w systemie PayPal. Należy mieć w systemie zaznaczone automatyczną obsługę wybranej waluty. Więcej informacji: https://developer.paypal.com/docs/classic/api/currency_codes/
Pole „PayPal Tryb Testowy (sandbox)” powinno być odznaczone przy normalnym użytkowaniu serwisu. Tryb testowy służy do przetestowania integracji z PayPal – w tym celu nie należy używać standardowego konta w PayPal, ale konta stworzonego w trybie sandbox: https://developer.paypal.com/developer/accounts/
W przypadku problemów z płatnościami PayPal: system nie otrzymuje powiadomień o dokonanej transakcji, nic nie wyświetla w logach płatności, należy wykonać poniższe kroki:
Problem może się pojawić szczególnie kiedy waluta używana na portalu jest inna od domyślnej waluty dla konta PayPal. Proszę sprawdzić status transakcji: https://www.paypal.com/businessexp/transactions Jeśli mają status oczekujący trzeba je ręcznie zatwierdzić. Aby nie musieć w przyszłości ręcznie zatwierdzać każdej transakcji proszę w tym miejscu https://www.paypal.com/pl/cgi-bin/webscr?cmd=_profile-pref w pierwszym polu
zaznaczyć opcję: „Tak” – automatyczne przekonwertowywanie walut.
3. Uruchamianie płatności przez system Przelewy24
Dotyczy skryptów Festa2, Holmes2, JobNotice, MotoNotice oraz Notice3
Przechodzimy do ustawień płatności w naszym skrypcie: http://nazwa_domeny.pl/admin/?controller=settings_payments
Zaznaczamy pole „Zapłać przez Przelewy24”.
W pole „Przelewy24 – ID sprzedawcy” wpisujemy ID sprzedawcy nadane przez serwis Przelewy24 (identyfikator używany do logowania w serwisie Przelewy24).
W pole „Przelewy24 – ID sklepu” wpisujemy ID naszego sklepu w Przelewy24. Domyślnie jest ono takie samo jak ID sprzedawcy.
W pole „Przelewy24 – CRC” wpisujemy 16 znakowy kod CRC. Aby go wygenerować należy po zalogowaniu do panelu Przelewy24 kliknąć „Moje dane” w zakładce „Moje Konto”, następnie wyświetli się lista ustawień, wśród których będzie „Klucz do CRC” – klucz ten należy skopiować. Uwaga! Wygenerowanie nowego klucza w systemie Przelewy24 spowoduje że płatności używające starego klucza nie będą działały.
Przelewy24 – tryb testowy (sandbox) – to tryb testowy płatności. Aby z niego skorzystać należy mieć założone konto sandbox w przelewy24 oraz wpisać wartość CRC z trybu sandbox. Przy normalnym funkcjonowaniu serwisu tryb ten należy wyłączyć!
Szczegółowa instrukcja znajduje się pod adresem: https://www.przelewy24.pl/storage/app/media/pobierz/Instalacja/przelewy24_dokumentacja_3.2.pdf
Zgodnie z informacją od Przelewy24 na serwerach nazwa.pl należy wyłączyć zabezpieczenie WAF – również ochrony standardowej (Active.admin – admin.nazwa.pl >> Ustawienia >> Ustawienia WWW i PHP >> Web Application Firewall)
4. Uruchamianie płatności przez system HotPay
Dotyczy skryptu Notice3.
W panelu systemu płatności HotPay należy ustawić prawidłowy adres URL powiadomień (notyfikacji):
https://nazwadomeny.pl/payment/hotpay/check
gdzie nazwadomeny.pl to adres URL domeny gdzie został zainstalowany skrypt.
Następnie w panelu administracyjnym skryptu przechodzimy do Ustawienia > zakładka Płatności, zaznaczamy „Płać przez HotPay” oraz uzupełniamy wymagane pole: HotPay – sekret usługi.
W trybie testowym HotPay możemy przetestować płatności. Poniżej odpowiedzi z serwera:
SUCCESS – wszystko poszło ok, płatność przyjęta
FAILURE – status płatności nieprawidłowy
CHECK HASH – sprawdź poprawność hash
EMPTY POST – skrypt nie otrzymał wymaganych danych
Więcej informacji na temat integracji znajduje się w instrukcji: https://hotpay.pl/documentation_v3/tech_paybylink.pdf
5. Uruchamianie płatności przez system Paynow
Dotyczy skryptu Holmes2.
W panelu Paynow należy dodać nowy Sklep (punkt płatności). W platforma płatności wybieramy „Własna platforma”. Jako adres powiadomień ustawiamy https://holmes2.itworksbetter.net/php/payment_paynow.php gdzie holmes2.itworksbetter.net zamieniamy na adres naszej domeny. Adres powrotu ustawiamy taki sam.
Pobieramy Klucz dostępu do API oraz Klucz obliczania podpisu i kopiujemy je do Ustawień płatności w skrypcie. Zaznaczamy opcje „Zapłać przez Paynow”. Checkbox „Paynow tryb sandbox” powinień być zaznaczony jedynie gdy korzystamy z trybu Sandbox (środowiska testowego), w przeciwnym razie musi być odznaczony.
6. Uruchamianie płatności przez system Autopay (Blue Media)
Dotyczy skryptu Notice3.
W panelu Autopay (dawniej Blue Media) korzystając z zakładki Sklepy możesz znaleźć ID serwisu oraz klucz współdzielony. Żeby przejść do szczegółów – kliknij w nazwę swojej firmy znajdującą się w kolumnie Nazwa. ID serwisu oraz klucz współdzielony skopiuj do zakładki Ustawienia > Płatności w skrypcie Notice3.
7. Uruchamianie płatności przez system PayU
Dotyczy skryptu Notice3.
Zaloguj się do panelu administracyjnego PayU. Przejdź do zakładki Płatności elektroniczne, a następnie Moje sklepy. Na liście dostępnych sklepów, kliknij przycisk Punkty płatności. W nowym widoku kliknij w nazwę wybranego punktu płatności. W tym miejscu znajdziesz PayU – ID oraz PayU – Second key (MD5) które powinieneś wprowadzić w zakładce Ustawienia > Płatności w skrypcie Notice3.
Pamiętaj żeby pole „PayU – sandbox” było odznaczone.
7. Uruchamianie płatności przez system Tpay
Dotyczy skryptu Notice3.
Aby uruchomić płatności przez system Tpay należy w zakładce Ustawienia > Płatności w skrypcie Notice3 wpisać ID z systemu Tpay otrzymane podczas rejestracji u nich oraz kod który można pobrać z Menu > Ustawienia > Powiadomienia > Kod bezpieczeństwa.
Pozostałe
1. Edycja plików/materiałów/ogłoszeń przez moderatora
Dotyczy skryptów: Cuadro, Demoty2, Festa2, Holmes2, JobNotice i MotoNotice.
Wszystkie pliki lub ogłoszenia dodane przez użytkowników mogą edytować moderatorzy serwisu (proszę nie mylić z administratorami – ci ostatni mają dostęp do panelu administracyjnego).
Aby móc edytować pliki innych użytkowników należy najpierw przydzielić dla swojego konta użytkownika w serwisie prawa moderatora. W tym celu logujemy się do Panelu Administratora i klikamy zakładkę „Użytkownicy”
Przy użytkowniku, któremu chcemy przydzielić prawa moderatora w polu „Moderator” klikamy aby zostało oznaczone jako „Tak”.
Następnie w Panelu Administratora przechodzimy do zakładki „Ogłoszenia” lub „Pliki” i klikamy na przycisk „Edytuj”.
Aby móc edytować dany plik, musimy być zalogowani w samym serwisie (nie mylić z panelem administratora) na konto użytkownika z prawami moderatora.
W serwisie może być wielu moderatorów.
Dlaczego administrator nie ma podglądu nieaktywnych ogłoszeń?
Skrypt od strony użytkownika nie sprawdza czy administrator jest zalogowany. Ma to na celu uniknięcie niepotrzebnych zapytań do bazy danych i przyśpieszenie działania strony. Dlatego tylko moderator (który jest użytkownikiem z odpowiednimi prawami) ma dostęp do edycji materiałów i podglądu wszystkich ogłoszeń.
2. Problem z uploadem zdjęć i video (mp4)
Dotyczy skryptu Cuadro.
Maksymalny dostępny rozmiar przesyłanych zdjęć przy dodawaniu ogłoszenia lub uploadzie mp4 (w skrypcie Cuadro) jest ograniczony ustawieniami serwera, zależy od zmiennych:
post_max_size oraz upload_max_filesize
Proszę o kontakt z administratorem serwera w celu sprawdzenia jakie wartości mają te zmienne, oraz żeby w razie potrzeby je zwiększył.
W skrypcie Cuadro w ustawieniach w Panelu Admina można zmienić maksymalny rozmiar plików MP4. Rozmiar ten powinien być równy lub mniejszy od ustawień serwera
3. Uruchamianie mapy Google
Dotyczy skryptów Festa2, Holmes2, JobNotice i MotoNotice
Uwaga! Mapy Google po przekroczeniu danej liczby wyświetleń są odpłatne. Dodatkowo do uruchomienia klucza wymagane jest wypełnienie danych do rozliczenia. W przeciwnym razie mapy nie będą się poprawnie wyświetlać. Więcej informacji u dostawcy tej usługi.
Wygenerowanie klucza API wg poniższej instrukcji jest wymagane jeśli chcemy w serwisie wyświetlać mapę Google oraz wyszukiwać ogłoszenia po odległości.
Aby uruchomić Mapę Google w serwisie należy posiadać klucz Google Maps API. Po zalogowaniu w Google przechodzimy pod adres: https://console.developers.google.com/apis/dashboard
Z menu po lewej u góry wybieramy pozycję „Wybierz projekt” a następnie „Nowy projekt”, wpisujemy nazwę projektu (nie ma znaczenia) -> „Utwórz”.
Następnie klikamy na „Włącz interfejsy API i usługi”, wyszukujemy i uruchamiany następujące interfejsy: Maps JavaScript API, Geocoding API oraz Places API.
Następnie w menu po lewej przechodzimy do „Dane logowania” > „Utwórz dane logowania” > „Klucz interfejsu API”. Zostanie wygenerowany kod API key który należy wkleić w ustawieniach skryptu (ustawienia ogólne w panelu admina) w pole „Google Mapy API”
Możemy wprowadzić ograniczenia dla aplikacji aby można było ją używać tylko z podanych odsyłających adresów HTTP (witryny). W te pole należy wkleić wartość http://nazwa_domeny.pl/* lub https://nazwa_domeny.pl/* (gdzie nazwa_domeny.pl to nasza nazwa domeny)
W polu „Google Mapy API 2 (dla „pokaż na mapie”)” możemy wkleić ten sam klucz API w przypadku gdy nie korzystamy z ograniczenia aplikacji lub wygenerować drugi, tylko jako ograniczenie zaznaczyć pole „Adresy IP (serwery WWW, zadania cron itp.)” i podać w nim adres IP serwera. Ten klucz nie jest widoczny dla użytkowników więc może pozostać bez zaznaczonych ograniczeń.
Jeśli po wykonaniu powyższych kroków Mapy Google nadal nie wyświetlają się poprawnie proszę sprawdzić błąd jaki wyświetla się w konsoli JavaScript (w przeglądarce Google Chrome klikamy naraz klawisze CTRL SHIFT I a następnie przechodzimy do zakładki Console) i skontaktować się z dostawcą tej usługi.
4. Statystyki a usunięci użytkownicy / materiały
Usunięcie użytkownika, ogłoszenia, pliku nie wpływa na statystyki w panelu administracyjnym, chyba, że zostaną usunięte logi wyświetleń ogłoszenia lub logowań użytkowników.
5. Nie dochodzą wiadomości email wysyłane przez skrypt
Proszę sprawdzić czy wiadomości nie znajdują się w folderze SPAM oraz czy problem występuje tylko z jedną skrzynką pocztową czy z różnymi. Jeśli wiadomości nie dochodzą na żadną skrzynkę pocztową proszę się upewnić u administratora serwera czy na serwerze jest uruchomiona funkcja PHP o nazwie mail(). Jeśli nie jest proszę skonfigurować wysyłkę przez SMTP, zgodnie z dokumentacją techniczną danego serwera. Dane do wysyłki przez SMTP proszę uzupełnić w panelu admina w zakładce „Ogólne ustawienia”. Skrypty umożliwiają wysyłkę wiadomości testowej aby sprawdzić czy ustawienia są poprawne. Jeśli problem nadal występuje proszę zgłosić to administratorowi serwera. Każdy ze skryptów posiada logi wysłanych maili w których wyświetlane są tylko maile które były wysłane ze skryptu PHP.
Często spotykane poprawne konfiguracje to:
– port 587 i secure „tls”
– port 465 i secure „ssl”
Większość wiadomości email trafia do SPAM-u
Taki problem może występować szczególnie na hostingach współdzielonych – takich w których z jednego IP korzysta wiele serwisów. Skrypt nie ma na to wpływu – takie sytuacje proszę zgłaszać administratorowi serwera. Najlepszym rozwiązaniem jest przeniesienie strony na serwer dedykowany z indywidualnym adresem IP i nie wysyłać z niego mailingów, newsletterów itd.
Rozwiązania alternatywne które mogą zadziałać w pewnych sytuacjach:
- zmiana treści wiadomości email z poziomu panelu administracyjnego aby nie były podobne do prawdziwego spamu
- wysyłka wiadomości przez SMTP
- jako adres email administratora serwisu powinien być ustawiony adres istniejącego konta email na danym serwerze
6. Nie wyświetlają się reklamy Google AdSense
Jeśli po dodaniu kodu reklamy w Google AdSense nie wyświetla się ona na stronie może to być spowodowane nie spełnianiem przez stronę wymagań AdSense. Jednym z nich jest duża ilość treści. W niektórych skryptach ze względu na małą ilość treści na stronie (np w skryptach z obrazkami lub linkami) Google AdSense może nie aktywować wyświetlania reklam. W pewnych przypadkach wyświetlanie reklam może zostać uruchomione po kilku godzinach/dniach. Zachęcam także do zapoznania się z: zasadami programu Adsense
7. Nie działa logowanie i dodawanie materiałów – po kliknięciu przycisku przesyłania danych wraca na bieżącą stronę
Dotyczy skryptów: Cuadro, Demoty2, Festa2, Holmes2, JobNotice i MotoNotice.
W skryptach istnieje zabezpieczenie przed brutal force i innymi atakami polegające na sprawdzaniu IP użytkownika. W pewnym przypadkach gdy użytkownik ma zmienny adres IP i zostanie on zmieniony pomiędzy załadowaniem strony a kliknięciem Zaloguj/Zapisz/Dodaj skrypt odrzuci to żądanie. W takim przypadku w panelu administratora należy wyłączyć opcje „Sprawdzaj IP użytkownika przy logowaniu” (w zależności od skryptu nazwa może być trochę inna)
8. Edycja slajdera (slidera) i zdjęć na stronach
Kod HTML slajdera na stronie głównej powinien być podobny do tego, który jest w demie danego skryptu. Jeśli przypadkiem zostanie nadpisany można łatwo go skopiować z dema.
Bardzo ważne jest żeby zdjęcia w slajderze były tych samych proporcji (najlepiej tych samych wymiarów) – dzięki temu reszta strony nie będzie skakać przy zmianie slajdu. Nie ma ustalonych odgórnie wymiarów jakie powinny mieć zdjęcia w slajderze.
Odnośnie wszystkich zdjęć dodawanych w edytorze wizualnym w panelu admina: Przy edycji zdjęć zdarza się że edytor wizualny Ckeditor ustawia ich wymiary (w polach szerokość i wysokość). Aby zdjęcie było responsywne należy usunąć te wymiary, inaczej na urządzeniach mobilnych będzie ono rozciągnięte. Podsumowując w edycji zdjęcia pola szerokość i wysokość powinny być puste.
9. Zmiana linków do kategorii, regionu oraz typu ogłoszenia
Dotyczy skryptów Festa2, Holmes2, JobNotice i MotoNotice
Uwaga! Poniższe czynności powinny być wykonywane tylko przez osoby z podstawową wiedzą na temat PHP.
Skrypty umożliwiają zmianę sposobu wyświetlania linków do kategorii, typów i regionów w których zostały dodane ogłoszenia.
Domyślnie linki mają postać zgodną z obecnymi wytycznymi dotyczącymi SEO:
http://nazwa_domeny.pl/s-nazwa_regionu/c-nazwa_kategorii/t-typ_ogloszenia
Jeśli w pliku config/config.php ustawimy wartość stałej _CLASSIFIED_PATH_ (domyślnie true) na false to zostaną wyłączone wszystkie przekierowania, np.
https://motonotice.itworksbetter.net/ogloszenia?category=1&type=sprzedam&state=kujawskopomorskie
Natomiast ustawienie wartości na true uruchomi przekierowanie kategorii, regionu i typu np
https://motonotice.itworksbetter.net/c-samochody-osobowe/t-sprzedam?state=kujawskopomorskie
Istnieje także możliwość zmiany prefiksów dla kategorii, regionów i typu, należy przy tym uważać żeby prefiksy się nie powtarzały, nie miały pustej wartości ani żeby nie była to wartość od której może się zaczynać nazwa kategorii, regionu lub typu.
Domyślnie dla kategorii jest to „–c”, dla regionu „–s” a dla typu „–t”
10. Ogłoszenia i promowanie się automatycznie nie dezaktywują
Dotyczy skryptów: Festa2, Holmes2, JobNotice, MotoNotice i Notice 3.
Jeśli po upływie okresu trwania ogłoszenia / promowania ogłoszenia ono cały czas jest widoczne w serwisie to nie zostały skonfigurowane poprawnie zadania crona. Szczegóły jak należy skonfigurować te zadania znajdują się w niniejszej instrukcji. Plik na serwerze /cron-daily.php jest odpowiedzialny m.in. za dezaktywacje wygasłych już ogłoszeń, dezaktywacje promowania ogłoszeń, usunięcie kont nieaktywowanych użytkowników, dezaktywacje linków do resetu hasła, usunięcie starych ogłoszeń, wygenerowanie nowego pliku sitemap.xml itd
Uruchomienie zadań crona na serwerze jest niezbędne aby skrypt działał prawidłowo!
11. Ogłoszenia się nie zapisują. Nie można się zalogować. Wyświetla błąd sesji
Dotyczy skryptów: Cuadro, Demoty2, Festa2, Holmes2, JobNotice oraz MotoNotice.
Skrypty mają zabezpieczenie przed robotami polegające na generowaniu kodów sesyjnych przydzielonych dla danego adresu IP w formularzu logowania i dodawania ogłoszeń. Niestety niektóre przeglądarki lub dostawcy internetu mogą zmieniać dynamicznie adres IP i wtedy może nie być możliwe dodanie ogłoszenia lub zalogowanie się. W takiej sytuacji należy w panelu administracyjnym skryptu w ustawieniach wyłączyć opcję „Sprawdzaj IP użytkownika przy logowaniu i dodawaniu ofert” (zależnie od skryptu jej nazwa może być taka lub podobna).
12. Nie generują się obrazki w skrypcie Demoty2
Skrypt Demoty2 wymaga aby na serwerze były zainstalowane biblioteki GD library oraz FreeType library. W przypadku ich braku obrazki nie będą generowane. Proszę o kontakt z administratorem serwera w celu uzyskania informacji jak je zainstalować. Domyślnie większość hostingów ma je już zainstalowane.
13. Aktualizacja skryptu
Autor skryptu na prośbę klienta może wysłać najnowszą wersję skryptu, jednak to sam klient musi go zaktualizować. Aby zaktualizować skrypt należy najpierw z serwera usunąć stary skrypt (wszystko oprócz folderu /upload oraz pliku /config/db.php) a następnie wgrać pliki nowej wersji skryptu oprócz katalogu /install oraz pliku /config.db.php. Proszę pamiętać, że wszystkie ręcznie wykonane modyfikacje w plikach skryptu zostaną utracone. Należy także sprawdzić czy nowsza wersja skryptu nie ma zmian w bazie danych porównując budowę aktualnej bazy do zrzutu bazy w SQL w folderze /install nowszej wersji.
14. Nie wyświetlają się komentarze z Facebooka ani przycisk do polubienia
Najpierw należy się upewnić że w panelu admina skryptu jest włączone wyświetlanie komentarzy z FB i przycisku do polubienia z FB.
Zgodnie z informacją z oficjalnej dokumentacji Facebooka https://developers.facebook.com/docs/plugins/comments/ w Unii Europejskiej i w kilku innych krajach widget będzie działał jedynie wtedy gdy użytkownik jest zalogowany do swojego konta Facebooka i w ustawieniach swojego konta włączył opcjonalne cookie z FB. Informację jak to zrobić można znaleźć tutaj https://www.facebook.com/help/336858938174917
15. Zmiany w CSS i JS nie są widoczne na stronie
Jeśli zmieniałeś kod w plikach .css lub .js i zmiany nie są widoczne na stronie wynika to z cachowania tych plików przez przeglądarkę a nie przez sam skrypt. Problem często występuje w przeglądarce Chrome. Usunięcie pamięci podręcznej w przeglądarce rozwiązuje problem. Można też zmienić link do pliku css, js.
Otwórz plik config/config.php i zmień wartość
$settings['assets_version'] = 1;
na kolejną liczbę. Wykonuj to po każdej zmianie CSS/JS.
Jeśli Twój skrypt nie ma takiej zmiennej, musisz w pliku views/default/main.tpl dodać do adresu edytowanego pliku np wartośc ?v=1 itd. Następnie usunąć cache szablonów opróżniając katalog /tmp.
W skrypcie Notice3 należy zmienić w pliku /config/packages/framework.yaml wartość w asset > version a następnie usunąć cache szablonów poleceniem:
php bin/console cache:clear --no-warmup -e prod
16. Nie wyświetla się podgląd ogłoszenia/wpisu przy udostępnianiu przez Facebooka
Wszystkie skrypty posiadają tag meta og:image z linkiem do obrazku. Zgodnie z informacją na stronie https://developers.facebook.com/docs/sharing/best-practices#images obrazki powinny mieć szerokość min 1080px i wysokość 600px. Istnieje także możliwość że Facebook jeszcze nie przeskanował Twojej strony. W tej sytuacji można skorzystać z narzędzia Sharing Debugger dostępnego pod adresem https://developers.facebook.com/tools/debug/ które wymusi na FB przeskanowanie naszego adresu URL. Więcej informacji znajdziesz w tym wpisie blogowym: https://blog.wyremski.pl/miniaturki-przy-udostepnianiu-stron-na-facebooku/
17. Aplikacja PWA
Dotyczy skryptów Notice3 oraz MotoNotice
Skrypt jest wstępnie skonfigurowany, aby działać jako aplikacja PWA (Progressive Web App). Po zainstalowaniu skryptu możesz dostosować tytuł, opis, kolor i inne dane aplikacji w pliku manifest.json
.
Należy również zamienić ikonki w folderze /uploads/images/icons
na odpowiednie ikony w różnych rozmiarach. Możesz skorzystać z narzędzi online do generowania ikonek, takich jak https://manifest-generator.wyremski.pl/
Po zamianie ikonek, konieczne będzie wyczyszczenie pamięci podręcznej na telefonie lub komputerze.