Nawigacja
Pierwsza wtyczka do PHP-Fusion v7 cz.3: Wy?wietlanie
Napisane przez Chemikpil
dnia 06 marca 2011 19:08 ·
1 komentarz ·
8302 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] |