Statystyki |
» Użytkownicy: 1
» Najnowszy użytkownik: Admin
» Wątków na forum: 32
» Postów na forum: 32
Pełne statystyki
|
Użytkownicy online |
Aktualnie jest 1 użytkownik online. » 0 Użytkownik(ów) | 1 Gość(i)
|
Ostatnie wątki |
Wysyłanie nowych wiadomoś...
Forum: Wysyłanie nowych wiadomości
Ostatni post: Admin
Wczoraj, 09:16 PM
» Odpowiedzi: 0
» Wyświetleń: 3
|
Główny arkusz stylów
Forum: Główny arkusz stylów
Ostatni post: Admin
Wczoraj, 08:56 PM
» Odpowiedzi: 0
» Wyświetleń: 5
|
Szablon dla administrator...
Forum: Szablon dla administratora
Ostatni post: Admin
Wczoraj, 08:23 PM
» Odpowiedzi: 0
» Wyświetleń: 4
|
Szablon dla użytkownika
Forum: Szablon dla użytkownika
Ostatni post: Admin
Wczoraj, 07:57 PM
» Odpowiedzi: 0
» Wyświetleń: 5
|
Katalogi upload i upload_...
Forum: Katalogi upload i upload_tmp
Ostatni post: Admin
Wczoraj, 07:25 PM
» Odpowiedzi: 0
» Wyświetleń: 3
|
Obrazy powiązane z aplika...
Forum: Obrazy powiązane z aplikacją
Ostatni post: Admin
Wczoraj, 07:22 PM
» Odpowiedzi: 0
» Wyświetleń: 4
|
Przekształcanie obrazów
Forum: Przekształcanie obrazów
Ostatni post: Admin
Wczoraj, 07:21 PM
» Odpowiedzi: 0
» Wyświetleń: 4
|
Jquery i Prototype
Forum: Jquery i Prototype
Ostatni post: Admin
Wczoraj, 07:19 PM
» Odpowiedzi: 0
» Wyświetleń: 3
|
Pokazywanie obrazów z uży...
Forum: Pokazywanie obrazów z użyciem LightBox
Ostatni post: Admin
Wczoraj, 07:18 PM
» Odpowiedzi: 0
» Wyświetleń: 3
|
Pliki języków
Forum: Pliki języków
Ostatni post: Admin
Wczoraj, 07:10 PM
» Odpowiedzi: 0
» Wyświetleń: 3
|
|
|
core.php |
Napisane przez: Admin - Wczoraj, 12:36 AM - Forum: Core
- Brak odpowiedzi
|
 |
Tworzymy klasę Core , która będzie później rozszerzana poprzez inne obiekty .
Zmienna przechowująca treść strony .
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 .
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 .
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; } } ?>
|
|
|
|