Lokalizacja pliku: /engine/engine.php
Silnik systemu jest najważniejszym plikiem, który należy napisać dla błoga. Będzie on zawierał najbardziej popularne funkcje używane w całym systemie oraz definicje podstawowych zmiennych.
Rozpoczynamy skrypt PHP znacznikiem otwierającym:
Następnie ustawiamy set_magic_quotes_runtime na wartość zero, aby wszystkie zmienne przychodziły do skryptu w takiej formie, w jakiej zostały przesłane (za pomocą metody GET lub POST). Musimy pamiętać o tym, aby takie zmienne odpowiednio zabezpieczać
Rozpoczynamy sesję użytkownika. Sesję trzeba rozpocząć na samym początku skryptu, przed wysłaniem jakichkolwiek nagłówków do przeglądarki.
Teraz zarejestrujemy zmienne w sesji użytkownika. Będą to między innymi:
usr_id - zawierająca ID użytkownika,
usr_name - zawierająca nazwę użytkownika,
usr_email - zawierająca adres e-mail użytkownika,
usr_template - zawierająca szablon użytkownika,
usr_language - zawierająca język użytkownika,
usr_admin - zawierająca informację o tym, czy użytkownik jest administratorem serwisu,
uzy_login - zawierająca informację o tym, czy użytkownik jest zalogowany na swoim koncie w serwisie
Następnie, za pomocą instrukcji reąuire, dołączamy plik z konfiguracją bazy danych MySQL lub jakiejkolwiek innej bazy. Zawiera on podstawowe dane potrzebne do połączenia.
Wykrywamy, na jaką wartość jest ustawiona zmienna $DBIs. Jeżeli jest ustawiona na wartość mysąl, wówczas dołączamy za pomocą funkcji include sterownik do bazy danych.
Gdy sterownik bazy danych jest już podłączony, możemy uruchomić połączenie z tą bazą. Wykorzystujemy tutaj funkcję ze sterownika, przypisując ją do zmiennej SConnection. Wewnątrz funkcji podajemy dane potrzebne do nawiązania połączenia z serwerem baz danych.
Następnie sprawdzamy, czy połączenie zostało nawiązane, porównując zmienną $Connection z wartością FALSE.
Jeżeli zmienna ma wartość FALSE, wówczas wyświetlamy błąd
Następnie za pomocą funkcji exit() kończymy działanie skryptu.
Jeżeli połączenie zostało nawiązane, możemy wybrać bazę danych. Wybieramy ją za pomocą funkcji ze sterownika bazy danych. Wynik funkcji przypisujemy do zmiennej SSelectingDB.
Następnie sprawdzamy, czy baza danych została wybrana prawidłowo. Możemy to ustalić za pomocą instrukcji if, która sprawdza, czy zmienna, w której jest przechowywany wynik wybierania bazy danych, równa jest FALSE.
Jeśli zmienna jest równa FALSE, oznacza to, że wybranie tej bazy danych nie powiodło się. Wówczas wywołujemy odpowiedni komunikat.
Kończymy wykonywanie skryptu za pomocą instrukcji exit().
Zadeklarujemy teraz funkcję, która wyświetli informację o błędzie, jeśli wystąpił podczas wykonywania zapytania do bazy danych. W parametrach będzie przyjmowała nazwę pliku, linię, w której został popełniony błąd oraz źle sformułowane zapytanie SQL.
Wyświetlamy informację o błędzie w zapytaniu do bazy danych wraz z zapytaniem SQL, w którym błąd wystąpił.
W celu lepszej identyfikacji błędu możemy pobrać informacje zwrócone przez serwer bazy danych z funkcji ShowErrorOfDB().
Następnym etapem będzie pobranie tablicy konfiguracyjnej z systemu. Najpierw musimy sprawdzić, jaki interfejs bazy danych jest włączony do pliku.
Deklarujemy zapytanie SELECT, które wybierze wszystkie dane z tabeli konfiguracyjnej.
Sprawdzamy, czy zapytanie zostało wykonane poprawnie. Jeśli wystąpił błąd, odwołujemy się do funkcji wyświetlającej informacje o błędzie.
Do funkcji przekazujemy informację o błędzie w zapytaniu, plik, w którym on nastąpił, za pomocą _FILE_ , linie za pomocą _LINE_ i samo zapytanie do bazy danych, aby mogło zostać wyświetlone.
Jeżeli zapytanie, które wpisaliśmy, było poprawne, wówczas pobieramy wynik do zmiennej $Result i liczbę rekordów do zmiennej $Rows.
Następnie za pomocą pętli for przekształcamy uzyskaną z zapytania tablicę w tabelę asosjacyjną , w której kluczami będą wartości w polu config_name , natomiast wartościami dane wprowadzone do pola config_value.
Sprawdzamy, czy użytkownik jest załogowany na swoje konto w systemie. Korzystamy z funkcji empty, za pomocą której sprawdzamy, czy zmienna $_SESSION[tuzy_id'] zawiera jakąś wartość Jeżeli brak w niej wartości, wówczas definiujemy zmienne sesji jako puste.
Przy zmiennych $_SESSION['usr_template'] i $_SESSION['usr_language'] wpisujemy wartości z tablicy konfiguracyjnej, którą przed chwilą uzyskaliśmy . Dzięki temu dla użytkownika niezalogowanego zostanie ustalony domyślny szablon i język strony.
Teraz możemy przejść do blokowania użytkowników o określonym adresie IP. Na początek musimy sprawdzić, czy opcja ta została włączona za pomocą panelu administratora.
Jeżeli opcja została włączona, wówczas wykonujemy zapytanie, aby pobrać wszystkie numery IP, z których dostęp jest zabroniony.
Sprawdzamy, czy zapytanie zostało wykonane poprawnie.
Pobieramy wyniki zapytania do zmiennych zawierających wynik oraz ich liczbę.
Za pomocą pętli for sprawdzamy, czy którykolwiek z wyników pasuje do IP obecnego użytkownika zapisanego w zmiennej $_SERVER['REMOTE_ADDR'].
Jeżeli wynik pasuje do obecnego adresu IP użytkownika, możemy mu wyświetlić stronę z informacją, że nie ma dostępu do strony. W tym celu włączymy odpowiedni plik.
Następnie kończymy wykonywanie skryptu PHP za pomocą instrukcji exit().
Teraz należy włączyć zapisany w pliku określony język dla strony. Wpisujemy odpowiednią wartość w instrukcji if, aby sprawdzić, czy język został włączony.
Jeśli określony język dla strony nie został włączony, wyświetlamy odpowiedni komunikat.
Następnie kończymy pracę skryptu za pomocą instrukcji exit().
Teraz możemy wyświetlić szablon strony. Deklarujemy odpowiednią funkcję.
Wewnątrz funkcji musimy zadeklarować zmienne jako globalne, ponieważ są to zmienne ustawione poza funkcją i nie byłoby ich widać wewnątrz niej.
Następnie sprawdzamy za pomocą instrukcji if, czy można włączyć szablon użytkownika.
Jeżeli nie można go włączyć do pliku, wówczas wyświetlamy odpowiedni komunikat.
Wywołujemy także instrukcję exit() w celu zakończenia przetwarzania skryptu.
Funkcją, która będzie nam potrzebna, jest funkcja do deklaracji nagłówka strony. Przyjmuje ona argumenty :
META strony oraz $BriefOfPage - zawierający opis strony, który także zostanie umieszczone w sekcji META.
Na początek deklarujemy zmienne jako globalne, gdyż zostały one zadeklarowane na zewnątrz funkcji i daltego nie byłoby ich widać
Deklarujemy elementy języka XHTML odpowiedzialne za utworzenie nagłówka strony.
W miejscu, gdzie znacznik META przyjmuje parametr description, wpisujemy zmienną odpowiedzialną za opis strony.
Natomiast w miejscu, gdzie znacznik META przyjmuje parametr keywords, wpisujemy zmienną odpowiedzialną za słowa kluczowe dla danej strony.
Następnie włączamy plik ze stylami CSS, za pomocą których będzie sformatowana nasza strona.
W znaczniku title, czyli w tytule strony, wpisujemy zawartość zmiennej SSiteTitle, a następnie nazwę systemową strony WWW SConfigurationOfSite ['name'].
Teraz deklarujemy tabelę, w której będzie zawarte logo naszej strony. Przypisujemy tabeli i komórce odpowiednie nazwy stylów, które później zadeklarujemy w arkuszu stylów CSS.
Następnie wprowadzamy funkcję, która wyświetli ścieżkę dostępu do strony, na której obecnie się znajdujemy.
Deklarujemy zmienną $URIForModule jako globalną, gdyż jest ona zdefiniowana poza funkcją.
Następnie wyświetlamy ścieżkę za pomocą instrukcji echo.
Deklarujemy funkcję wyświetlającą bloki po lewej stronie naszej witryny.
Definiujemy wartości pobieranych zmiennych jako zmienne globalne, gdyż są zadeklarowane poza funkcją i nie byłyby widoczne.
Następnie sprawdzamy, jaka baza danych jest włączona, i deklarujemy odpowiednie zapytanie.
Za pomocą interfejsu wykonujemy zapytanie do bazy danych.
Pobieramy wyniki zapytania i umieszczamy je w zmiennych.
Deklarujemy tabelę w języku XHTML wraz z przypisaną do niej klasą, za pomocą której będziemy mogli ją później sformatować w arkuszu stylów CSS.
Rozpoczynamy pętlę for w celu wyświetlenia wszystkich bloków ustawionych po tej stronie witryny.
Wyświetlamy nagłówek bloku wraz z jego nazwą pobraną z bazy danych.
Następnie, za pomocą instrukcji include(), włączamy plik zawierający dany blok, w celu jego wyświetlenia.
Zamykamy całą tabelę bloków po lewej stronie.
Teraz deklarujemy funkcję wyświetlającą bloki po prawej stronie naszej witryny.
Definiujemy wartości zmiennych pobieranych jako zmienne globalne gdyż są zadeklarowane poza funkcją i nie byłyby widoczne.
Następnie sprawdzamy, jaka baza danych jest włączona i deklarujemy odpowiednie zapytanie.
Za pomocą interfejsu wykonujemy zapytanie do bazy danych.
Pobieramy wyniki zapytania i umieszczamy je w zmiennych.
Deklarujemy tabelę w języku XHTML wraz z przypisaną do niej klasą, za pomocą której będziemy mogli ją później sformatować w arkuszu stylów CSS.
Rozpoczynamy pętlę for w celu wyświetlenia wszystkich bloków ustawionych po tej stronie witryny.
Wyświetlamy nagłówek bloku wraz z jego nazwą pobraną z bazy danych.
Następnie, za pomocą instrukcji include(), włączamy plik zawierający dany blok, w celu jego wyświetlenia.
Zamykamy całą tabelę bloków po prawej stronie.
Deklarujemy funkcję, która wyświetli nam stopkę strony wraz z napisem Copyright.
Elementy w stopce umieszczamy na warstwie, która dzięki przypisaniu do niej klasy zostanie później odpowiednio sformatowana w stylach CSS.
Następnie możemy zadeklarować funkcję, która wyświetli nam błąd, jeśli taki wystąpi. Funkcja ma jeden argument $lnformationContent, zawierający informacje o błędzie.
Potrzebna będzie także funkcja, która poinformuje użytkownika o pomyślnym zakończeniu akcji. Będzie ona przyjmowała jeden argument $lnformationContent, zawierający informację o działaniach, które udało się wykonać
Należy także zdefiniować funkcję do logowania się na konto administratora, aby przy bezpośrednim wejściu do panelu użytkownik mógł się od razu zalogować
Deklarujemy formularz, który zostanie wysłany do pliku login.php ze skryptem do logowania w serwisie. W formularzu umieścimy dwa pola. Pierwsze będzie przeznaczone na login, drugie na hasło do konta.
Silnik systemu jest najważniejszym plikiem, który należy napisać dla błoga. Będzie on zawierał najbardziej popularne funkcje używane w całym systemie oraz definicje podstawowych zmiennych.
Rozpoczynamy skrypt PHP znacznikiem otwierającym:
Kod PHP:
<?php
Następnie ustawiamy set_magic_quotes_runtime na wartość zero, aby wszystkie zmienne przychodziły do skryptu w takiej formie, w jakiej zostały przesłane (za pomocą metody GET lub POST). Musimy pamiętać o tym, aby takie zmienne odpowiednio zabezpieczać
Kod PHP:
set_magic_quotes_runtime(0);
Rozpoczynamy sesję użytkownika. Sesję trzeba rozpocząć na samym początku skryptu, przed wysłaniem jakichkolwiek nagłówków do przeglądarki.
Kod PHP:
session_start();
Teraz zarejestrujemy zmienne w sesji użytkownika. Będą to między innymi:
usr_id - zawierająca ID użytkownika,
usr_name - zawierająca nazwę użytkownika,
usr_email - zawierająca adres e-mail użytkownika,
usr_template - zawierająca szablon użytkownika,
usr_language - zawierająca język użytkownika,
usr_admin - zawierająca informację o tym, czy użytkownik jest administratorem serwisu,
uzy_login - zawierająca informację o tym, czy użytkownik jest zalogowany na swoim koncie w serwisie
Kod PHP:
session_register('usr_id');
session_register('urs_name');
session_register('usr_email');
session_register('usr_template');
session_register('usr_language');
session_register('usr_admin');
session_register('usr_login');
Następnie, za pomocą instrukcji reąuire, dołączamy plik z konfiguracją bazy danych MySQL lub jakiejkolwiek innej bazy. Zawiera on podstawowe dane potrzebne do połączenia.
Kod PHP:
reąuire('./config.php');
Wykrywamy, na jaką wartość jest ustawiona zmienna $DBIs. Jeżeli jest ustawiona na wartość mysąl, wówczas dołączamy za pomocą funkcji include sterownik do bazy danych.
Kod PHP:
if($DBIs == 'mysql')
include('./engine/mysql_drv.php');
}
Gdy sterownik bazy danych jest już podłączony, możemy uruchomić połączenie z tą bazą. Wykorzystujemy tutaj funkcję ze sterownika, przypisując ją do zmiennej SConnection. Wewnątrz funkcji podajemy dane potrzebne do nawiązania połączenia z serwerem baz danych.
Kod PHP:
$Connection = ConnectToDB( $HostToDB, $UserLogin, $UserPassword);
Następnie sprawdzamy, czy połączenie zostało nawiązane, porównując zmienną $Connection z wartością FALSE.
Kod PHP:
if($Connection == FALSE) {
Jeżeli zmienna ma wartość FALSE, wówczas wyświetlamy błąd
Kod PHP:
echo 'It is no ability to connect with the database.';
Następnie za pomocą funkcji exit() kończymy działanie skryptu.
Kod PHP:
exit();
}
Jeżeli połączenie zostało nawiązane, możemy wybrać bazę danych. Wybieramy ją za pomocą funkcji ze sterownika bazy danych. Wynik funkcji przypisujemy do zmiennej SSelectingDB.
Kod PHP:
$SelectingDB = SelectDB($DBName);
Następnie sprawdzamy, czy baza danych została wybrana prawidłowo. Możemy to ustalić za pomocą instrukcji if, która sprawdza, czy zmienna, w której jest przechowywany wynik wybierania bazy danych, równa jest FALSE.
Kod PHP:
if ($SelectingDB == FALSE) {
Jeśli zmienna jest równa FALSE, oznacza to, że wybranie tej bazy danych nie powiodło się. Wówczas wywołujemy odpowiedni komunikat.
Kod PHP:
echo 'It is no ability to select the database in the server.';
Kończymy wykonywanie skryptu za pomocą instrukcji exit().
Kod PHP:
exit();
}
Zadeklarujemy teraz funkcję, która wyświetli informację o błędzie, jeśli wystąpił podczas wykonywania zapytania do bazy danych. W parametrach będzie przyjmowała nazwę pliku, linię, w której został popełniony błąd oraz źle sformułowane zapytanie SQL.
Kod PHP:
function DBShowError($Message,$ErrorFhow_many,$ErrorLine,$ErrorSQLQuery)
{
Wyświetlamy informację o błędzie w zapytaniu do bazy danych wraz z zapytaniem SQL, w którym błąd wystąpił.
Kod PHP:
echo 'Error in DB' ;
echo '<br />';
echo 'In file: '.$ErrorFhow many;
echo '<br />';
echo 'On line: '.$ErrorLine;
echo 1<br />';
echo 'In Query: '.$ErrorSQLQuery;
echo '<br />';
W celu lepszej identyfikacji błędu możemy pobrać informacje zwrócone przez serwer bazy danych z funkcji ShowErrorOfDB().
Kod PHP:
echo 'Information from DB:';
echo ShowErrorOfDB();
}
Następnym etapem będzie pobranie tablicy konfiguracyjnej z systemu. Najpierw musimy sprawdzić, jaki interfejs bazy danych jest włączony do pliku.
Kod PHP:
if($DBIs == 'mysql')
{
Deklarujemy zapytanie SELECT, które wybierze wszystkie dane z tabeli konfiguracyjnej.
Kod PHP:
$QueryConfig = 'SELECT config_name, config_value FROM '.$TablePrefix.'config';
}
Sprawdzamy, czy zapytanie zostało wykonane poprawnie. Jeśli wystąpił błąd, odwołujemy się do funkcji wyświetlającej informacje o błędzie.
Kod PHP:
if(!MakeQuery($QueryConfig))
{
Do funkcji przekazujemy informację o błędzie w zapytaniu, plik, w którym on nastąpił, za pomocą _FILE_ , linie za pomocą _LINE_ i samo zapytanie do bazy danych, aby mogło zostać wyświetlone.
Kod PHP:
DBShowError('Error in Query',_FILE_,_LINE_,$QueryConfig);
}
Jeżeli zapytanie, które wpisaliśmy, było poprawne, wówczas pobieramy wynik do zmiennej $Result i liczbę rekordów do zmiennej $Rows.
Kod PHP:
$Result = GetResult(); $Rows = GetHowMany();
Następnie za pomocą pętli for przekształcamy uzyskaną z zapytania tablicę w tabelę asosjacyjną , w której kluczami będą wartości w polu config_name , natomiast wartościami dane wprowadzone do pola config_value.
Kod PHP:
for($i=0;$i<$Rows;$i++)
{
$KeyResult = $Result[$i]['config_name'];
$ConfigurationOfSite[$KeyResult] = $Result[$i]['config_value'];
}
Sprawdzamy, czy użytkownik jest załogowany na swoje konto w systemie. Korzystamy z funkcji empty, za pomocą której sprawdzamy, czy zmienna $_SESSION[tuzy_id'] zawiera jakąś wartość Jeżeli brak w niej wartości, wówczas definiujemy zmienne sesji jako puste.
Kod PHP:
if(empty($_SESSION['usr_id']))
{
$_SESSI0N['usr_id'] = '';
$_SESSI0N['urs_name'] = '';
$_SESSI0N['usr_email'] = '';
Przy zmiennych $_SESSION['usr_template'] i $_SESSION['usr_language'] wpisujemy wartości z tablicy konfiguracyjnej, którą przed chwilą uzyskaliśmy . Dzięki temu dla użytkownika niezalogowanego zostanie ustalony domyślny szablon i język strony.
Kod PHP:
$_SESSI0N['usr_template'] = $ConfigurationOfSite['dt'];
$_SESSI0N['usr_language'] = $ConfigurationOfSite['dl'];
$_SESSI0N['usr_admin'] = '';
$_SESSI0N['usr_login'] = '';
}
Teraz możemy przejść do blokowania użytkowników o określonym adresie IP. Na początek musimy sprawdzić, czy opcja ta została włączona za pomocą panelu administratora.
Kod PHP:
if($ConfigurationOfSite['blip'] == 'yes'){
Jeżeli opcja została włączona, wówczas wykonujemy zapytanie, aby pobrać wszystkie numery IP, z których dostęp jest zabroniony.
Kod PHP:
if($DBIs == 'mysql') {
$QueryIP = 'SELECT ip_number FR0M '.$TablePrefix.'baningip';
}
Sprawdzamy, czy zapytanie zostało wykonane poprawnie.
Kod PHP:
if(!MakeQuery($QueryIP))
{
DBShowError('Error in Query',_FILE_,_LINE_,$QueryIP);
}
Pobieramy wyniki zapytania do zmiennych zawierających wynik oraz ich liczbę.
Kod PHP:
$Result = GetResult();
$Rows = GetHowMany();
Za pomocą pętli for sprawdzamy, czy którykolwiek z wyników pasuje do IP obecnego użytkownika zapisanego w zmiennej $_SERVER['REMOTE_ADDR'].
Kod PHP:
for($i=0;$i<$Rows;$i++)
{
if($Result[$i]['ip_number'] == $_SERVER['REM0TE_ADDR'])
{
Jeżeli wynik pasuje do obecnego adresu IP użytkownika, możemy mu wyświetlić stronę z informacją, że nie ma dostępu do strony. W tym celu włączymy odpowiedni plik.
Kod PHP:
include('./html_page/'.addslashes($_SESSI0N['usr_language']).'/ban_ip.html');
Następnie kończymy wykonywanie skryptu PHP za pomocą instrukcji exit().
Kod PHP:
exit();
}
}
}
Teraz należy włączyć zapisany w pliku określony język dla strony. Wpisujemy odpowiednią wartość w instrukcji if, aby sprawdzić, czy język został włączony.
Kod PHP:
if(!include('./language/'.addslashes($_SESSI0N['usr_language']).'/language.php'))
{
Jeśli określony język dla strony nie został włączony, wyświetlamy odpowiedni komunikat.
Kod PHP:
echo 'No language file found: '.addslashes($_SESSI0N U['usr_language']);
Następnie kończymy pracę skryptu za pomocą instrukcji exit().
Kod PHP:
exit();
}
Teraz możemy wyświetlić szablon strony. Deklarujemy odpowiednią funkcję.
Kod PHP:
function PrintThemOfSite()
{
Wewnątrz funkcji musimy zadeklarować zmienne jako globalne, ponieważ są to zmienne ustawione poza funkcją i nie byłoby ich widać wewnątrz niej.
Kod PHP:
global $CMSModule;
global $SiteTitle;
global $SiteKeywords;
global $Brief0fPage;
Następnie sprawdzamy za pomocą instrukcji if, czy można włączyć szablon użytkownika.
Kod PHP:
if(!include('./themes/'.addslashes($_SESSI0N['usr_template']).'/theme.php'))
{
Jeżeli nie można go włączyć do pliku, wówczas wyświetlamy odpowiedni komunikat.
Kod PHP:
echo 'File not found: '.addslashes($_SESSI0N['usr_template']);
Wywołujemy także instrukcję exit() w celu zakończenia przetwarzania skryptu.
Kod PHP:
exit () ;
}
}
Funkcją, która będzie nam potrzebna, jest funkcja do deklaracji nagłówka strony. Przyjmuje ona argumenty :
- $SiteTitle - zawierający tytuł obecnej strony,
- $Keywords - zawierający słowa kluczowe, które zostaną umieszczone w sekcji .
META strony oraz $BriefOfPage - zawierający opis strony, który także zostanie umieszczone w sekcji META.
Kod PHP:
function PrintHeader($SiteTitle,$Keywords,$BriefOfPage)
{
Na początek deklarujemy zmienne jako globalne, gdyż zostały one zadeklarowane na zewnątrz funkcji i daltego nie byłoby ich widać
Kod PHP:
global $ConfigurationOfSite;
global $PageLanguage;
Deklarujemy elementy języka XHTML odpowiedzialne za utworzenie nagłówka strony.
Kod PHP:
echo '<?xml version="l.0" encoding='".$PageLanguage['coding'].'"?>';
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"';
echo '"http://localhost/dtd/xhtmlll.dtd">';
echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="'.$PageLanguage['lang'].'">';
echo '<head>';
echo '<meta http-equiv="Content-Type" content="text/html; charset='.$PageLanguage['coding'].'" />';
echo '<meta http-equiv="Content-language" content="'.$PageLanguage['lang_config'].'" />';
echo 'cmeta name="copyright" content="Cemesik CMS" />';
W miejscu, gdzie znacznik META przyjmuje parametr description, wpisujemy zmienną odpowiedzialną za opis strony.
Kod PHP:
echo '<meta name="description" content="'.$BriefOfPage.'" />';
Natomiast w miejscu, gdzie znacznik META przyjmuje parametr keywords, wpisujemy zmienną odpowiedzialną za słowa kluczowe dla danej strony.
Kod PHP:
echo '<meta name="keywords" content="'.$Keywords.'" />';
echo '<meta name="robots" content="all" />';
echo '<meta name="rating" content="general" />';
echo '<meta name="reso-urce-type" content="document" />';
echo '<meta name="generator" content="Cemesik Blog" /> ';
Następnie włączamy plik ze stylami CSS, za pomocą których będzie sformatowana nasza strona.
Kod PHP:
echo '<link rel="stylesheet" type="text/css" href="themes/'.addslashes($_SESSION['usr_template']).'/style.css" />';
W znaczniku title, czyli w tytule strony, wpisujemy zawartość zmiennej SSiteTitle, a następnie nazwę systemową strony WWW SConfigurationOfSite ['name'].
Kod PHP:
echo '<title>'.$SiteTitle.''.$ConfigurationOfSite['name'].'</title>';
echo '</head>';
echo '<body>';
Teraz deklarujemy tabelę, w której będzie zawarte logo naszej strony. Przypisujemy tabeli i komórce odpowiednie nazwy stylów, które później zadeklarujemy w arkuszu stylów CSS.
Kod PHP:
echo '<table class="table_logo">';
echo '<tr>';
echo '<td class="row_logo"></td>';
echo '</tr>';
echo '</table>';
}
Następnie wprowadzamy funkcję, która wyświetli ścieżkę dostępu do strony, na której obecnie się znajdujemy.
Kod PHP:
function PrintPath()
{
Deklarujemy zmienną $URIForModule jako globalną, gdyż jest ona zdefiniowana poza funkcją.
Kod PHP:
global $URIForModule;
Następnie wyświetlamy ścieżkę za pomocą instrukcji echo.
Kod PHP:
echo $URIForModule;
}
Deklarujemy funkcję wyświetlającą bloki po lewej stronie naszej witryny.
Kod PHP:
function PrintLeftMenu()
{
Definiujemy wartości pobieranych zmiennych jako zmienne globalne, gdyż są zadeklarowane poza funkcją i nie byłyby widoczne.
Kod PHP:
global $DBIs;
global $TablePrefix;
Następnie sprawdzamy, jaka baza danych jest włączona, i deklarujemy odpowiednie zapytanie.
Kod PHP:
if($DBIs == 'mysql')
{
$QueryBlock= ' SELECT * FROM '.$TablePrefix.'blocks
WHERE
block_side = "1"
AND
block_active = "t"
ORDER BY
block_poz ASC';
}
Za pomocą interfejsu wykonujemy zapytanie do bazy danych.
Kod PHP:
if(!MakeQuery($QueryBlock))
{
DBShowError('Error in Query',_FILE_,_LINE_,$QueryBlock);
}
Pobieramy wyniki zapytania i umieszczamy je w zmiennych.
Kod PHP:
$Result = GetResult();
$Rows = GetHowMany();
Deklarujemy tabelę w języku XHTML wraz z przypisaną do niej klasą, za pomocą której będziemy mogli ją później sformatować w arkuszu stylów CSS.
Kod PHP:
echo '<table class="l_menu" cellpadding="0" cellspacing="0">';
Rozpoczynamy pętlę for w celu wyświetlenia wszystkich bloków ustawionych po tej stronie witryny.
Kod PHP:
for($i=0;$i<$Rows;$i++)
{
Wyświetlamy nagłówek bloku wraz z jego nazwą pobraną z bazy danych.
Kod PHP:
echo '<tr>';
echo '<td class="1_1">'.stripslashes($Result[$i]['block_show']).'</td>';
echo '</tr>';
echo '<tr>';
echo '<td class="1_2">';
Następnie, za pomocą instrukcji include(), włączamy plik zawierający dany blok, w celu jego wyświetlenia.
Kod PHP:
include('./blocks/'.$Result[$i]['block_name'].'/'.$Result [$i]['block_name'].'.php');
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td class="1_3"></td>';
echo '</tr>';
}
Zamykamy całą tabelę bloków po lewej stronie.
Kod PHP:
echo '</table>';
}
Teraz deklarujemy funkcję wyświetlającą bloki po prawej stronie naszej witryny.
Kod PHP:
function PrintRightMenu()
{
Definiujemy wartości zmiennych pobieranych jako zmienne globalne gdyż są zadeklarowane poza funkcją i nie byłyby widoczne.
Kod PHP:
global $DBIs;
global $TablePrefix;
Następnie sprawdzamy, jaka baza danych jest włączona i deklarujemy odpowiednie zapytanie.
Kod PHP:
if($DBIs == 'mysql')
{
$QueryBlock= 1 SELECT * FR0M '.$TablePrefix.'blocks
WHERE
block_side = "p"
AND
block_active = "t"
ORDER BY
block_poz ASC';
}
Za pomocą interfejsu wykonujemy zapytanie do bazy danych.
Kod PHP:
if(!MakeQuery($QueryBlock))
{
DBShowError('Error in Query',_FILE_,_LINE_, $QueryBlock);
}
Pobieramy wyniki zapytania i umieszczamy je w zmiennych.
Kod PHP:
$Result = GetResult();
$Rows = GetHowMany();
Deklarujemy tabelę w języku XHTML wraz z przypisaną do niej klasą, za pomocą której będziemy mogli ją później sformatować w arkuszu stylów CSS.
Kod PHP:
echo '<table class="p_menu" cellpadding="0" cellspacing="0">';
Rozpoczynamy pętlę for w celu wyświetlenia wszystkich bloków ustawionych po tej stronie witryny.
Kod PHP:
for ($i=0;$i<$Rows;$i++)
{
Wyświetlamy nagłówek bloku wraz z jego nazwą pobraną z bazy danych.
Kod PHP:
echo '<tr>';
echo '<td class="p_l">'.stripslashes($Result[$i]['block_show']).'</td>';
echo '</tr>';
echo '<tr>';
echo '<td class="p_2">';
Następnie, za pomocą instrukcji include(), włączamy plik zawierający dany blok, w celu jego wyświetlenia.
Kod PHP:
include('./blocks/'.$Result[$i]['block_name'].'/'.$Result[$i]['block_name'].'.php');
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td class="p_3"></td>';
echo '</tr>';
}
Zamykamy całą tabelę bloków po prawej stronie.
Kod PHP:
echo '</table>';
}
Deklarujemy funkcję, która wyświetli nam stopkę strony wraz z napisem Copyright.
Kod PHP:
function PrintFoot
{
Elementy w stopce umieszczamy na warstwie, która dzięki przypisaniu do niej klasy zostanie później odpowiednio sformatowana w stylach CSS.
Kod PHP:
echo '<div class="foot">';
echo 'Copyright © 2004-2025 <a href="http://cemesik.7m.pl">Cemesik Blog</a>';
echo '</div>';
echo '</body>';
echo '</html>';
}
Następnie możemy zadeklarować funkcję, która wyświetli nam błąd, jeśli taki wystąpi. Funkcja ma jeden argument $lnformationContent, zawierający informacje o błędzie.
Kod PHP:
function PrintError($InformationContent)
global $PageLanguage;
echo '<div class="badstyle">';
echo $InformationContent;
echo '<br />';
echo $PageLanguage['back_error'];
echo '</div>';
}
Potrzebna będzie także funkcja, która poinformuje użytkownika o pomyślnym zakończeniu akcji. Będzie ona przyjmowała jeden argument $lnformationContent, zawierający informację o działaniach, które udało się wykonać
Kod PHP:
function PrintOK($InformationContent)
{
global $PageLanguage;
echo '<div class="isok">';
echo $InformationContent;
echo '<br />';
echo $PageLanguage['good_go_next'];
echo '</div>';
}
Należy także zdefiniować funkcję do logowania się na konto administratora, aby przy bezpośrednim wejściu do panelu użytkownik mógł się od razu zalogować
Kod PHP:
function ShowLoginForm()
{
global $AdminLang;
?>
Deklarujemy formularz, który zostanie wysłany do pliku login.php ze skryptem do logowania w serwisie. W formularzu umieścimy dwa pola. Pierwsze będzie przeznaczone na login, drugie na hasło do konta.
Kod PHP:
<form method="post" action="login.php">
<table>
<tr>
<td><?php echo $AdminLang['account_name'];?></td>
<td><input type="text" name="account_login"></td>
</tr>
<tr>
<td><?php echo $AdminLang['password_access'];?></td>
<td><input type="password" name="account_pwd"></td>
</tr>
<tr>
<td></td>
<td><input type="hidden" name="login" value="yes"><input type="submit" value="<?php echo $AdminLang['login_me'];?>"></td>
</tr>
</table>
</form>
<?php
}
?>