Darmowy Panel Allegro - Bazinga Allegro Panel

Tutoriale

Darmowy panel Allegro - Bazinga Panel

Autor:

Front-end developer i freelancer, fan Star Wars i Terence'a McKenny

Darmowy panel aukcji Allegro 

Panele aukcji Allegro robią furorę wśród użytkowników portalu, jednak nie wszyscy wiedzą, że skrypt wyświetlający je można z powodzeniem zainstalować i uruchomić na własnym serwerze. 

Uwaga! Nowa poprawiona wersja 0.21

Pobierz wersję darmową wersję 0.21: bazinga_allegro_panel_v0.21-free.zip

Cechy panelu:

  • Wyświetlanie dowolnej ilości "innych aukcji użytkownika" w szablonie

  • Szybkość działania

  • Łatwość rozbudowy

  • Elegancki, stylowy wygląd

  • Wyraźne obrazki i specjalnie dobrana czcionka

  • Darmowy

Wymagania skryptu Bazinga Allegro Panel v0.2-free :

  • PHP 5.3 

  • baza danych MYSQL

  • dostęp do CRON

  • posiadanie klucza Allegro WebAPI

  • zainstalowana biblioteka PHP GD 

  • obsługa czcionkek TrueType w PHP 

Wszystkim tym wymaganiom potrafi sprostać nawet najtańszy serwer - nasz skrypt zadziała na większości konfiguracji. Klucz Allegro uzyskuje się za darmo, przechodząc po zalogowaniu na swoim koncie Allegro na stronę http://allegro.pl/Contact2/Contact2.php?topic=288

Słowo od Bazingi: w promocyjnej akcji "Panelowanie" oferujemy naszym klientom pełną instalację za kwotę 49zł brutto. Jeśli więc potrzebujesz wsparcia - napisz do nas przez bramkę kontaktową , uruchomimy skrypt na twoim serwerze w mgnieniu oka.

Instalacja i konfiguracja Bazinga Allegro Panel

Instalację przeprowadzimy na przykładzie serwera Personal firmy OVH. To jedna z tańszych i popularniejszych konfiguracji w naszym kraju. Przed instalacją na serwerze innej firmy, upewnij się, że spełnia on wymienione wcześniej wymagania. Po rozpakowaniu pliku zip na lokalnym dysku edytuj plik configuration.php.

Listing 1 - Plik configuration.php 

// Nazwa użytkownika bazy danych
define('BAZINGA_MYSQL_USER', '???');
                                               
// Hasło użytkownika bazy danych
define('BAZINGA_MYSQL_PASS', '???');
                                               
// Nazwa bazy danych na serwerze
define('BAZINGA_MYSQL_DBNAME', '???');
                                               
// Adres do połączenia z bazą danych
define('BAZINGA_MYSQL_HOST', '???');
                                               
// Numer ID użytkownika Allegro
define('ALLEGRO_ID', '???');
                                               
// Login użytkownika Allegro
define('ALLEGRO_LOGIN', '???');
                                               
// Hasło użytkownika Allegro
define('ALLEGRO_PASSWORD', '???');
                                               
// Klucz Allegro WebAPI - przyznawany przez Allegro 
define('ALLEGRO_KEY', '???');
                                               
// Podstawa adresu do przekierowania po kliknięciu w panel
define('BAZINGA_REDIRECT_BASE', 'http://www.allegro.pl/');
                                               
// Kod Kraju. Pozostaw bez zmian jeśli wystawiasz 
// przedmioty na polskim Allegro
define('ALLEGRO_COUNTRY', 1);
                                               
// Liczba innych aukcji do pobrania i wyświetlenia.
// Po zmianie tej liczby musisz także wprowadzić zmiany
// w kodzie HTML szablonu.
define('BAZINGA_LIMIT',15);
                                               
// Czas w sekundach między wywołaniami CRON,
// standardowo ustawiony na 1 godzinę.
// Ustaw tu taki czas, jaki ustawiony został dla CRON
// na Twoim serwerze. Zagwarantuje to, że na liście innych
// aukcji nie pojawią się aukcje, które skończyły się
// pomiędzy wywołaniami skryptu ściągającego dane z 
// Twojego konta Allegro.
define('BAZINGA_CRON_UPDATE_SECONDS',3600);
                                               
// Dodatkowy czas w sekundach - zabezpieczenie,
// pozostaw bez zmian
define('BAZINGA_CRON_EXECUTE_SAFEADD', 60);
                                               
// Szerokość całego wynikowego obrazka w pojedynczym
// okienku panelu
define('BAZINGA_IMAGE_WIDTH', 195);
                                               
// Wysokość całego wynikowego obrazka w pojedynczym 
// okienku panelu
define('BAZINGA_IMAGE_HEIGHT', 310);
                                               
// Odległość miniaturki przedmiotu od górnej krawędzi
// wynikowego obrazka
define('BAZINGA_THUMB_PADDING_TOP', 40);
                                               
// Odległość ceny od przycisku kup teraz
define('BAZINGA_KUP_TERAZ_PADDING_RIGHT', 10);
                                               
// Odległość linijki z ceną od dolnej krawędzi obrazka
define('BAZINGA_PRICE_PADDING_BOTTOM', 30);
                                               
// Czcionka używana przez generator obrazków. UWAGA: Potrzebna prawidłowa ścieżka do pliku TTF
define('BAZINGA_FONT_FAMILY', './DroidSans.ttf');
                                               
// Rozmiar czcionki - nazwa aukcji
define('BAZINGA_TITLE_FONT_SIZE', 10);
                                               
// Wysokość linii tekstu w nazwie aukcji
define('BAZINGA_TITLE_LINE_HEIGHT', 15);
                                               
// Rozmiar czcionki - cena
define('BAZINGA_PRICE_FONT_SIZE', 13);
                                               
// Odległość rozpoczęcia tekstu - nazwy aukcji od górnej
// krawędzi obrazka
define('BAZINGA_TITLE_TEXT_PADDING_TOP', 180);
                                               
// Odległość tekstu - nazwy aukcji od lewej i prawej krawędzi
// obrazka
define('BAZINGA_TITLE_TEXT_PADDING', 15);

W miejsca znaków zapytania (???) wprowadź dane konfiguracyjne twojego serwera - nazwę użytkownika bazy danych, hasło do bazy danych, nazwę bazy danych oraz adres (host) bazy danych. Poniżej wprowadź też dane swojego konta Allegro, wraz z kluczem WebAPI uzyskanym po wypełnieniu formularza na swoim koncie Allegro. Zapisz plik konfiguracyjny - resztą ustawień możesz zająć się później, gdy masz już pewność, że skrypt działa.

Biblioteki, z których korzysta panel wymagają obecności (lub przełączenia się) na wersję PHP 5.3 . Do tego celu przygotowaliśmy w katalogu gotowy plik .htaccess, który ustawi odpowiednią zmienną środowiskową na serwerze OVH. 

Jeśli twój serwer standardowo wykonuje pliki .php używając PHP 5.3 lub obecność pliku .htaccess powoduje powstanie błędu serwera - wykasuj plik .htaccess . 

Wykonamy teraz pierwsze zabezpieczenie przed wykonywaniem skryptu przez osoby niepowołane: zmień nazwę pliku uruchom_cronem.php na dowolną, możliwie jak najtrudnięjszą do odgadnięcia nazwę z rozszerzeniem .php.  Ten plik będzie uruchamiany cyklicznie w celu pobrania informacji z Allegro i zapisania ich do bazy danych. 

Otwórz teraz plik bazadanych.sql pod edytorem tekstowym i skopiuj całą jego zawartość do schowka - będziemy tworzyć nową tabelkę w bazie danych na twoim serwerze. Zaloguj się do panelu administracyjnego (managera) OVH. Przejdź do zakładki Serwer Wirtualny a następnie przejdź do phpMyAdmin. Po zalogowaniu w phpMyAdmin kliknij w ikonkę z napisem SQL (tuż pod logiem phpMyAdmin). Wklej zawartość schowka w puste pole i kliknij przycisk Wykonaj. Po chwili zobaczysz nową tabelkę w bazie. Skasuj z folderu na dysku plik bazadanych.sql . Możesz teraz zamknąć okno phpMyadmin i uruchomić program do przesyłania plików na serwer.

Używając programu FTP (np. darmowego FileZilla) , wyślij cały folder bazinga_panel w dowolne miejsce na swoim serwerze dostępne dla przeglądających stronę - możesz skopiować go np. prosto do katalogu www (lub innego, np. public - w zależności od serwera).

Testowanie działania skryptu 

Otwórz w przeglądarce adres swojej strony, dodając po ukośniku ścieżkę do katalogu ze skryptem panelu, czyli jeśli adres www twojej strony, to http://www.twoja-strona.baz , wpisz np.: http://www.twoja-strona.baz/bazinga_panel/uruchom_cronem.php (zastępując nazwę pliku uruchom_cronem.php na tą, którą wymyśliłeś wcześniej w celu zabezpieczenia). 

Jeśli wszystko poszło dobrze, po skończeniu ładowania skryptu powinieneś widzieć biały ekran - zupełny brak komunikatów, a w bazie danych powinno znaleźć się 15 wystawionych przez ciebie przedmiotów, których aukcje kończą się najwcześniej. W tym momencie możemy rozpocząć finalizację instalacji. 

Dodatkowe zabezpieczenie 

Edytuj ponownie plik, którego nazwa na początku brzmiała uruchom_cronem.php . Usuń komentarz z linijek 64-68 (Pod napisem UWAGA). Zapisz plik na dysku i wyślij zmienioną wersję na serwer. Ta zmiana sprawi, że nie będzie możliwości uruchomienia skryptu z poziomu przeglądarki. Za chwilę skonfigurujemy serwer, aby sam uruchamiał odpowiedni plik co godzinę (godzina to minimalny odstęp czasu wykonywania automatycznych zadań CRON na serwerze OVH Personal).

Konfiguracja CRON w OVH

Zaloguj się do panelu sterowania serwerem (Manager OVH) i przejdź do zakładki Serwer Wirtualny. Po prawej stronie ekranu, w Usługi WWW odnajdź ikonkę Zadania cron. Kliknij na nią, a na następnym ekranie kliknij ikonkę Stwórz

  • W polu Skrypt do wykonania wpisz pełną ścieżkę do katalogu i pliku, który w oryginale nazywał się uruchom_cronem.php . Zakładając, że katalog bazinga_panel umieściłeś bezpośrednio wewnątrz katalogu www na swoim serwerze, ścieżka będzie brzmieć: www/bazinga_allegro/uruchom_cronem.php

  • W polu Język skryptu koniecznie wybierz PHP 5.3

  • W polu Opis zadania wpisz cokolwiek, np. bazinga panel

  • Zaznacz wszystkie dni i wszystkie godziny

  • Kliknij przycisk Zatwierdź

Właśnie dodałeś zadanie do automatycznego uruchamiania. Nasz skrypt nie pobiera danych z Allegro za każdym razem, gdy użytkownik wchodzi na twoją stronę - trwałoby to bardzo długo i spowodowałoby przeciążenia lub nawet blokadę klucza Allegro WebAPI. Odświeżanie aukcji następuje (przy standardowych ustawieniach skryptu) co godzinę.

Co jednak, gdy twój serwer pozwala na częstsze uruchamianie zadań CRON i chciałbyś z tego skorzystać? Możesz wtedy zmienić konfigurację w pliku configuration.php. Odnajdź linijkę zawierającą:

define('BAZINGA_CRON_UPDATE_SECONDS',3600);

Standardowo, skrypt ustawiony jest na odświeżanie co godzinę (3600 sekund). Wpisz tu swoją wartość i skonfiguruj odpowiednio CRON. Podanie w pliku konfiguracyjnym mniejszej wartości niż w konfiguracji samego CRON spowoduje, że na liście aukcji mogą pojawić się również te, które kończą się wczasie między kolejnymi wywołaniami skryptu, przez co użytkownik zostanie odesłany na aukcję już zakończoną.

Wklejenie kodu do szablonu

Ostatnią czynnością będzie wklejenie gotowego kodu z pliku template.html do kodu szablonu aukcji, którego używasz. Otwórz swój szablon w edytorze tekstowym Allegro i odnajdź odpowiednie miejsce - zwykle znajduje się prawie na samym dole. Skopiuj całą zawartość pliku template.html w to miejsce, zamieniając wcześniej wszystkie odwołania do http://localhost/ na odpowiednią ścieżkę do plików skryptu panelu na twoim serwerze.

Efekt końcowy

Przedstawione zdjęcie towarów za uprzejmością sklepu www.agd-pulawy.pl