Wczoraj, 12:36 AM
Kod PHP:
<?php
Kod PHP:
class Core
{
Kod PHP:
protected $AppBody;
Dwie zmienne odpowiedzialne za generowanie adresu URL .
Kod PHP:
protected $AppUrl;
protected $AppSecureUrl;
Domyślny język oraz wygląd strony .
Kod PHP:
protected $AppLang;
protected $AppTemplate;
Tytuł strony , opis oraz słowa kluczowe , które będą później wyświetlane na stronie w odpowiednich znacznikach .
Kod PHP:
protected $AppTitle;
protected $AppDesc;
protected $AppKey;
Należy także zadeklarować zmienne , których użyjemy do połączenia się z bazą danych . Kolejno są to : numer połączenia , host bazy danych , nazwa użytkownika , hasło , nazwa bazy danych , prefiks tabel , rezultat z zapytania oraz tablica konfiguracyjna systemu .
Kod PHP:
public $DBConectionId;
public $DBHost;
public $DBUser;
public $DBPassword;
public $DBName;
public $DBPrefix;
public $DBResult;
public $DBConfigTable;
Zmienne pozwalające wysyłać listy e-mailowe do użytkowników strony : adres odbiorcy , adres nadawcy , temat , treść listu e-mail oraz nagłówki .
Kod PHP:
protected $AppSendTo;
protected $AppSendFrom;
protected $AppSendTopic;
protected $AppSendContent;
protected $AppSendHeaders;
public function AppConfig()
{
Metoda pozwala na wpisanie danych pochodzących z odpowiednich tablic konfiguracyjnych .
Kod PHP:
global $config;
$this->AppUrl = $config['base_url'];
$this->AppSecureUrl = $config['base_url_secure'];
$this->AppLang = $config['default_lang'];
$this->AppTemplate = $config['default_template'];
Uruchamiamy konfigurację połączenia z bazą danych .
Kod PHP:
$this->AppRunDatabase();
}
protected function AppRunDatabase()
{
Definiujemy wartość zmiennych , wpisując do nich wartości z pliku z ustawieniami bazy danych .
Kod PHP:
global $db_config;
$this->DBHost = $db_config['db_host'];
$this->DBUser = $db_config['db_user'];
$this->DBPassword = $db_config['db_password'];
$this->DBName = $db_config['db_name'];
$this->DBPrefix = $db_config['db_prefix'];
Rozpoczynamy odwołaniem się do metody tworzącej połączenie z bazą danych .
Kod PHP:
$this->AppDBStart();
}
public function AppDBStart()
{
Zmienna Connection będzie zawierała identyfikator obecnego połączenia .
Kod PHP:
$Connection = $this->AppDBConnect();
W przypadku gdyby połączenie z hostem się nie powiodło , wówczas wyświetlamy błąd .
Kod PHP:
if($Connection == FALSE)
{
echo 'It is no ability to connect with the database.';
exit();
}
Następnie po udanym połączeniu trzeba wybrać bazę danych .
Kod PHP:
$SelectingDB = $this->AppDBSelectDatabase();
Kiedy wybranie bazy danych nie zakończy się sukcesem , wówczas drukujemy błąd .
Kod PHP:
if($SelectingDB == FALSE)
{
echo 'It is no ability to select the database in the serwer.';
exit();
}
Zadajemy pierwsze zapytanie do bazy danych . Należy w nim ustawić odpowiednie kodowanie służące do poprawnego przesyłania znaków podczas obierania wynków .
Kod PHP:
$SqlConfig = 'SET NAMES utf8';
if($this->AppDBQuery($SqlConfig))
{
$this->AppBody .=$this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
Odwołujemy się do metody generującej główną tablicę z konfiguracją systemu .
Kod PHP:
$this->ConfigTable();
}
public function AppDBShowErrorInfo()
{
Nasze zapytania mogą zawierać błędy , które należy wyświetlić . Zarówno tekst z informacją o błędzie , jak i sam numer błędu po pobraniu danych są zwracane do treści generowanej zawartości .
Kod PHP:
$Error['text'] = mysql_error();
$Error['number'] = mysql_error();
$InformationAbout = 'Name: '.$Error['text'] .'Number: '.$Error['number'];
return $InformationAbout;
}
public function AppShowError($Message,$ErrorInFile,$ErrorInLine,$ErrorQuery)
{
Szczegółowe informacje o błędzie z nazwą pliku , w którym taki błąd wystąpił , numerem tego pliku oraz informacją od bazy danych .
Kod PHP:
$ReturnData = 'Error in DB';
$ReturnData .= '<br />';
$ReturnData .= 'In file: '.$ErrorInFile;
$ReturnData .= '<br />';
$ReturnData .= 'On line: '.$ErrorInLine;
$ReturnData .= '<br />';
$ReturnData .= 'In Query: '.$ErrorQuery;
$ReturnData .= '<br />';
$ReturnData .= 'Information from DB:';
$ReturnData .= $this->AppDBShowErrorInfo();
return $ReturnData;
}
public function AppDBConnect()
{
Łączenie się z serwerem bazy danych wykonujemy poprzez funkcję dotyczącą bazy danych MySQL , której podajemy dane konfiguracyjne zawarte w polach obiektu .
Kod PHP:
$this->DBConnectionId = mysql_connect($this->DBHost,$this->DBUser,$this->DBPassword,TRUE);
Wynik zwrócony przez funkcję przekazujemy do metody , którą zostało wywołane polecenie .
Kod PHP:
if($this->DBConnectionId)
{
return TRUE;
}
else
{
return FALSE;
}
}
public function AppSelectDatabase()
{
Oprócz samego połączenia należy jeszcze sprawdzić , czy można wybrać bazę danych na serwerze .
Kod PHP:
if(mysql_select_db($this->DBName,$this->DBConnectionId))
{
return TRUE;
}
else
{
return FALSE;
}
}
public function AppDBQuery($MySQLQueryString)
{
Najważniejsza metoda , jeżeli chodzi o połączenie z bazą danych . Realizujemy w niej zadawanie pytań do bazy danych , rezultatem , czyli identyfikator lub wartość FALSE przekazujemy do warunku , który w przypadku błędu wyświetli komunikat .
Kod PHP:
$this->DBResult = mysql_query($MySQLQueryString,$this->DBConnectionId);
if($this->DBResult)
{
return TRUE;
}
else
{
return FALSE;
}
}
public function AppDBResult()
{
W przypadku zapytania SELECT oraz innych zwracających rezultaty musimy jeszcze pobrać zwróconą przez bazę danych treść .
Kod PHP:
while($row = @mysql_fetch_array($this->DBResult,MYSQL_ASSOC))
{
$MySQLResultFromQuery[] = $row;
}
Wartości będą przypisane jako tablica do zmiennej , która znajdzie się po lewej stronie od metody .
Kod PHP:
return $MySQLResultFromQuery;
}
public function AppDBHowMany()
{
Ilość rekordów zwróconych z zapytania , będzie to nam szczególnie przydatne podczas wykonywania pętli , w której mamy zamiar wyświetlić te dane .
Kod PHP:
$DBMySQLHowMany = @mysql_num_rows($this->DBResult);
return $DBMySQLHowMany;
}
public function AppDBStopConnection()
{
Zamykanie połączenia z bazą danych .
Kod PHP:
myql_close($this->DBConnectionId);
}
public function AppDBShowConnectionId()
{
Pobieranie identyfikatora połączenia w celu odpluskwiania naszej aplikacji .
Kod PHP:
return 'ID: '.$this->DBConnectionId;
}
public function AppDBSecure($Varchar)
{
Metoda w celu zabezpieczenia danych . Pierwsza funkcja przetwarza znaczniki HTML na encje , a druga zabezpiecza wszystkie niebezpieczne znaki w wartościach , jakie będziemy przekazywać do bazy danych .
Kod PHP:
$Varchar = htmlspecialchars($Varchar);
$Varchar = mysql_real_escape_string($Varchar);
return $Varchar;
}
public function AppDBSecureXML($Varchar)
{
Metoda zabezpiecza dane , jednak przetwarza ona tylko znaki uznane za niebezpieczne w treści zapytana .
Kod PHP:
$Varchar = mysql_real_escape_string($Varchar);
return $Varchar;
}
public function AppDBUnsecure($Varchar)
{
Usuwanie zabezpieczeń z danych przekazywanych od bazy danych do aplikacji w formie , w jakiej zostały wysłane .
Kod PHP:
$Varchar = stripslashes($Varchar);
return $Varchar;
}
protected function ConfigTable()
{
Pobieranie tablicy konfiguracyjnej . Wykonujemy zapytanie do tablicy z zapisanymi danymi oraz pobieramy wyniki .
Kod PHP:
$SqlConfig = 'SELECT config_name,config_value FROM '.$this->DBPrefix.'config';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
Pętla pozwoli nam na przetworzenie rezultatu zapisania na tablicę , w której kluczami będą wartości pól .
Kod PHP:
for($q=0;$q<$Rows;$q++)
{
$KeyResult = $Result[$q]['config_name'];
$this->DBConfigTable[$KeyResult] = $this->AppDBUnsecure($Result[$q]['config_value']);
}
}
protected function AppMakeLink($v1='',$v2='',$v3='',$v4='')
{
Funkcja tworzy specjalne linki , dzięki jej zastosowaniu można potem bez problemu ustawić trukturę strony , którą Google oraz inne wyszukiwarki będą łatwiej indeksowały .
Kod PHP:
global $config;
if($v1 != "")
{
$v1 = $this->AppLinkMaker($v1);
}
if($v2 != "")
{
$v2 = $this->AppLinkMaker($v2);
}
if($v3 != "")
{
$v3 = $this->AppLinkMaker($v3);
}
if($v4 != "")
{
$v4 = $this->AppLinkMaker($v4);
}
Tworzymy adresy , pobierając kolejne zmienne i sprawdzając , czy posiadają one zawartość .
Kod PHP:
if($v1 == "")
{
$ReturnUrl = $this->AppUrl;
}
elseif($v2 == "")
{
$ReturnUrl = $this->AppUrl.'index.php?app='.$v1;
}
elseif($v3 == "")
{
$ReturnUrl = $this->AppUrl.'index.php?app='.$v1.'&option='.$v2;
}
elseif($v4 == "")
{
$ReturnUrl = $this->AppUrl.'index.php?app='.$v1.'&option='.$v2.'&action='.$v3;
}
else
{
$ReturnUrl = $this->AppUrl.'index.php?app='.$v1.'&option='.$v2.'&action='.$v3.'&app_action='.$v4;
}
return $ReturnUrl;
}
protected function AppValidateEmail($Email)
{
Sprawdzamy , czy adres e-mailowy należy do prawidłowo zapisanych . Dzięki wyrażeniom regularnym możemy zrobić to za pomocą tylko i wyłącznie jednej funkcji .
Kod PHP:
if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $Email))
{
return FALSE;
}
else
{
return TRUE;
}
}
protected function AppSendEmail()
{
global $Lang;
Tworzenie listu e-mail rozpoczynamy od sprawdzenia , jaki typ wiadomości został przez nas ustawiony : wiadomość w języku HTML czy też czysty tekst .
Kod PHP:
if($this->AppSendHeaders == 'html')
{
$MailHeaders = "MIME-Version: 1.0\r\n";
$MailHeaders .= "Content-type: text/html; charset=utf-8\r\n";
}
else
{
$MailHeaders = "charset=utf-8\r\n";
}
Tworzymy odowiedni nagłówek .
Kod PHP:
$Headers = "From: ".$this->AppSendFrom."\r\n";
$Headers .= $MailHeaders;
Wysyłamy list za pomocą funkcji mail , której parametry to : adresat , temat , treść wiadomości oraz nagłówki .
Kod PHP:
if(mail($this->AppSendTo,$this->AppSendTopic,$this->AppSendContent,$Headers))
{
return TRUE;
}
else
{
return FALSE;
}
Na końcu powiniliśmy jeszcze wyczyścić wszystkie wartości zmiennych .
Kod PHP:
$this->AppSendTo = '';
$this->AppSendFrom = '';
$this->AppSendTopic = '';
$this->AppSendContent = '';
$this->AppSendHeaders = '';
return TRUE;
}
protected function AppGetPost($VarcharName)
{
Metoda informuje , czy zmienna wysłana metodą _POST , której nazwa została podana jako parametr , została ustawiona .
Kod PHP:
if($_POST[$VarcharName] == "")
{
return false;
}
else
{
return true;
}
}
protected function AppGetGet($VarcharName)
{
Informacje tej metody są identyczne jak poprzedniej , tylko że w tym przypadku sprawdzamy zmienne wysłane metodą _GET .
Kod PHP:
if($_GET[$VarcharName] == "")
{
return false;
}
else
{
return true;
}
}
protected function AppGetValue($VarcharName)
{
Sprawdzamy i ustawiamy wartości zmiennej , jeżeli została przełana poprzez formularz lub poprzez adres URL .
Kod PHP:
if($_POST[$VarcharName] == "")
{
$VarcharIs = $_GET[$VarcharName];
}
else
{
$VarcharIs = $_POST[$VarcharName];
}
return $VarcharIs;
}
protected function AppPrintSuccess($Text)
{
Wydrukowanie napisu w warstwie z klasą informującą o poprawności danej operacji .
Kod PHP:
return '<div class="success">'.$Text.'</div>';
}
protected function AppPrintWarning($Text)
{
Drukowanie napisu w warstwie z nadaną klasą informującą o błędzie .
Kod PHP:
return '<div class="warning">'.$Text.'</div>';
}
protected function AppPrintInfo($Text)
{
Wydrukowanie komunikatu opatrzonego wartością "ważny" .
Kod PHP:
return '<div class="important">'.$Text.'</div>';
}
protected function AppIsEmptyPost()
{
Metoda pozwala na sprawdzenie , czy wszystkie elementy wysłane metodą _POST zawierają wartość oraz czy zostały wysłane pliki .
Kod PHP:
$PostTable = func_get_args();
$ReturnValue = FALSE;
for($i=0;$i<count($PostTable);$i++)
{
if(substr($PostTable[$i],0,5) == 'FILE_')
{
$ReadyFileName = substr($PostTable[$i],5);
if($_FILES[$ReadyFileName]['name'] == "")
{
$ReturnValue = TRUE;
}
}
else
{
if($_POST[$PostTable[$i]] == "")
{
$ReturnValue = TRUE;
}
}
}
return $ReturnValue;
}
protected function AppIsEmptyGet()
{
Pobieranie informacji o wszystkich zmennych wysłanych metodą _GET bez uwzględniania plików .
Kod PHP:
$PostTable = func_get_args();
$ReturnValue = FALSE;
for($i=0;$i<count($PostTable);$i++)
{
if($_GET[$PostTable[$i]] == "")
{
$ReturnValue = TRUE;
}
}
return $ReturnValue;
}
public function AppSessionStart()
{
Rozpoczynanie sesji oraz rejestracja wszystkich zmiennych .
Kod PHP:
session_start();
$SessionTable = func_get_args();
for($i=0;$i<count($SessionTable);$i++)
{
session_register($SessionTable[$i]);
}
}
public function AppSessionSetValue($NameVarchar,$ValueVarchar)
{
Metoda pozwala na ustawienie wartości zmiennej znajdującej się w sesji .
Kod PHP:
$_SESSION[$NameVarchar] = $ValueVarchar;
}
public function AppSessionGetValue($NameVarchar)
{
Pobieranie wartości zmiennej z sesji użytkownika bądź administratora .
Kod PHP:
return $_SESSION[$NameVarchar];
}
public function AppSessionId()
{
Zwracanie identyfikatora bieżącej sesji .
Kod PHP:
return session_id();
}
public function AppSessionRegenerateId()
{
Usuwanie dotychczasowego i utworzenie nowego identyfikatora sesji .
Kod PHP:
session_regenerate_id();
}
public function AppSessionDestroy()
{
Niszczenie całej sesji wraz z danymi , które zostały w niej zapisane .
Kod PHP:
session_destroy();
}
public function AppLinkMaker($Text)
{
Tworzenie bezpiecznych linków jest realizowane za pomocą metody , która zamieni polskie litery diakrytyczne oraz inne znaki znajdujące się w adresie .
Kod PHP:
$Text = str_replace('Ą','A', $Text);
$Text = str_replace('Ś','S', $Text);
$Text = str_replace('Ź','Z', $Text);
$Text = str_replace('ą','a', $Text);
$Text = str_replace('ś','s', $Text);
$Text = str_replace('ź','z', $Text);
$Text = str_replace('Ż','Z', $Text);
$Text = str_replace('ż','z', $Text);
$Text = str_replace('Ź','Z', $Text);
$Text = str_replace('ź','z', $Text);
$Text = str_replace('Ę','E', $Text);
$Text = str_replace('ę','e', $Text);
$Text = str_replace('Ć','C', $Text);
$Text = str_replace('ć','c', $Text);
$Text = str_replace('Ń','N', $Text);
$Text = str_replace('ń','n', $Text);
$Text = str_replace('Ó','O', $Text);
$Text = str_replace('ó','o', $Text);
$Text = str_replace('Ł','L', $Text);
$Text = str_replace('ł','l', $Text);
Zmniejszamy tekst , tak aby był napisany wyłącznie małymi literami .
Kod PHP:
$Text = strtolower($Text);
$Allowed[] = 'a';
$Allowed[] = 'b';
$Allowed[] = 'c';
$Allowed[] = 'd';
$Allowed[] = 'e';
$Allowed[] = 'f';
$Allowed[] = 'g';
$Allowed[] = 'h';
$Allowed[] = 'i';
$Allowed[] = 'j';
$Allowed[] = 'k';
$Allowed[] = 'l';
$Allowed[] = 'm';
$Allowed[] = 'n';
$Allowed[] = 'o';
$Allowed[] = 'p';
$Allowed[] = 'q';
$Allowed[] = 'r';
$Allowed[] = 's';
$Allowed[] = 't';
$Allowed[] = 'u';
$Allowed[] = 'w';
$Allowed[] = 'x';
$Allowed[] = 'y';
$Allowed[] = 'z';
$Allowed[] = '0';
$Allowed[] = '1';
$Allowed[] = '2';
$Allowed[] = '3';
$Allowed[] = '4';
$Allowed[] = '5';
$Allowed[] = '6';
$Allowed[] = '7';
$Allowed[] = '8';
$Allowed[] = '9';
$Allowed[] = '-';
$Allowed[] = '_';
$Allowed[] = 'v';
$TextExploded = str_split($Text);
Zamieniamy wszystkie znaki oprócz liter alfabetu i znaku myślnika .
Kod PHP:
for($i=0;$i<count($TextExploded);$i++)
{
$Char = FALSE;
for($i=0;$i<count($Allowed);$i++)
{
if($Allowed[$q] == $TextExploded[$i])
{
$Char = TRUE;
}
}
if($Char == TRUE)
{
$ReturnUrl .= $TextExploded[$i];
}
else
{
$ReturnUrl .= '-';
}
}
Usuwamy powtórzenia poczwórnych , potrójnych i podwójnych myślników .
Kod PHP:
$ReturnUrl = str_replace('----','-', $ReturnUrl);
$ReturnUrl = str_replace('---','-', $ReturnUrl);
$ReturnUrl = str_replace('--','-', $ReturnUrl);
return $ReturnUrl;
}
public function AppRender()
{
Metoda służy generowaniu wyglądu strony poprzez załączenie odpowiedniego pliku z jej tematem .
Kod PHP:
$TimeStart = microtime();
global $Lang;
global $app;
global $config;
include('./view/'.$this->AppTemplate.'/theme.php');
$TimeStop = microtime();
}
public function AppRenderAdmin()
{
Funkcja tej metody jest identyczna z poprzednią , jedynym wyjątkiem jest generowanie wyglądu dla panelu administratora .
Kod PHP:
$TimeStart = microtime();
global $Lang;
global $app;
global $config;
include('./view/'.$this->AppTemplate.'/theme_admin.php');
$TimeStop = microtime();
}
protected function AdminLeftMenu()
{
Generujemy menu znajdujące się po lewej stronie w panelu administracyjnym .
Kod PHP:
global $Lang;
$app = $this->AppGetValue('app');
echo '<img src="'.$this->AppUrl.'fb_images/dot.gif" width="200" height="1" />';
if($app == '' OR $app == 'admin')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppUrl.'admin.php?app=admin">'.$Lang['ap_a1_m_adserwer'].'</a></div>';
if($app == 'users')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppUrl.'admin.php?app=users">'.$Lang['ap_a1_m_users'].'</a></div>';
if($app == 'pages')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppUrl.'admin.php?app=pages">'.$Lang['ap_a1_m_pages'].'</a></div>';
echo '<br />';
if($app == 'application_users')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppUrl.'admin.php?app=application_users">'.$Lang['ap_d3_m_warning_users'].'</a></div>';
if($app == 'application_inserts')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppUrl.'admin.php?app=application_inserts">'.$Lang['ap_d3_m_warning_inserts'].'</a></div>';
if($app == 'application_pictures')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppUrl.'admin.php?app=application_pictures">'.$Lang['ap_d3_m_warning_pictures'].'</a></div>';
if($app == 'application_comments')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppUrl.'admin.php?app=application_comments">'.$Lang['ap_d3_m_warning_comments'].'</a></div>';
echo '<br />';
if($app == 'change_pswd')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppUrl.'admin.php?app=change_pswd">'.$Lang['ap_a5_change_pswd'].'</a></div>';
echo '<br />';
if($app == 'logout')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppUrl.'admin.php?app=logout">'.$Lang['ap_a5_logout'].'</a></div>';
echo '<div class="menu_option_br"></div>';
}
protected function ShowUserGames()
{
Generujemy listę gier użytkowników , do których dana osoba złożyła prośbę o zapis , a prośba została pozytywniw rozpatrzona .
Kod PHP:
$SqlConfig = 'SELECT * FROM'.$this->DBPrefix.'user_games
WHERE
game_user_id = "'.$this->AppDBSecure($this->AppSessionGetValue('user_id')).'"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
if($Rows > 0)
{
W przypadku gdy lista gier istnieje , drukujemy jedną grę pod drugą . Lista ta będzie służyć do wyświetlania menu .
Kod PHP:
echo '<ul style="margin-top: 0px; margin-bottom: 0px;">';
for($f=0;$f<$Rows;$f++)
{
if($RowsIs == 1)
{
$RowsIs = 0;
$TdClass = 'fb_row_1';
}
else
{
$RowsIs = 1;
$TdClass = 'fb_row_2';
}
$SqlConfig = 'SELECT * FROM '.$this->DBPrefix.'games
WHERE
game_id = "'.$this->AppDBSecure($Result[$f]['game_game_id']).'"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$ResultGame = $this->AppDBResult();
echo '<li><a href="'.$this->AppMakeLink('playgame',$ResultGame[0]['game_id']).'">'.substr(AppDBUnsecure($ResultGame[0]['game_name']). 0, 19).'...</a></li>';
}
echo '</ul>';
}
}
protected function LeftMenu()
{
global $Lang;
Tworzenie lewego menu dostępnego dla użytkownika .
Kod PHP:
$app = $this->AppGetValue('app');
Pobieranie informacji o użytkowniku , aby móc wyświetlić jego podstawowe dane oraz avatar .
Kod PHP:
$SqlConfig = 'SELECT * FROM '.$this->DBPrefix.'user
WHERE
user_id = "'.$this->AppDBSecure($this->AppSessionGetValue('user_id')).'"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
if($Result[0]['user_picture'] == 'y')
{
Kiedy obrazek jest ustawiony , ładujemy go w rozmiarze średnim z katalogu użytkownika .
Kod PHP:
$FileImage = $this->AppUrl.'upload/'.$this->AppSessionGetValue('user_id').'/profile_medium.jpg';
}
else
{
Gdyby użytkownik nie zdążył wgrać jeszcze pliku , wówczas musimy wyświetlić domyślny obraz , uwzględniając , czy przy rejestracji osoba podała płeć .
Kod PHP:
if($Result[0]['user_gender'] == 'm')
{
$FileImage = $this->AppUrl.'fb_images/profile_medium_men.jpg';
}
else
{
$FileImage = $this->AppUrl.'fb_images/profile_medium_women.jpg';
}
}
Pokazujemy także łącze do zobaczenia własnego profilu .
Kod PHP:
echo '<br /><center><a href="'.$this->AppUrl.'index.php?app=showprofile&option='.$Result[0]['user_id'].'"><img src="'.$FileImage.'" width="100" /></a><br />';
if($this->AppSessionGetValue('user_firm') != 'y')
{
W przypadku gdy użytkownik nie jest firmą , musimy wyświetlić imię i nazwisko .
Kod PHP:
echo '<a href="'.$this->AppUrl.'index.php?app=showprofile&option='.$Result[0]['user_id'].'">'.$this->AppDBUnsecure($Result[0]['user_firstname']).' '.$this->AppDBUnsecure($Result[0]['user_lastname']).'</a>';
}
else
{
W przypadku gdyby użytkownik był firmą , należy pokazać jedynie jego nazwisko , w którym to polu będzie zawarta jej nazwa .
Kod PHP:
echo '<a href="'.$this->AppUrl.'index.php?app=showprofile&option='.$Result[0]['user_id'].'">'.$this->AppDBUnsecure($Result[0]['user_lastname']).'</a>';
}
echo '</center>';
echo '<br />';
Drukujemy resztę menu pozwalającą na skorzystanie z głównych opcji w serwisie .
Kod PHP:
echo '<img src="'.$this->AppUrl.'fb_images/dot.gif" width="200" height="1" /><br />';
if($app == '')
{
$DivClass = 'menu_option_selected';
$ButHomeName = '';
}
else
{
$DivClass = 'menu_option';
$ButHomeName = '_up';
}
echo '<div class="'.$DivClass.'"><img src="'.$this->AppUrl.'fb_images/home'.$ButHomeName.'.png" width="16" height="16" style="vertical-align: middle;" /><a href="'.$this->AppUrl.'index.php">'.$Lang['l1_m_homepage'].'</a></div>';
echo '<div class="menu_option_br"></div>';
if($this->AppSessionGetValue('user_firm') != 'y')
{
Tylko kiedy użytkownik jest osobą prywatną , dajemy mu możliwość skorzystania z ustawień prywatności .
Kod PHP:
if($app == 'privacy')
{
$DivClass = 'menu_option_selected';
$ButPrivName = '';
}
else
{
$DivClass = 'menu_option';
$ButPrivName = '_up';
}
echo '<div class="'.$DivClass.'"><img src="'.$this->AppUrl.'fb_images/priv'.$ButPrivName.'.png" width="16" height="16" style="vertical-align: middle;" /><a href="'.$this->AppMakeLink('privacy').'">'.$Lang['l1_m_set_priwacy'].'</a></div>';
}
if($app == 'picture')
{
$DivClass = 'menu_option_selected';
$ButProfName = '';
}
else
{
$DivClass = 'menu_option';
$ButProfName = '_up';
}
echo '<div class="'.$DivClass.'"><img src="'.$this->AppUrl.'fb_images/prof'.$ButProfName.'.png" width="16" height="16" style="vertical-align: middle;" /><a href="'.$this->AppMakeLink('picture').'">'.$Lang['l1_m_profilepicture'].'</a></div>';
if($app == 'contactinformation')
{
$DivClass = 'menu_option_selected';
$ButContName = '';
}
else
{
$DivClass = 'menu_option';
$ButContName = '_up';
}
echo '<div class="'.$DivClass.'"><img src="'.$this->AppUrl.'fb_images/cont'.$ButContName.'.png" width="16" height="16" style="vertical-align: middle;" /><a href="'.$this->AppMakeLink('contactinformation').'">'.$Lang['l1_m_contactinfo'].'</a></div>';
echo '<div class="menu_option_br"></div>';
Informacje na temat gier .
Kod PHP:
if($app == 'games')
{
$DivClass = 'menu_option_selected';
$ButGameName = '';
}
else
{
$DivClass = 'menu_option';
$ButGameName = '_up';
}
echo '<div class="'.$DivClass.'"><img src="'.$this->AppUrl.'fb_images/game'.$ButGameName.'.png" width="16" height="16" style="vertical-align: middle;" /><a href="'.$this->AppMakeLink('games').'">'.$Lang['nv1_your_games'].'</a></div>';
$this->ShowUserGames();
if($app == 'searchgames')
{
$DivClass = 'menu_option_selected';
$ButGameName2 = '';
}
else
{
$DivClass = 'menu_option';
$ButGameName2 = '_up';
}
echo '<div class="'.$DivClass.'"><img src="'.$this->AppUrl.'fb_images/game'.$ButGameName2.'.png" width="16" height="16" style="vertical-align: middle;" /><a href="'.$this->AppMakeLink('searchgames').'">'.$Lang['nv2_search_game'].'</a></div>';
if($app == 'developergames')
{
$DivClass = 'menu_option_selected';
$ButGameDevName = '';
}
else
{
$DivClass = 'menu_option';
$ButGameDevName = '_up';
}
echo '<div class="'.$DivClass.'"><img src="'.$this->AppUrl.'fb_images/game_dev'.$ButGameDevName.'.png" width="16" height="16" style="vertical-align: middle;" /><a href="'.$this->AppMakeLink('developergames').'">'.$Lang['nv1_add_del_game'].'</a></div>';
echo '<div class="menu_option_br"></div>';
if($app == 'yourpictures')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppMakeLink('yourpictures').'">'.$Lang['l1_m_picturesleft'].'</a></div>';
if($this->AppSessionGetValue('user_firm') != 'y')
{
Kiedy użytkownik nie będzie zarejestrowany jako firma , dajemy mu możliwość edycji swoich znajomych oraz zapraszanie ich do grona na stronie .
Kod PHP:
echo '<div class="menu_option_br"></div>';
if($app == 'friends')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppMakeLink('friends').'">'.$Lang['l1_m_editfriends_left'].'</a></div>';
if($app == 'emailinvite')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppMakeLink('emailinvite').'">'.$Lang['l1_m_emailinvite'].'</a></div>';
}
echo '<div class="menu_option_br"></div>';
Prywatne wiadomości .
Kod PHP:
if($app == 'pm_new')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppMakeLink('pm_new').'">'.$Lang['l1_m_write_new'].'</a></div>';
Liczenie nieprzeczytanych wiadomości w skrzynce odbiorczej .
Kod PHP:
$SqlConfig = 'SELECT count(pm_id) FROM '.$this->DBPrefix.'pm_received
WHERE
pm_to_user = "'.$this->AppDBSecure($this->AppSessionGetValue('user_id')).'"
AND
pm_read = ""
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
if($app == 'pm_get')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppMakeLink('pm_get').'">'.$Lang['l1_m_received_left'].' ('.$Result[0]['count(pm_id)'].')</a></div>';
echo '<div class="menu_option_br"></div>';
Łącze pozwalające się wylogować .
Kod PHP:
if($app == 'logout')
{
$DivClass = 'menu_option_selected';
}
else
{
$DivClass = 'menu_option';
}
echo '<div class="'.$DivClass.'"><a href="'.$this->AppUrl.'index.php?app=logout">'.$Lang['l1_m_logout'].'</a></div>';
if($this->AppSessionGetValue('user_firm') != 'y')
{
Jeżeli zarejestrowaną osobą nie jest firma , możemy także wyświetlić listę przyjaciół .
Kod PHP:
echo '<br />';
echo '<div class="menu_option">';
echo '<h3 style="padding: 2px; margin: 0px;">'.$Lang['l1_your_friends_head'].'</h3>';
echo $this->RelationshipMenu($this->AppSessionGetValue('user_id'));
echo '</div>';
}
}
protected function RightMenu()
{
Prawe menu jest miejscem przeznaczonym na reklamę produktów oraz wyświetla najczęściej używane opcje , tak aby nie trzeba ich było szukać w menu systemu .
Kod PHP:
global $Lang;
Formularz przeznaczony do wyszukiwania przyjaciół na stronie .
Kod PHP:
echo '<form action="'.$this->AppUrl.'index.php" method="post"><table cellpadding="0" cellspacing="0" width="100%">';
echo '<tr><td class="fb_header_info" colspan="2"><h2>'.$Lang['l2_a3_basic_information'].'</h2></td></tr>';
echo '<tr><td class="fb_row_1" style="padding: 2px;">'.$Lang['l2_a3_first_name'].'</td></tr>
<tr><td class="fb_row_2" style="padding: 2px; text-align: right;"><input type="text" name="user_firstname" value="'.$_POST['user_firstname'].'" style="width: 150px;" /></td></tr>';
echo '<tr><td class="fb_row_1" style="padding: 2px;">'.$Lang['l2_a3_first_city'].'</td></tr>
<tr><td class="fb_row_2" style="padding: 2px; text-align: right;"><input type="text" name="user_city" value="'.$_POST['user_city'].'" style="width: 150px;" /></td></tr>';
echo '<tr><td class="fb_row_1" style="padding: 2px;"><a href="'.$this->AppUrl.'index.php?app=searchfriends">'.$Lang['l2_a3_adv_option'].'</a></td></tr>';
Odwołanie do oryginalnego formularza , gdyby użytkownik potrzebował opcji zaawansowanych .
Kod PHP:
echo '<tr><td class="fb_row_1" style="padding: 2px; text-align: right;"><input type="hidden" name="app" value="searchfriends" /><input type="hidden" name="fb_action" value="search_friends" /><input type="submit" value="'.$Lang['l2_a3_search'].'" class="button_goto" /></td></tr>';
echo '</table></form>';
Informacja o najnowszych prywatnych wiadomościach czekających na użytkownika .
Kod PHP:
$SqlConfig = 'SELECT pm_id,pm_from_user,pm_to_user,pm_topic,pm_read,pm_time FROM '.$this->DBPrefix.'pm_received
WHERE
pm_to_user = "'.$this->AppDBSecure($this->AppSessionGetValue('user_id')).'"
ORDER BY
pm_id DESC
LIMIT 0,10
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
echo '<table cellpadding="0" cellspacing="0" border="0" width="100%">';
echo '<tr><td class="fb_header" style="padding: 2px;">'.$Lang['l2_a1_msg_header'].'</td></tr>';
Wybieramy użytkowników , którzy napisali wiadomości .
Kod PHP:
for($f=0;$f<$Rows;$f++)
{
$SqlConfig = 'SELECT user_id,user_firstname,user_lastname, FROM '.$this->DBPrefix.'user
WHERE
user_id = "'.$this->AppDBSecure($Result[$f]['pm_from_user']).'"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$ResultUser = $this->AppDBResult();
if($RowsIs == 1)
{
$RowIs = 0;
$TdClass = 'fb_row_1';
}
else
{
$RowIs = 1;
$TdClass = 'fb_row_2';
}
$FontStyle = '';
Sprawdzenie , czy dana wiadomość została już przeczytana , i wyświetlenie nagłówka z pogrubieniem , jeżeli jest ona nowa .
Kod PHP:
if($this->AppDBUnsecure($Result[$f]['pm_read']) != 'y')
{
$FontStyle = 'style="font-weight: bold;"';
}
echo '<tr><td class="'.$TdClass.'" style="padding: 2px;"><a href="'.$this->AppUrl.'index.php?app=pm_get&read=yes&pm_id='.$this->AppDBUnsecure($Result[$f]['pm_id']).'" '.$FontStyle.'>'.substr($this->AppDBUnsecure($Result[$f]['pm_topic']),0,25).'...</a></td></tr>';
}
echo '</table>';
Teraz możemy przejść do pozycji , na której serwis zarabia najbardziej . Reklamy są wybierane losowo z tabeli i wyświetlane użytkownikom serwisu .
Kod PHP:
$SqlConfig = 'SELECT * FROM '.$this->DBPrefix.'adv
WHERE
adv_active = "y"
ORDER BY RAND()
LIMIT 0,5
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
for($f=0;$f<$Rows;$f++)
{
echo '<center>'.$this->AppDBUnsecure($Result[$f]['adv_content']).'</center><br /><br />';
Należy dodać do reklamy jedno wyświetlenie , aby móc w późniejszym czasie sprawdzić ich popularność .
Kod PHP:
$SqlConfig = 'UPDATE '.$this->DBPrefix.'adv
SET
adv_view = adv_view + 1
WHERE
adv_id = "'.$this->AppDBSecure($Result[$f]['adv_id']).'"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
}
}
protected function RelationshipMenu($UserId)
{
Nazwy przyjaciół , które wyświetlają się pod lewym menu , powinny zostać przez nas odpowiednio pobrane i przetworzone .
Kod PHP:
global $Lang;
Dzięki tabelom z relacjami między ludźmi możemy wybrać znajomych danego użytkownika , wpisując w zapytaniu jego identyfikator oraz sprawdzając , czy znajomość została zaakceptowana .
Kod PHP:
$SqlConfig = 'SELECT * FROM '.$this->DBPrefix.'friends
WHERE
friend_user_id = "'.$this->AppDBSecure($UserId).'"
AND
friend_accept = "y"
LIMIT 0,25
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
if($Rows == 0)
{
Kiedy liczba przyjaciół będzie równa zeru , musimy wyświetlić odpowiedni komunikat .
Kod PHP:
$Back .= '<i>'.$Lang['l1_no_fields_in_array'].'</i>';
}
else
{
$Back .= '<table cellpadding="0" cellspacing="0" border="0" width="100%">';
for($f=0;$f<$Rows;$f++)
{
Pobieramy informacje o użytkowniku będącym w gronie przyjaciół .
Kod PHP:
$SqlConfig = 'SELECT user_id, user_firstname, user_lastname, user_picture, user_gender, user_active FROM '.$this->DBPrefix.'user
WHERE
user_id = "'.$this->AppDBSecure($Result[$f]['friend_friend_id']).'"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
if($ResultFriend[0]['user_active'] == 'y')
{
if($ResultFriend[0]['user_picture'] == 'y')
{
Kiedy użytkownik posiada swój własny awatar , należy go wyświetlić .
Kod PHP:
$FileImage = $this->AppUrl.'upload/'.$ResultFriend[0]['user_id'].'/profile_small.jpg';
}
else
{
Jeżeli dana osoba nie posiada własnego obrazka , należy go pobrać spośród domyślnych dostępnych w systemie wraz z podziałem na płeć .
Kod PHP:
if($ResultFriend[0]['user_gender'] == 'm')
{
$FileImage = $this->AppUrl.'fb_images/profile_small_men.jpg';
}
else
{
$FileImage = $this->AppUrl.'fb_images/profile_small_women.jpg';
}
}
$Back .= '<tr><td class="fb_row_underline"><img src="'.$FileImage.'" width="50" /></td>
<td class="fb_row_underline"><a href="'.$this->AppMakeLink('showprofile', $ResultFriend[0]['user_id']).'">'.$this->AppDBUnsecure($ResultFriend[0]['user_firstname']).' '.$this->AppDBUnsecure($ResultFriend[0]['user_lastname']).'</a></td>';
$Back .= '</tr>';
}
}
$Back .= '</table>';
}
return $Back;
}
protected function Relationship($UserId, $KindId, $ActionId='')
{
global $Lang;
Pozycja pozwalająca na edycję znajomych , która jest zamieszczona w sekcji profilu . Pierwszą rzeczą jest wybranie przyjaciół o odpowiednim statusie , którzy zaakceptowali znajomego .
Kod PHP:
$SqlConfig = 'SELECT * FROM '.$this->DBPrefix.'friends
WHERE
friend_user_id = "'.$this->AppDBSecure($UserId).'"
AND
friend_kind = "'.$this->AppDBSecure($KindId).'"
AND
friend_accept = "y"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
if($Rows == 0)
{
W przypadku gdyby użytkownik nie posiadał znajomych w danej grupie , wyświetlamy odpowiedni komunikat .
Kod PHP:
$this->AppBody .= '<i>'.$Lang['l1_no_fields_in_array'].'</i>';
}
else
{
$this->AppBody .= '<table cellpadding="0" cellspacing="0" border="0" width="100%">';
for($f=0;$f<$Rows;$f++)
{
W pętli na podstawie identyfikatora wybieramy podstawowe dane na temat użytkownika .
Kod PHP:
$SqlConfig = 'SELECT user_id, user_firstname, user_lastname, user_picture, user_gender, user_active FROM '.$this->DBPrefix.'user
WHERE
user_id = "'.$this->AppDBSecure($Result[$f]['friend_friend_id']).'"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$ResultFriend = $this->AppDBResult();
if($ResultFriend[0]['user_active'] == 'y')
{
Musimy sprawdzić czy konto jest aktywne , jeżeli tak , to możemy przystąpić do drukowania danej osoby .
Kod PHP:
if($ResultFriend[0]['user_picture'] == 'y')
{
W przypadku gdy użytkownik posiada własny obraz , należy go załadować .
Kod PHP:
$FileImage = $this->AppUrl.'upload/'.$ResultFriend[0]['user_id'].'/profile_small.jpg';
}
else
{
Gdy użytkownik nie zdążył jeszcze wgrać pliku , wybieramy jeden z domyślnych znajdujących się w systemie z podziałem na płeć .
Kod PHP:
if($ResultFriend[0]['user_gender'] == 'm')
{
$FileImage = $this->AppUrl.'fb_images/profile_small_men.jpg';
}
else
{
$FileImage = $this->AppUrl.'fb_images/profile_small_women.jpg';
}
}
Następnie drukujemy znajomego wraz z odnośnikiem do jego profilu .
Kod PHP:
$this->AppBody .= '<tr><td class="fb_row_underline"><img src="'.$FileImage.'" width="50" /></td>
<td class="fb_row_underline"><a href="'.$this->AppMakeLink('showprofile', $ResultFriend[0]['user_id']).'">'.$this->AppDBUnsecure($ResultFriend[0]['user_firstname']).' '.$this->AppDBUnsecure($ResultFriend[0]['user_lastname']).'</a></td>';
if($ActionId == 'edit')
{
Możliwość edycji powoduje pojawienie się przycisku do usunięcia znajomego spośród grona przyjaciół .
Kod PHP:
$this->AppBody .= '<td class="fb_row_underline" width="15"><a href="JavaScript:DeleteInfo(\''.$this->AppUrl.'index.php?app=friends&delete=yes&friend_id='.$Result[$f]['friend_id'].'\',\''.$Lang['l1_accept_deleting'].'\');"<img src="'.$this->AppUrl.'fb_images/delete.png" width="13" height="13" /></a></td>';
}
$this->AppBody .= '</tr>';
}
}
$this->AppBody .= '</table>';
}
}
protected function RelationShipAdd($UserId)
{
global $Lang;
Akceptacji znajomych , którzy dodali nas do swojego grona , można dokonać w menu przyjaciół . Dostępne są tutaj zaproszenia wysłane do nas , których jeszcze nie potwierdziliśmy .
Kod PHP:
$SqlConfig = 'SELECT * FROM '.$this->DBPrefix.'friends
WHERE
friend_friend_id = "'.$this->AppDBSecure($UserId).'"
AND
friend_accept = ""
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
if($Rows == 0)
{
Liczba zaproszeń jest równa zero , więc wyświetlamy komunikat o braku zaproszeń .
Kod PHP:
$this->AppBody .= '<i>'.$Lang['l1_no_invite_received'].'</i>';
}
else
{
$this->AppBody .= '<table cellpadding="0" cellspacing="0" border="0" width="100%">';
for($f=0;$f<$Rows;$f++)
{
Wybieranie podstawowych danych o osobach , które zaprosiły nas do swoich znajomych .
Kod PHP:
$SqlConfig = 'SELECT user_id, user_firstname, user_lastname, user_picture, user_gender, user_active FROM '.$this->DBPrefix.'user
WHERE
user_id = "'.$this->AppDBSecure($Result[$f]['friend_user_id']).'"
';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$ResultFriend = $this->AppDBResult();
if($ResultFriend[0]['user_active'] == 'y')
{
if($ResultFriend[0]['user_picture'] == 'y')
{
Kiedy użytkownik ma aktywne konto , wówczas można w przypadku wgrania przez niego własnego awatara załadować go do aplikacji .
Kod PHP:
$FileImage = $this->AppUrl.'upload/'.$ResultFriend[0]['user_id'].'/profile_small.jpg';
}
else
{
Brak spersonalizowanego obrazka zmusza nas do wyświetlenia domyślnego spośród wgranych do systemu z uwzględnieniem podziału na płeć .
Kod PHP:
if($ResultFriend[0]['user_gender'] == 'm')
{
$FileImage = $this->AppUrl.'fb_images/profile_small_men.jpg';
}
else
{
$FileImage = $this->AppUrl.'fb_images/profile_small_women.jpg';
}
}
Drukujemy nazwę użytkownika wraz z łączem do jego profilu .
Kod PHP:
$this->AppBody .= '<tr><td class="fb_row_underline"><img src="'.$FileImage.'" width="50" /></td>
<td class="fb_row_underline" width="40%"><a href="'.$this->AppMakeLink('showprofile', $ResultFriend[0]['user_id']).'">'.$this->AppDBUnsecure($ResultFriend[0]['user_firstname']).' '.$this->AppDBUnsecure($ResultFriend[0]['user_lastname']).'</a></td>';
Łącze do zaakceptowania naszej znajomości .
Kod PHP:
$this->AppBody .= '<td class="fb_row_underline" width="150"><a href="'.$this->AppUrl.'index.php?app=inviteyou&accept=yes&area_id='.$Result[$f]['friend_id'].'">'.$Lang['l3_a1_accept_invite'].'</a></td></tr>';
Łącze do odrzucenia zaproszenia .
Kod PHP:
$this->AppBody .= '<td class="fb_row_underline" width="100"><a href="JavaScript:DeleteInfo(\''.$this->AppUrl.'index.php?app=inviteyou&delete=yes&area_id='.$Result[$f]['friend_id'].'\',\''.$Lang['l1_accept_deleting'].'\');">'.$Lang['l3_a1_delete_button'].'</a></td>';
$this->AppBody .= '</tr>';
}
}
$this->AppBody .= '</table>';
}
}
protected function IinformationRow($TypeIs)
{
global $Lang;
Profil użytkownika składa się z kilku podstawowych zakładek . W zależności od tego , jaką obecnie wybrał użytkownik , należy pokazać mu ów wybór .
Kod PHP:
$option = $this->AppGetValue('option');
$ToReturn = '<table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td style="background-color: #ffffff; border-bottom: solid 1px #335599;"> </td>';
Zakładka z ogólnym profilem osoby lub firmy .
Kod PHP:
if($TypeIs == 'profile')
{
$ToReturn .= '<td style="background-color: #ffffff; text-align: center; padding: 3px; border-top: solid 1px #335599; border-right: solid 1px #335599; border-left: solid 1px #335599;"><a href="'.$this->AppMakeLink('showprofile',$option).'" style="color: #335599;">'.$Lang['l1_m2_profile'].'</a></td>';
}
else
{
$ToReturn .= '<td style="background-color: #ffffff; text-align: center; padding: 3px; border-bottom: solid 1px #335599"><a href="'.$this->AppMakeLink('showprofile',$option).'" style="color: #335599;">'.$Lang['l1_m2_profile'].'</a></td>';
}
$ToReturn .= '<td style="background-color: #ffffff; border-bottom: solid 1px #335599;"> </td>';
Zakładka z obrazami opublikowanymi przez osobę .
Kod PHP:
if($TypeIs == 'picture')
{
$ToReturn .= '<td style="background-color: #ffffff; text-align: center; padding: 3px; border-top: solid 1px #335599; border-right: solid 1px #335599; border-left: solid 1px #335599;"><a href="'.$this->AppMakeLink('showpicture',$option).'" style="color: #335599;">'.$Lang['l1_m2_pictures'].'</a></td>';
}
else
{
$ToReturn .= '<td style="background-color: #ffffff; text-align: center; padding: 3px; border-bottom: solid 1px #335599"><a href="'.$this->AppMakeLink('showpicture',$option).'" style="color: #335599;">'.$Lang['l1_m2_pictures'].'</a></td>';
}
$ToReturn .= '<td style="background-color: #ffffff; border-bottom: solid 1px #335599;"> </td>';
Własna tablica ogłoszeń użytkownika .
Kod PHP:
if($TypeIs == 'table')
{
$ToReturn .= '<td style="background-color: #ffffff; text-align: center; padding: 3px; border-top: solid 1px #335599; border-right: solid 1px #335599; border-left: solid 1px #335599;"><a href="'.$this->AppMakeLink('showtable',$option).'" style="color: #335599;">'.$Lang['l1_m2_table'].'</a></td>';
}
else
{
$ToReturn .= '<td style="background-color: #ffffff; text-align: center; padding: 3px; border-bottom: solid 1px #335599"><a href="'.$this->AppMakeLink('showtable',$option).'" style="color: #335599;">'.$Lang['l1_m2_table'].'</a></td>';
}
$ToReturn .= '<td style="background-color: #ffffff; border-bottom: solid 1px #335599;" width="50%"> </td></tr></table>';
return $ToReturn;
}
protected function ShowComments($PublicationId)
{
Metoda służąca do drukowania komentarzy dla własnego wpisu .
Kod PHP:
include('./core/post_table_comm.php');
return $CommTable;
}
protected function ShowOwnComments($PublicationId,$UserId)
{
Pokazywanie komentarzy dodanych do własnych wpisów .
Kod PHP:
include('./core/post_own_table_comm.php');
return $CommTable;
}
public function ShowCommentsInserts($PublicationId)
{
global $Lang;
Metoda pozwala na wyświetlenie wszystkich komentarzy dodanych do danego wpisu na naszej tablicy . Należy wybrać wszystkie komentarze , uwzględniając przy tym identyfikator treści .
Kod PHP:
$SqlConfig = 'SELECT * FROM '.$this->DBPrefix.'comment
WHERE
comm_cont_id = "'.$this->AppDBSecure($PublicationId).'"
AND
comm_what = "i"
AND
comm_deleted != "y"
ORDER BY comm_id ASC
';
if(!$this->AppDBQuery($SqlConfig))
{
$CommTable .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
Sprawdzamy , czy istnieje chodźby jeden komentarz dla naszej treści .
Kod PHP:
if($Rows > 0)
{
$CommTable .= '<div style="height: 5px;"></div>';
Liczba komentarzy jest większa od zera , więc do zmiennej dodajemy identyfikatory użytkowników , którzy je dodali , aby później wybrać dane osobowe .
Kod PHP:
if($Rows == 1)
{
$ToQuery = 'user_id = "'.$this->AppDBSecure($Result[0]['comm_user_id']).'"';
}
else
{
for($f=0;$f<$Rows;$f++)
{
$ToQueryTable[] = 'user_id = "'.$this->AppDBSecure($Result[$f]['comm_user_id']).'"';
}
$ToQuery = implode(' OR ', $ToQueryTable);
}
Wybieranie podstawowych danych na temat użytkownika .
Kod PHP:
$SqlConfig = 'SELECT user_id,user_firstname,user_lastname,user_is_firm FROM '.$this->DBPrefix.'user
WHERE
'.$ToQuery.'
';
if(!$this->AppDBQuery($SqlConfig))
{
$CommTable .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$RowsUser = $this->AppDBHowMany();
Tworzenie tabeli użytkowników z podziałem na osoby oraz firmy .
Kod PHP:
for($f=0;$f<$RowsUser;$f++)
{
if($ResultUser[$f]['user_is_firm'] == 'y')
{
$UserTable[$ResultUser[$f]['user_id']] == $this->AppDBUnsecure($ResultUser[$f]['user_lastname']);
}
else
{
$UserTable[$ResultUser[$f]['user_id']] == $this->AppDBUnsecure($ResultUser[$f]['user_firstname']).' '.$this->AppDBUnsecure($Result[$f]['user_lastname']);
}
}
$CommTable .= '<table cellpadding="0" cellspacing="0" border="0" width="100%">';
Tabela , w której zostały umieszczone wszystkie komentarze na temat naszego wpisu wraz z możliwością ich raportowania do administratora .
Kod PHP:
for($f=0;$f<$Rows;$f++)
{
$CommTable .= '<tr><td class="comm_title"><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td class="comm_title" width="60%"><a href="'.$this->AppMakeLink('showprofile', $Result[$f]['comm_user_id']).'">'.$UserTable[$Result[$f]['comm_user_id']].'</a> - <a href="'.$this->AppUrl.'index.php?app=warning&warn_what=comment&warn_content_id='.$Result[$f]['comm_id'].'" style="color: #ffffff;">'.$Lang['a_d11_add_to_admin_warning'].'</a></td>
<td class="comm_foot">'.$Lang['commp_a2_published'].date('d-m-Y H:i:s', $this->AppDBUnsecure($Result[$f]['comm_date'])).'</td></tr></table></td></tr>
<tr><td class="comm_body">'.$this->AppDBUnsecure($Result[$f]['comm_comment']).'</td></tr>';
}
$CommTable .= '</table>';
}
Tworzymy formularz przeznaczony do dodawania nowych komentarzy . Ponieważ na stronie naszych wpisów może być kilkadziesiąt , musimy dla każdego z pól nadać inny numer identyfikacyjny , aby później móc się zorientować , do którego wpisu został wysłany dany komentarz .
Kod PHP:
$CommPublicationId = 'i_comm_'.$PublicationId;;
$CommFieldId = 'i_comm_text_'.$PublicationId;;
$CommPublicationFormId = 'form_comm_'.$PublicationId;;
$CommTable .= '<div style="text-align: right;"><a href="JavaScript:PublishCommForm(\''.$CommPublicationFormId.'\');">'.$Lang['commp_a1_add_new_comment'].'</a></div>';
$CommTable .= '
<div id="'.$CommPublicationFormId.'" style="display:none;">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td class="comm_post" style="text-align: right;">
<form id="'.$CommPublicationId.'" name="'.$CommPublicationId.'">
<input type="text" name="'.$CommFieldId.'" id="'.$CommFieldId.'"
style="width: 400px;" />
<input type="hidden" name="publication_second_id"
value="'.$PublicationId.'" />
<input type="hidden" name="post_what" value="i_comment" />
</form>
</td>
</tr>
<tr>
<td class="comm_post" style="text-align: right;">
<button onclick="i_addcomment'.$CommPublicationId.'()"
class="button_goto_send">'.$Lang['commp_a1_add_new_comment'].'
</button>
</td>
</tr>
</table>
</div>
';
Funkcja JavaScript pozwoli nam na dodawanie komentarzy "w locie" . Użyjemy w niej technologii AJAX dzięki załadowanym przez nas pliku wyglądu gotowym frameworkom .
Kod PHP:
$CommTable .= '
<script>
function i_addcomment'.$CommPublicationId.'()
{
new Ajax.Updater( \'i_comments\', \'post.php\',
{
method: \'post\',
parameters: $(\''.$CommPublicationId.'\').serialize(),
onSuccess: function() {
$(\''.$CommFieldId.'\').value = \'\';
}
} );
}
</script>
';
return $CommTable;
}
public function ShowPostTable()
{
Wyświetlanie wysłanych już komentarzy .
Kod PHP:
include('./core/post_table.php');
return $PostTable;
}
public function ShowPostOwnTable($UserId)
{
Wyświetlanie wysłanych już komentarzy na naszej tablicy .
Kod PHP:
include('./core/post_own_table');
return $PostTable;
}
}
?>