Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
core.php
#1
Kod PHP:
<?php 
Tworzymy klasę Core , która będzie później rozszerzana poprzez inne obiekty .

Kod PHP:
class Core
  

Zmienna przechowująca treść strony .

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']). 019).'...</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;">&nbsp;</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;">&nbsp;</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;">&nbsp;</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%">&nbsp;</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;
}
}
?>
Odpowiedz


Wiadomości w tym wątku
core.php - przez Admin - Wczoraj, 12:36 AM

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości