Pluginy do programu Adder
Transkrypt
Pluginy do programu Adder
Pluginy do programu Adder rozbudowa narzędzi ( www.seoadder.info ) System pluginów System pluginów pozwala na własną rękę rozwój oprogramowania SEO Adder o nowe narzędzia, które będą widoczne wewnątrz programu w zakładce Adder → Strefa SEO → Narzędzia. Kla kogo? Po co? Jeśli jesteś programistą języka PHP lub osobą, która może zlecić napisanie plugina możesz stworzyć nowe narzędzia do programu, które usprawnią promocję Twoich promowanych stron. Dodatkowo można zgłosić plugin do firmy Enterso ( [email protected] ), aby Twój plugin był dostępny dla pozostałych użytkowników. Najlepsze zaproponowane pluginy będą wynagradzane pieniężnie oraz poprzez wyróżnienia. Struktura budowy pluginu (pliki i foldery) W programie Adder w plikach na FTP znajduje się folder /adder/tools/. Program automatycznie wczytuje podfoldery, traktując je jako nowy plugin. Nie potrzeba instalować pluginów. Będziemy się posługiwać sformułowaniem „TwojPlugin” - oznacza to nazwę Twojego pluginu. Folder z pluginem np. /adder/tools/TwojPlugin/ powinien zawierać: 1. /adder/tools/TwojPlugin/class.TwojPlugin.php – plik ten jest głównym plikiem PHP obsługującym plugin. Zawierać powinien statyczną klasę z rozszeżeniem schemaTools (najlepiej spojrzeć na przykładową klasę zamieszczoną poniżej). 2. /adder/tools/TwojPlugin/js/ - Folder ten może przechowywać pliki JavaScript. Program Adder wczyta wszystkie pliki z końcówką *.js . 3. /adder/tools/TwojPlugin/tpl/ - Folder ten może zawierać szablony HTML. Program Adder wczyta dwa pliki: a. TwojPlugin_start.tpl – szablon będzie wyświetlany w programie podczas wejścia w zakładkę Adder->Narzędzia->TwojPlugin. Spełnia on rolę formularza do pobrania danych takich jak np. adres strony URL, słowa kluczowe itp. b. TwojPlugin_result.tpl – szablon będzie wyświetlany w programie podczas pokazywania wyniku pluginu Budowa pluginu - wymagania i zalecenia 1. Połączenia z innymi serwerami Nie wolno stosować połączeń file_get_contents oraz cURL, ponieważ jest już gotowa klasa odpowiednio spreparowana na potrzeby programu Adder Przykładowe wykorzystanie cURL-a: $curl = new EntersoCurl(); $curlopt[CURLOPT_HTTPHEADER] = array('Host: '.$pingSiteInfo['host'], 'Content-type: text/xml', 'Content-length: '.$pingFrameLength."\n", $pingFrame->asXML()); $curlopt[CURLOPT_CUSTOMREQUEST] = 'POST'; // lub GET $curlopt[CURLOPT_TIMEOUT] = 3; // Maksymalny czas oczekiwania // $prop – odpowiada za ustawienia niestandarwoe jak powyżej $prop = array('curl'=>$curlopt, 'merge'=>true); // Dodanie strony do pobrania $curl->addSite('http://google.pl', $prop); $curl->addSite('http://onet.pl'); // W tym miejscu rozpoczyna pobieranie stron, które zostały dodane // Może być użyte także execute(true). True oznacza pobranie tablicy wszystkich stron, nie // tylko ostatniej $data = $curl->execute(); // Zmienna tablicowa $data zawiera teraz wszystkie pobrane strony wraz z informacjami. // Pobranie kodu html strony $contentHTML = $data['content']; // Kod pobrania strony. 200 oznacza prawidłowe. 404 brak strony. 403 zabroniony dostęp. $codeHTML = ['info']['http_code']; Powyższy kod pokazuje większość możliwości klasy EntersoCurl. Jednak aby tylko pobrać kod źródłowy strony wystarczy prosty kod: $curl = new EntersoCurl(); $curl->addSite('http://onet.pl'); $data = $curl->execute(); $contentHTML = $data['content']; 2. Folder tymczasowy - tmp Jeśli potrzebujesz zapisywać pliki tymczasowe prosimy skorzystać z folderu /adder/tmp/tools/TwojPlugin/. 3. Dodatkowe funkcje Program zawiera wbudowane funkcje, które mogą Tobie pomóc podczas tworzenia pluginu. Klasa Common a) Funkcja wyodrebniajaca formularz z kodu HTML. Zapisuje form, input,textarea w postaci XML Wywołanie : $xml = Common::extractXMLForm($codeHTML); b) Losowanie bardziej rzeczywiste niż fukcja PHP, która często nie pokazuje losowości Wywołanie : $randNumber = Common::losuj(100); // Losuje liczbę z zakresu 0-100 c) Usunięcie polskich znaków. Zamienia ą na a, ś na s itp. Wywołanie : $withoutPL = Common::DelStringPL('Łódź'); // Zwróci „Lodz” d) Zamiana polskiego stronga na małe litery. Funkcja strtolower nie potrafi zamienić np. Ś na ś. Wywołanie : $smallLetter = Common::strtolowerPL('ŚNIEŻka'); // Zwróci „śnieżka” e) Zapisanie zmiennej do programu na stałe w postaci rekordu w bazie danych MySQL (tabela adder_cfg). Jeśli była wcześniej zmienna to ją nadpisze. Jeśli nie było zmiennej to ją doda. Wywołanie : Common::cfgSet('nazwaZmiennej','wartość'); f) Odczytanie zmiennej z programu zapisanej w bazie danych MySQL (tabela adder_cfg) Wywołanie : $zmienna = Common::cfgGet('nazwaZmiennej'); g) Funkcja dopisuje http:// do adresu URL jeśli go brakuje. Wywołanie : $urlZhttp = Common::prepareUrlWithHttp('wp.pl'); h) Funkcja usuwa http:// i https:// z adresu URL Wywołanie : $urlBezhttp = Common::prepareUrlWithoutHttp('http://wp.pl'); i) Funkcja wyciąga główny adres URL z całego URLa i usuwa http:// np. z http://wp.pl/kat/abc.php?a=6 zwraca wp.pl/kat/ Wywołanie : $mainUrl = Common::prepareMainUrlWithoutHttp('wp.pl/kat/b.html'); Klasa String ( adder/inc/class.string.php ) a) Metoda konwertująca stringa na dane kodowanie (najczesciej z UTF na ISO). $charset – oczekiwane kodowanie. $from – z jakiego kodowania. $tekst - tekst do przekonwertowania (można tekże podać tablicę) Wywołanie : $tekst = String::prepareStringEncoded($charset, $tekst, $from = 'utf-8') 4. Plugin może wykorzystywać dane z bazy MySQL poprzez PDO. Nazwę tabel należy pisać zawsze poprzez adder_. Program automatycznie zamienia na ewentualny inny prefix, który był podany podcas instalacji. ( http://php.net/manual/en/book.pdo.php ) Przykład: $sql = SPDO::getInstance(); $q = $sql->prepare('SELECT * FROM adder_url WHERE id = :id'); $q->bindValue(':id', 1500); try { $q->execute(); } catch(PDOException $e) { echo 'Error: '.$e->getMessage(); } $wynik = $q->fetchAll(PDO::FETCH_ASSOC); 5. Szablony HTML obsługiwane są za pomocą Smarty ( http://www.smarty.net/ ) w PHP: $tpl -> assign('zmienna', 'wartosc'); $tpl -> display('szablon.tpl'); w HTML: <div>($zmienna)</div> Zakazane funkcje Z uwagi na różnorodność serwerów w programie Adder powstały funkcje zastępcze, które są bardziej uniwersalne w zastosowaniu. file_get_content() i cURL – należy zastosować zastępczo klasę EntersoCurl iconv() – należy zastosować zastępczo klasę String Oznaczenie pluginu Plugin powinien zawierać podstawowe informacje takie jak nazwa, autor, kategoria narzędzia, pomoc Przykłądowa klasa Proszę wejdź do folderu z programem Adder i odnajdź /adder/tools/schema.tools.php. Jest to plik, który narzuca jak ma wyglądać klasa pluginu. Jeśli brakuje danej funkcji w pluginie to schema.tools.php użyje funkcji domyślnej. Plik schema.tools.php i folder z przykładowym pluginem /adder/tools/validate/ nie zostały zakodowane, abyś mógł przyjrzeć się jak wygląda tworzenie pluginów w praktyce. Pomoc Zapraszamy do kontaktu z [email protected] w celu uzyskania szerszej pomocy lub informacji na temat współpracy przy rozwijaniu programu Adder.