Nawigacja
Pierwsza wtyczka do PHP-Fusion v7 cz.3: Wyświetlanie
Napisane przez Chemikpil dnia 06 marca 2011 19:08 · 1 komentarz · 8008 czytań · · ·
Streszczenie:
Wiemy już jak stworzyć plik instalacyjny oraz pliki językowe. Jeżeli udało się Tobie poprawnie zainstalować naszą przykładową wtyczkę z partu 2, możemy przejść do następnego etapu. W tej części wygenerujemy losowy cytat i wypiszemy go na stronie oraz w panelu.Nowa strona
Na początek zajmiemy się stroną. Do tego celu utwórzmy w katalogu wtyczki nowy plik cite_index.php. PHP-Fusion narzuca nam pewną strukturę jakiej powinniśmy się trzymać, którą prezentuje poniżej.
<?php
require_once "../../maincore.php";
require_once THEMES."templates/header.php";
... Tutaj umieszczamy kod ...
require_once THEMES."templates/footer.php";
?>
Plik te są wymagane, gdy efekty chcemy wyświetlić na stronie, wykorzystując do tego skórkę, lub gdy mamy zamiar korzystać ze stałych lub funkcji zdefiniowanych w PHP-Fusion.
Skrypt losowania cytatów
Teraz przydała by się nam funkcja odpowiadająca za losowanie cytatów. Jako, że głównym celem artykułu jest pokazanie procesu tworzenia wtyczki, a nie metody losowania, analizę skryptu pozostawiam w indywidualnym zakresie. Poniżej znajduje się uzupełniona zawartość pliku cite_index.php.
<?php
require_once "../../maincore.php";
require_once THEMES."templates/header.php";
$cytaty[] = array("Światło myśli, że podróżuje szybciej niż cokolwiek innego. Ale myli się. Nieważne, jak szybko światło podróżuje, dowiaduje się, że ciemność dotarła tam pierwsza i czeka na nie", "Terry Pratchett");
$cytaty[] = array("I object to violence because when it appears to do good, the good is only temporary. The evil it does is permanent", "Mahatma Ghandi");
$cytaty[] = array("Człowiek jest tym, o czym przez cały dzień myśli", "Ralph Waldo Emerson");
$cytaty[] = array("Ten, kto nie jest wystarczająco odważny by podjąć ryzyko, niczego w życiu nie osiągnie", "Muhammad Ali");
$cytaty[] = array("Gdy jesteś na kogoś wściekły - napisz do niego list. Wyraz w nim swoje uczucia, opisz gniew i rozczarowanie. Nie hamuj się. Potem schowaj list do szuflady. Po dwóch dniach wyjmij go i przeczytaj. Czy wciąż chcesz go wysłać?", "H. Jackson Brown Jr.");
$rand = rand(0, 5);
require_once THEMES."templates/footer.php";
?>
Funkcje opentable i closetable
Mamy już wszystko po za faktycznym wyświetleniem cytatu. Do tego celu użyjemy funkcji opentable() i closetabel().
opentable($locale['CP104']);
echo $cytaty[$rand][0]." - ".$cytaty[$rand][1];
closetable();
Kto tworzył kiedykolwiek skórkę do PHP-Fusion, miał już styczność z tymi funkcjami i zna ich działanie. Wyjaśnienia należą się tym, dla których struktura pliku theme.php jest obca. Obydwie funkcje odpowiadają za wygląd środkowych panel, gdzie opentable() za początek wraz z tytułem przekazanym jako parametr, a closetable() za zakończenie. Pomiędzy nimi umieszczamy wszystko to co chcemy wyświetlić, w naszym przypadku jest to losowy cytat. Ja jako tytuł przekazałem zmienną językową, troszcząc się o tłumaczy którzy musieli by przeszukać cały plik w poszukiwaniu tekstów. Należy pamiętać by tą zmienną zadeklarować w pliku Polish.php. Muszę wspomnieć jeszcze o jednym elemencie. Jeżeli chcemy korzystać z plików językowych musimy je wcześniej dodać do pliku, używając tego kodu:
if (file_exists(INFUSIONS."last_and_next_match_panel/locale/".$settings['locale'].".php")) {
include INFUSIONS."last_and_next_match_panel/locale/".$settings['locale'].".php";
}
Teraz możemy sprawdzić efekty naszej pracy klikając w link losowy cytat, który powinien znajdować się w głównym menu. Jeżeli ktoś nie używa standardowego menu, musi odwołać się przez adres adres-strony/infusions/cite_panel/cite_index.php. Po niżej umieszczam ostateczną zawartość pliku cite_index.php
<?php
require_once "../../maincore.php";
require_once THEMES."templates/header.php";
if (file_exists(INFUSIONS."last_and_next_match_panel/locale/".$settings['locale'].".php")) {
include INFUSIONS."last_and_next_match_panel/locale/".$settings['locale'].".php";
}
$cytaty[] = array("Światło myśli, że podróżuje szybciej niż cokolwiek innego. Ale myli się. Nieważne, jak szybko światło podróżuje, dowiaduje się, że ciemność dotarła tam pierwsza i czeka na nie", "Terry Pratchett");
$cytaty[] = array("I object to violence because when it appears to do good, the good is only temporary. The evil it does is permanent", "Mahatma Ghandi");
$cytaty[] = array("Człowiek jest tym, o czym przez cały dzień myśli", "Ralph Waldo Emerson");
$cytaty[] = array("Ten, kto nie jest wystarczająco odważny by podjąć ryzyko, niczego w życiu nie osiągnie", "Muhammad Ali");
$cytaty[] = array("Gdy jesteś na kogoś wściekły - napisz do niego list. Wyraz w nim swoje uczucia, opisz gniew i rozczarowanie. Nie hamuj się. Potem schowaj list do szuflady. Po dwóch dniach wyjmij go i przeczytaj. Czy wciąż chcesz go wysłać?", "H. Jackson Brown Jr.");
$rand = rand(0, 5);
opentable("Losowy cytat");
echo $cytaty[$rand][0]." - ".$cytaty[$rand][1];
closetable();
require_once THEMES."templates/footer.php";
?>
Panel boczny
Po za podstroną, efekty działania wtyczki możemy wyświetlić w panelu bocznym. Przypominam, że każda wtyczka która posiada taki panel, musi znajdować się w folderze, którego nazwa kończy się na _panel. Skoro więc upewniłeś się, że twój katalog nosi poprawną nazwę, utwórz plik cite_panel.php i umieść w nim poniższy kod.
if (!defined("IN_FUSION")) { die("Access Denied"); }
Linijka ta zabezpiecza skrypt, przed bezpośrednim wywołaniem z adresu URL. Następnie umieszczamy skrypt odpowiedzialny za losowanie cytatu. Ja ten krok pominę, gdyż nie różni się on niczym od tego umieszczonego na stronie. Ostatnia rzeczą, która nam pozostała, to wyświetlenie cytatu. Wykorzystam do tego dwie kolejne funkcje definiowane w theme.php skórki, a mianowicie openside() i closeside()
openside("Losowy cytat");
echo $cytaty[$rand][0]."
".$cytaty[$rand][1];
closeside();
Obie funkcje pełnią taką same rolę co użyte na stronie, z tą różnicą, że jedne generują panel boczny a drugie panel środkowy. Poniżej cały plik cite_panel.php:
<?php
if (!defined("IN_FUSION")) { die("Access Denied"); }
$cytaty[] = array("Światło myśli, że podróżuje szybciej niż cokolwiek innego. Ale myli się. Nieważne, jak szybko światło podróżuje, dowiaduje się, że ciemność dotarła tam pierwsza i czeka na nie", "Terry Pratchett");
$cytaty[] = array("I object to violence because when it appears to do good, the good is only temporary. The evil it does is permanent", "Mahatma Ghandi");
$cytaty[] = array("Człowiek jest tym, o czym przez cały dzień myśli", "Ralph Waldo Emerson");
$cytaty[] = array("Ten, kto nie jest wystarczająco odważny by podjąć ryzyko, niczego w życiu nie osiągnie", "Muhammad Ali");
$cytaty[] = array("Gdy jesteś na kogoś wściekły - napisz do niego list. Wyraz w nim swoje uczucia, opisz gniew i rozczarowanie. Nie hamuj się. Potem schowaj list do szuflady. Po dwóch dniach wyjmij go i przeczytaj. Czy wciąż chcesz go wysłać?", "H. Jackson Brown Jr.");
$rand = rand(0, 4);
openside("losowy cytat");
echo $cytaty[$rand][0]." <br /> ".$cytaty[$rand][1];
closeside();
?>
Podsumowanie
I takim oto sposobem dobrnęliśmy do końca części trzeciej. Powinieneś już bez problemu napisać prostą wtyczkę i wyświetlić jej efekty na stronie i w panelu. W następnej części zajmiemy się obsługą bazy danych, czyli nauczymy się tworzyć tabele przy instalacji, wyciągać i aktualizować dane. Serdecznie zapraszam.
Komentarze
Dodaj komentarz
Oceny
Zaloguj się lub zarejestruj, żeby móc zagłosować.
Świetne! | 100% | [1 głos] | |
Bardzo dobre | 0% | [0 głosów] | |
Dobre | 0% | [0 głosów] | |
Średnie | 0% | [0 głosów] | |
Słabe | 0% | [0 głosów] |