ForumCała strona

Nawigacja

Aktualnie online

Gości online: 13

Użytkowników online: 0

Łącznie użytkowników: 25,405
Najnowszy użytkownik: kipolas

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

JazOOn
25.06.2025 23:43:19
Dziadziejemy jantom...

jantom
23.06.2025 21:37:31
Z ciekawo?ci pogrzeba?em w historii i jest gorzej ni? my?la?em. Skórka Nadzieja ma ju? 17 lat.

jantom
23.06.2025 21:33:12
... troch? zasiedzia?o Wink

jantom
23.06.2025 21:32:38
Cecha tego, jak z 20+ lat temu pisano strony - tabelki wsz?dzie, szczególnie do tworzenia uk?adów stron. PF d?ugo by? wierny tej tradycji. A obecny szablon Supportu napisa?em z 15 lat temu i chyba mu

Zbigniew@
22.06.2025 17:50:03
Dlaczego forum jest dost?pne tylko dla 10% ludzi? Poniewa? wi?kszo?? osób korzysta z internetu na urz?dzeniach mobilnych.

Pobierz now? wersj?
Pobierz podr?cznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Nawigacja

Pierwsza wtyczka do PHP-Fusion v7 cz.3: Wy?wietlanie

Napisane przez Chemikpil dnia 06 marca 2011 19:08 · 1 komentarz · 8302 czytań · Drukuj · Facebook · Wykop

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

#1 | khaman dnia 11 marca 2011 10:27
?wietny artyku? Cool

Dodaj komentarz

Zaloguj się, aby móc dodać komentarz.

Oceny

Tylko zarejestrowani użytkownicy mogą oceniać zawartość strony
Zaloguj się lub zarejestruj, żeby móc zagłosować.

Świetne! Świetne! 100% [1 głos]
Bardzo dobre Bardzo dobre 0% [0 głosów]
Dobre Dobre 0% [0 głosów]
Średnie Średnie 0% [0 głosów]
Słabe Słabe 0% [0 głosów]
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl