ForumCała strona

Nawigacja

Aktualnie online

Gości online: 1

Użytkowników online: 0

Łącznie użytkowników: 25,400
Najnowszy użytkownik: AlojzyBartek

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

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

Zbigniew@
17.11.2024 11:33:24
Nie ten grzeszy kto pije, ale ten, kto się nie upije.

JazOOn
16.11.2024 20:46:18
tja

Zbigniew@
15.11.2024 18:58:17
Kto pije, ten nie bije.

JazOOn
31.10.2024 20:49:47
Kto pije?

piterus
30.10.2024 19:45:48
I będziemy śpiewać: "Kiedy 20 blisko, przebadaj wszystko, przebadaj wszystko..." Pfft

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 · 8000 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