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ń: 2
|
Główny arkusz stylów
Forum: Główny arkusz stylów
Ostatni post: Admin
Wczoraj, 08:56 PM
» Odpowiedzi: 0
» Wyświetleń: 3
|
Szablon dla administrator...
Forum: Szablon dla administratora
Ostatni post: Admin
Wczoraj, 08:23 PM
» Odpowiedzi: 0
» Wyświetleń: 2
|
Szablon dla użytkownika
Forum: Szablon dla użytkownika
Ostatni post: Admin
Wczoraj, 07:57 PM
» Odpowiedzi: 0
» Wyświetleń: 3
|
Katalogi upload i upload_...
Forum: Katalogi upload i upload_tmp
Ostatni post: Admin
Wczoraj, 07:25 PM
» Odpowiedzi: 0
» Wyświetleń: 1
|
Obrazy powiązane z aplika...
Forum: Obrazy powiązane z aplikacją
Ostatni post: Admin
Wczoraj, 07:22 PM
» Odpowiedzi: 0
» Wyświetleń: 2
|
Przekształcanie obrazów
Forum: Przekształcanie obrazów
Ostatni post: Admin
Wczoraj, 07:21 PM
» Odpowiedzi: 0
» Wyświetleń: 2
|
Jquery i Prototype
Forum: Jquery i Prototype
Ostatni post: Admin
Wczoraj, 07:19 PM
» Odpowiedzi: 0
» Wyświetleń: 1
|
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ń: 1
|
Pliki języków
Forum: Pliki języków
Ostatni post: Admin
Wczoraj, 07:10 PM
» Odpowiedzi: 0
» Wyświetleń: 1
|
|
|
Wysyłanie nowych wiadomości |
Napisane przez: Admin - Wczoraj, 09:16 PM - Forum: Wysyłanie nowych wiadomości
- Brak odpowiedzi
|
 |
Rozpoczynamy sesję i rejestrujemy w niej zmienne.
Kod PHP: session_start(); session_register('user_id', 'user_email', 'user_firm', 'user_lang');
Dołączamy pliki konfiguracyjne .
Kod PHP: include('./config/config_database.php'); include('./config/config_framework.php');
Ustawiamy język użytkownika .
Kod PHP: if($_SESSION['user_lang'] == "") { $_SESSION['user_lang'] = $config['default_lang']; } if($_GET['fb_action_lang'] == 'change') { $LangSet = ''; if($_GET['select_language_set'] == 'pl') { $LangSet = 'pl'; } elseif($_GET['select_language_set'] == 'en') { $LangSet = 'en'; } if($LangSet != "") { $_SESSION['user_lang'] = $LangSet; } }
$LangSet = $_SESSION['user_lang'];
Włączamy odpowiedni język oraz silnik systemu .
Kod PHP: include('./lang/'.$LangSet.'/lang.php'); include('./core/core.php');
Funkcja do pobierania danych ze zmiennej niezależnie od tego , jaką metodą zostanie przesłana .
Kod PHP: function GetVarchar($VarcharName) { if($_POST[$VarcharName] == "") { $VarcharIs = $_GET[$VarcharName]; } else { $VarcharIs = $_POST[$VarcharName]; } return $VarcharIs; }
Ustawiamy wartość głównej zmiennej .
Kod PHP: $app = GetVarchar('app');
Jeżeli wartość jest pusta , wówczas ustawiamy ją na domyślną z pliku konfiguracyjnego .
Kod PHP: if($app == "") { $app = $config['default']; }
Tworzymy klasę , rozszerzającą możliwości klasy głównej .
Kod PHP: class AppClass extends Core { public function AppComment() {
Sprawdzamy , czy użytkownik jest zalogowany .
Kod PHP: if($this->AppSessionGetValue('user_id') != "") {
Testujemy zmienną , czy treść nie pozostała pusta .
Kod PHP: if($_POST['comm_text_'.$_POST['publication_second_id']] != "") {
Umieszczamy treść komentarza w tabeli .
Kod PHP: $SqlConfig = 'INSERT INTO '.$this->DBPrefix.'comment ( comm_const_id, comm_user_id, comm_comment, comm_date, comm_what ) VALUES ( "'.$this->AppDBSecure($_POST['publication_second_id']).'", "'.$this->AppDBSecure($this->AppSessionGetValue('user_id')).'", "'.$this->AppDBSecure($_POST['comm_text_'.$_POST['publication_second_id']]).'", "'.$this->AppDBSecure(time()).'", "t" ) '; if(!$this->AppDBQuery($SqlConfig)) { $this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig); } } } } public function AppOwnComment() {
Sprawdzamy za pomocą zmiennej z sesji , czy użytkownik się zalogował .
Kod PHP: if($this->AppSessionGetValue('user_id') != "") {
Zmienna z treścią nie powinna być pusta .
Kod PHP: if($_POST['comm_text_'.$_POST['publication_second_id']] != "") {
Umieszczamy komentarz w tabeli .
Kod PHP: $SqlConfig = 'INSERT INTO '.$this->DBPrefix.'comment ( comm_const_id, comm_user_id, comm_comment, comm_date, comm_what ) VALUES ( "'.$this->AppDBSecure($_POST['publication_second_id']).'", "'.$this->AppDBSecure($this->AppSessionGetValue('user_id')).'", "'.$this->AppDBSecure($_POST['comm_text_'.$_POST['publication_second_id']]).'", "'.$this->AppDBSecure(time()).'", "t" ) '; if(!$this->AppDBQuery($SqlConfig)) { $this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig); } } } } public function AppIComment() {
Sprawdzamy , czy użytkownik jest zalogowany .
Kod PHP: if($this->AppSessionGetValue('user_id') != "") {
Sprawdzamy treść komentarza , czy nie pozostała pusta .
Kod PHP: if($_POST['comm_text_'.$_POST['publication_second_id']] != "") {
Umieszczamy komentarz w specjalnej tabeli .
Kod PHP: $SqlConfig = 'INSERT INTO '.$this->DBPrefix.'comment ( comm_const_id, comm_user_id, comm_comment, comm_date, comm_what ) VALUES ( "'.$this->AppDBSecure($_POST['publication_second_id']).'", "'.$this->AppDBSecure($this->AppSessionGetValue('user_id')).'", "'.$this->AppDBSecure($_POST['comm_text_'.$_POST['publication_second_id']]).'", "'.$this->AppDBSecure(time()).'", "i" ) '; if(!$this->AppDBQuery($SqlConfig)) { $this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig); } } } } public function AppStatus() {
Sprawdzamy , czy użytkownik jest zalogowany na własne konto za pomocą zmiennej z sesji .
Kod PHP: if($this->AppSessionGetValue('user_id') != "") {
Musimy się dowiedzieć , czy status publikacji nie jest pusty .
Kod PHP: if($_POST['publication_status']] != "") {
Umieszczamy wpis w tabeli przeznaczonej na publikacje .
Kod PHP: $SqlConfig = 'INSERT INTO '.$this->DBPrefix.'publication ( publication_kind, publication_status, publication_time, publication_user_id ) VALUES ( "1", "'.$this->AppDBSecure($_POST['publication_status']).'", "'.$this->AppDBSecure(time()).'", "'.$this->AppDBSecure($this->AppSessionGetValue('user_id')).'", "'.$this->AppDBSecure(time()).'", ) '; if(!$this->AppDBQuery($SqlConfig)) { $this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig); } } } } }
Tworzymy obiekt i uruchamiamy metodę konfiguracji systemu .
Kod PHP: $Application = New AppClass; $Application->AppConfig();
W zależności od wysłanej treści wykonujemy odpowiednią metodę .
Kod PHP: if($_POST['post_what'] == 'comment') { $Application->AppComment(); echo $Application->ShowPostTable(); } elseif($_POST['post_what'] == 'i_comment') { $Application->AppIComment(); echo $Application->ShowCommentInserts($_POST['publication_second_id']); } elseif($_POST['post_what'] == 'comments_table') { $Application->AppOwnComment(); echo $Application->ShowPostOwnTable($_POST['option']); } elseif($_POST['post_what'] == 'status') { $Application->AppStatus(); echo $Application->ShowPostTable(); } ?>
|
|
|
Główny arkusz stylów |
Napisane przez: Admin - Wczoraj, 08:56 PM - Forum: Główny arkusz stylów
- Brak odpowiedzi
|
 |
Ciało całej strony bez marginesów i wcięć oraz ustawienie czcionki .
Kod PHP: body { background-color: #ffffff; padding: 0px; margin: 0px; font-size: 12px; font-family: 'Trebuchet MS'; color: #1d2a5b; }
Wszystkie tabelki będą wyrównane do lewej strony .
Kod PHP: table { text-align: left; }
Każda komórka będzie posiadała tekst wyrównany do góry .
Kod PHP: td { vertical-align: top; }
Nagłówki stopnia pierwszego i drugiego .
Kod PHP: h1 { font-size: 16px; color: #1c2a47; padding: 0px; margin: 0px; padding-top: 5px; padding-left: 5px; }
h2 { font-size: 14px; background-color: #2C3852; color: #ffffff; padding: 5px; }
Formatowanie hiperłączy , które znajdują się w nagłówkach .
Kod PHP: h2 a { font-size: 14px; background-color: #2C3852; color: #ffffff; padding: 5px; text-decoration: none; }
h2 a:hover { font-size: 14px; background-color: #2C3852; color: #ffffff; padding: 5px; text-decoration: none; }
h2.special_header_ogloszenie { font-size: 14px; background-color: #ffffff; color: #2C3852; padding: 5px; padding-bottom: 0px; border-bottom: solid 1px #2C3852; }
h2.special_header_ogloszenie a { font-size: 14px; background-color: #ffffff; color: #2C3852; padding: 5px; padding-bottom: 0px; }
Komórka tabelki będąca jej nagłówkiem .
Kod PHP: td.header { background-color: #336699; color: #ffffff; padding: 5px; font-size: 12px; white-space: nowrap; }
Cztery komórki z różnymi kolorami tła , aby lepiej wyróżnić poszczególne rekordy .
Kod PHP: td.cell_1 { background-color: #C9D0D6; padding: 5px; font-size: 12px; vertical-align: middle; }
td.cell_2 { background-color: #F7F8FA; padding: 5px; font-size: 12px; vertical-align: middle; }
td.td_row1 { background-color: #C9D0D6; padding: 5px; font-size: 12px; vertical-align: middle; }
td.td_row2 { background-color: #F7F8FA; padding: 5px; font-size: 12px; vertical-align: middle; }
Nagłówki zawarte w specjalnych komórkach .
Kod PHP: td.td_row1_head { background-color: #efefef; }
td.td_row1_head h3 { padding: 2px; margin: 0px; }
td.td_row1_body { border-bottom: solid 1px #EB5126; padding-top: 2px; padding-bottom: 2px; }
Komórka z pogrubionym tekstem .
Kod PHP: td.bold_row { font-weight: bold; color: #EB5126; }
Warstwy przedstawiające informacje otrzymane przez użytkownikaod systemu .
Kod PHP: div.success { padding: 2px; text-align: center; background-color: #C8CFD5; font-size: 12px; color: #3b5998; padding: 5px; margin: 5px; }
div.warning { padding: 2px; text-align: center; border: solid 1px #EB5126; background-color: #ffffff; font-size: 12px; color: #EB5126; padding: 5px; margin: 5px; }
div.important { padding: 2px; text-align: center; background-color: #C8CFD5; font-size: 12px; color: #3b5998; padding: 5px; margin: 5px; }
div.city_box { padding: 2px; margin-left: 15px; margin-right: 15px; margin-bottom: 30px; }
Domyślne formatowanie wszystkich hiperłączy na stronie .
Kod PHP: a { font-size: 12px; color: #3b5998; text-decoration: none; }
a:hover { font-size: 12px; color: #3b5998; text-decoration: underline; }
Linki znajdujące się w górnej części strony (menu) .
Kod PHP: a.up_menu { font-size: 12px; color: #92AABC; text-decoration: none; }
a.up_menu:hover { font-size: 12px; color: #3b5998; text-decoration: underline; }
Domyślne formatowanie dla obrazu .
Informacje o logowaniu i jego rezultacie .
Kod PHP: div.list_pages { border: solid 1px #EB5126; padding-bottom: 2px; padding-top: 2px; margin-left: 20px; margin-right: 20px; }
span.promo_bar { padding: 5px; border: solid 1px #600000; }
span.span_bad_login { background-color: #ffffff; color: #000000; padding: 2px; }
Formatowanie pól formularza .
Kod PHP: input { border-width: 1px; border-style: solid; border-color: #1d2a5b; padding: 2px; }
input.file_upload { border-width: 1px; border-style: solid; border-color: #1d2a5b; padding: 2px; }
Przycisk Zatwierdź .
Kod PHP: input.submit_button { border-width: 1px; border-style: solid; border-top-color: #29447e; border-bottom-color: #29447e; border-left-color: #29447e; border-right-color: #29447e; padding-left: 5px; padding-right: 5px; background-color: #637bad; font-weight: bold; color: #ffffff; font-size: 12px; padding-top: 1px; padding-bottom: 3px; }
table.table_body input, textarea, select { border-width: 1px; border-style: solid; border-color: #96a6c5; padding: 2px; }
Przycisk służący do rejestracji na naszej stronie .
Kod PHP: input.input_register { border-width: 1px; border-style: solid; border-color: #96a6c5; padding: 5px; }
Domyślny przycisk służący do wykonywania akcji .
Kod PHP: input.input_button_submit { border-width: 1px; border-style: solid; border-color: #3b6e22; padding-left: 5px; padding-right: 5px; background-color: #74ad5a; font-weight: bold; color: #ffffff; font-size: 12px; }
Przycisk służący przechodzeniu do określonej części aplikacji .
Kod PHP: input.button_goto { border-width: 1px; border-style: solid; border-color: #3b6e22; padding-left: 5px; padding-right: 5px; background-color: #74ad5a; font-weight: bold; color: #ffffff; font-size: 12px; padding-top: 5px; padding-bottom: 5px; }
Zatwierdzanie wysyłania wiadomości do serwera .
Kod PHP: button.button_goto_send { border-width: 1px; border-style: solid; border-color: #3b6e22; padding-left: 5px; padding-right: 5px; background-color: #74ad5a; font-weight: bold; color: #ffffff; font-size: 12px; }
Nagłówek oraz komórki tabeli znajdujące się w menu .
Kod PHP: div.heading_row { width: 100%; height: 23px; background-image: url('fb_images/row.png'); }
td.fb_header { background-color: #3b5998; padding: 5px; color: #ffffff; font-weight: bold; }
td.fb_row_1 { padding: 5px; background-color: #ffffff; }
td.fb_row_2 { padding: 5px; background-color: #eceef4; }
td.fb_row_underline { padding: 5px; background-color: #ffffff; border-bottom: solid 1px #eceef4; }
Nagłówki będące w komórkach tabel .
Kod PHP: td.fb_header_info { background-color: #3b5998; padding: 5px; color: #ffffff; font-weight: bold; }
td.fb_header_info h2 { color: #ffffff; padding: 0px; margin: 0px; background-color: #3b5998; }
Informacje formatujące pozycję menu bocznego .
Kod PHP: div.menu_option { background-color: #eceef4; padding: 5px; margin-top: 2px; margin-bottom: 2px; border-left: solid 3px #B5B5B5; }
div.menu_option_selected { background-color: #2F4F4F; padding: 5px; margin-top: 2px; margin-bottom: 2px; border-left: solid 3px #919191; }
div.menu_option_selected a { color: #ffffff; }
div.menu_option_br { height: 10px; }
Komórki tabel do formatowania opcji publikacji treści .
Kod PHP: td.publish_item { background-color: #3B5998; color: #ffffff; text-align: center; }
a.publish_item_link { background-color: #ffffff; padding-left: 15px; padding-right: 15px; }
a.publish_item_link_select { background-color: #3B5998; color: #ffffff; padding-left: 15px; padding-right: 15px; padding-top: 2px; padding-bottom: 2px; }
Informacje o publikacji informacji na stronie głównej .
Kod PHP: span.status_is_published { padding: 2px; margin: 3px; border: solid 1px #FBC834; }
span.published_date { color: #404040; }
Sformatowanie komentarzy wystawianych przez użytkowników .
Kod PHP: td.comm_title { background-color: #B5B5B5; color: #335599; padding: 2px; font-size: 10px; }
td.comm_title a { color: #335599; font-size: 10px; }
td.comm_body { padding: 2px; }
td.comm_foot { font-size: 10px; color: #336699; text-align: right; background-color: #C9C9C9; padding: 2px; }
td.comm_post { background-color: #EBEBEB; padding: 3px; }
Menu wraz z linkami znajdującymi się w komórkach tabel .
Kod PHP: td.top_menu_td a { color: #ffffff; font-weight: bold; text-decoration: none; }
td.top_menu_link { color: #ffffff; font-weight: bold; text-decoration: none; }
td.top_menu_link:hover { color: #ffffff; font-weight: bold; text-decoration: underline; }
|
|
|
Szablon dla administratora |
Napisane przez: Admin - Wczoraj, 08:23 PM - Forum: Szablon dla administratora
- Brak odpowiedzi
|
 |
Temat jest wczytywany wewnątrz metody , więc należy zdeklarowaćprzed zmiennymi słowo GLOBAL , aby były widoczne wewnątrz obiektu . Dwie zmienne pokażą informacje odnośnie logowania do panelu . Pierwsza odpowiada za pozostawienie pustych pól , natomiast druga za wpisanie niepoprawnych danych .
Kod PHP: global $LoginAppNullFields; global $LoginAppBadData; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head>
Tworzymy tytuł strony . W przypadku gdyby był zdefiniowany w obiekcie , mówiący o naszej obecnej pozycji , wypisujemy jego zawartość . W innym przypadku wypisujemy jedynie tytuł pochodzący z tablicy konfiguracyjnej całego systemu .
Kod PHP: <title><?php if($this->AppTitle != "") { echo $this->AppTitle.' - '.$this->DBConfigTable['title']; } else { echo $this->DBConfigTable['title']; } ?></title>
Ustawiamy kodowanie strony wraz z jej opisem i słowami kluczowymi .
Kod PHP: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="description" content="<?php echo $this->AppDesc; ?>" /> <meta name="keywords" content="<?php echo $this->AppKey; ?>" />
Dołączamy główne arkusze stylów dla naszej aplikacji .
Kod PHP: <link rel="stylesheet" type="text/css" href="<?php echo $this->AppUrl; ?>view/beans/css/default.css"> <link rel="stylesheet" type="text/css" href="<?php echo $this->AppUrl; ?>view/beans/css/system.css">
Włączamy LightBox , aby można było w prosty sposób wyświetlać powiększone obrazy .
Kod PHP: <script type="text/javascript" src="<?php echo $this->AppUrl; ?>library/lightbox/js/prototype.js"></script> <script type="text/javascript" src="<?php echo $this->AppUrl; ?>library/lightbox/js/scriptaculous.js?load=effects,builder"></script> <script type="text/javascript" src="<?php echo $this->AppUrl; ?>library/lightbox/js/lightbox.js"></script>
<link rel="stylesheet" href="<?php echo $this->AppUrl; ?>library/lightbox/css/lightbox.css" type="text/css" media="screen" />
Ikona wyświetlana w pasku adresu przy URL naszej obecnej strony .
Kod PHP: <link rel="Shortcut icon" href="<?php echo $this->AppUrl; ?>fb_images/facebook.ico" />
Tworzymy funkcję , która będzie wyświetlała potwierdzenie przy próbie usunięcia treści z naszego portalu . Przyjmuje ona dwie zmienne : adres , pod którym jest realizowane usuwanie treści , oraz komunikat wyświetlany użytkownikowi .
Kod PHP: <script language="JavaScript"> function DeleteInfo(URL,Comunicate){if(Confirm(Comunicate)){window.location = URL;}} </script>
</head> <body> <?php
Za pomocą zmiennej z sesji sprawdzamy , czy użytkownik jest już zalogowany .
Kod PHP: if($this->AppSessionGetValue('user_id') == "") {
Kiedy administrator nie ma ustawionej zmiennej pochodzącej z sesji , wówczas drukujemy standardowy początek strony .
Kod PHP: ?> <div style="width: 100%; background-color: #3b5998; padding-top: 5px; padding-bottom: 5px; color: #ffffff; text-align: center; font-family: 'Trebuchet MS'; height: 20px;"> <center> <table cellpadding="0" cellspacing="0" border="0" width="1000"> <tr> <td> <a href="<?php echo $this->AppUrl; ?>"><img src="<?php echo $this->AppUrl; ?>fb_images/logo_mini.png" width="200" height="20" /></a> </td> <td width="500" style="text-align: right;"> </td> </tr> </table> </center> </div> <?php } else {
Administrator zalogował się na swoje konto , więc możemy pokazać treść .
Kod PHP: ?> <style> td.top_menu_td a { color: #ffffff; font-weight: bolt; text-decoration: none; } a.top_menu_link { color: #ffffff; font-weight: bold; text-decoration: none; } a.top_menu_link:hover { color: #ffffff; text-decoration: underline; } </style> <div style="width: 100%; background-color: #3b5998; padding-top: 5px; padding-bottom: 5px; color: #ffffff; text-align: center; font-family: 'Trebuchet MS'; height: 20px;"> <center> <table cellpadding="0" cellspacing="0" border="0" width="1000"> <tr> <td> <a href="<?php echo $this->AppUrl; ?>admin.php"><img src="<?php echo $this->AppUrl; ?>fb_images/logo_mini.png" width="200" height="20" /></a> </td> <td width="250"> </td> <td width="650" class="top_menu_td"> </td> </tr> </table> </center> </div> <?php } ?> <center> <div style="padding: 5px; text-align: center; width: 1000px;"> <?php
Wyświetlamy komunikaty pozostawienia pustych pól w formularzu przeznaczonym do logowania oraz komunikat informujący użytkownika , że wpisane przez niego dane zostały podane błędnie .
Kod PHP: if($LoginAppNullFields != "") { echo '<span class="span_bad_login">'.$Lang['l1_login_data_null_fields'].'</span>'; } if($LoginAppBadData != "") { echo '<span class="span_bad_login">'.$Lang['l1_login_data_bad'].'</span>'; } ?> </div> <table cellpadding="0" cellspacing="0" border="0" width="1000" style="table_body"> <tr> <?php
Sprawdzamy , czy zmienna z sesji odpowiedzialna za identyfikację administratora jest pusta , a jeśli tak , to wyświetlamy użytkownikowi jedynie treść generowaną przez sam system .
Kod PHP: if($this->AppSessionGetValue('admin_id') == "") { echo '<td width="1000" style="border: solid 1px #cccccc; padding-left: 20px; padding-right: 20px; padding-bottom: 20px; background-color: #ffffff;">'; echo $this->AppBody; echo '</td>'; } else {
Zmienna sesyjna została ustawiona , więc można oprócz treści pokazać także menu służące do moderacji wszystkich treści wprowadzonych przez użytkownika , zarządzanie reklamami oraz zmianą hasła .
Kod PHP: echo '<td width="200" style="border: solid 1px #3b5998; border-width: 0px; border-right-width: 1px; padding-left: 20px; padding-right: 20px; padding-bottom: 20px; background-color: #ffffff;">'; $this->AdminLeftMenu(); echo '</td'; echo '<td width="800" style="border-width: 0px; padding-left: 5px; padding-right: 5px; padding-bottom: 20px; background-color: #ffffff;">'; echo $this->AppBody; echo '</td'; } ?> </tr> </table> </center> <br />
Na koniec drukujemy stopkę systemu wraz z możliwością wybierania dowolnego języka z spośród dodanych do systemu .
Kod PHP: <center> <table width="1000" cellpadding="0" cellspacing="0"> <tr> <td style="border-top: solid 1px #b3b3b3; font-size: 11px;">© <?php echo $Lang['l1_copyright']; ?> <?php echo $Lang['up_a1_language_select']; if($this->AppSessionGetValue('user_lang') == 'pl') { $LangPLIsChecker = ' style="font-weight: bold;" '; } if($this->AppSessionGetValue('user_lang') == 'en') { $LangENIsChecker = ' style="font-weight: bold;" '; } echo '<a href="'.$this->AppUrl.'admin.php?fb_action_lang=change&select_language_set=pl" '.$Lang['u_p_a1_pl'].'</a>'; echo '<a href="'.$this->AppUrl.'admin.php?fb_action_lang=change&select_language_set=en" '.$Lang['u_p_a1_en'].'</a>'; ?> </td> <td style="border-top: solid 1px #b3b3b3; text-align: right; font-size: 11px;" <?php echo $Lang['l1_copyright']; ?> </td> </tr> </table>
Ważnym elementem jest zamieszczenie informacji , iż strona powstała jedynie w celach testowych , aby uniknąć ewentualnych kłopotów .
Kod PHP: <div style="width: 1000px; text-align: center; padding: 5px; color: #ffffff; background-color: #600000;"> <?php echo $Lang['copyright_trademark']; ?> </div> </body> </html>
|
|
|
Szablon dla użytkownika |
Napisane przez: Admin - Wczoraj, 07:57 PM - Forum: Szablon dla użytkownika
- Brak odpowiedzi
|
 |
Ponieważ plik jest wczytywany w metodzie , musimy zadeklarować niektóre zmienne jako globalne . Dwie zmienne odpowiedzialne za pozostawienie pustych pól podczas logowania oraz za błędne dane , którymi zostały wypełnione pola .
Kod PHP: global $LoginAppNullFields; global $LoginAppBadData; ?>
Dokument powinien rozpoczynać się od zadeklarowania jego nagłówka z informacją o wersji używanego języka do kodowania . Istnieją bowiem różne odmiany języka HTML wraz z XHTML , z którego rozwijania zrezygnowano .
Kod PHP: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head>
Nazwa strony pokazywana w pasku tytułu przeglądarki jest drukowana pomiędzy znacznikami TITLE . W przypadku gdyby zmienna z wartością nie była pusta , wówczas ustawiamy wartość z tej zmiennej , a następnie końcówkę wraz z nazwą strony dostępną w odpowiedniej do tego tablicy z konfiguracją . Kiedy ta zmienna jest pusta , ustawiamy jedynie wartość z tablicy .
Kod PHP: <title><?php if($this->AppTitle != ""){echo $this->AppTitle.' - '.$this->DBConfigTable['title'];} else{echo $this->DBConfigTable['title'];} ?></title>
Kodowanie strony ustawiamy na UTF-8 , dzięki czemu można utworzyć witryny pisane w wielu językach . Dodajemy opis strony i jej słowa kluczowe .
Kod PHP: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="description" content="<?php echo $this->AppDesc; ?>" /> <meta name="keywords" content="<?php echo $this->AppKey; ?>" />
Teraz należy załadować arkusz stylów : domyślny oraz nasz własny .
Kod PHP: <link rel="stylesheet" type="text/css" href="<?php echo $this->AppUrl; ?>view/beans/css/default.css"> <link rel="stylesheet" type="text/css" href="<?php echo $this->AppUrl; ?>view/beans/css/system.css">
Ładujemy także bibliotekę LightBox wraz z określeniem jej efektów wizualnych , które będą pojawiały się podczas powiększania obrazu .
Kod PHP: <script type="text/javascript" src="<?php echo $this->AppUrl; ?>library/lightbox/js/prototype.js"></script> <script type="text/javascript" src="<?php echo $this->AppUrl; ?>library/lightbox/js/scriptaculous.js?load=effects,builder"></script> <script type="text/javascript" src="<?php echo $this->AppUrl; ?>library/lightbox/js/lightbox.js"></script>
<link rel="stylesheet" href="<?php echo $this->AppUrl; ?>library/lightbox/css/lightbox.css" type="text/css" media="screen" />
Ikona pojawiająca się w pasku adresu obok naszego URL strony .
Kod PHP: <link rel="Shortcut icon" href="<?php echo $this->AppUrl; ?>fb_images/facebook.ico" />
Tworzymy własne skrypty JavaScript . Pierwsza funkcja będzie służyła potwierdzaniu zamiaru usunięcia danego elementu i będzie przyjmowała URL , pod jaki użytkownik ma zostać przekierowany , oraz treść komunikatu , który należy użytkownikowi wyświetlić . Natomiast druga funkcja będzie używana do pokazywania warstw . Jedynym parametrem jest nazwa elementu . Gdy będzie widoczny , po użyciu funkcji zniknie on z ekranu . Natomiast kiedy będzie niewidoczny , pojawi się w określonym miejscu.
Kod PHP: <script language="JavaScript"> function DeleteInfo(URL,Comunicate){if(Confirm(Comunicate)){window.location = URL;}} function PublishCommForm(DivFormName){if(document.getElementById(DivFormName).style.display == 'block'){document.getElementById(DivFormName).style.display='none';}else{document.getElementById(DivFormName).style.display='block';}} </script>
Załadujemy jeszcze bibliotekę Prototype do operacji związanych z AJAX-em .
Kod PHP: <script src="<?php echo $this->AppUrl; ?>library/prototype.js"></script>
</head> <body>
Rozpoczynamy pierwszą tabelę widoczną na samej górze strony zawierającą logo oraz pola do logowania bądź menu użytkownika .
Kod PHP: <table width="100%" cellpadding="0" cellspacing="0"><tr><td style="background-color: #f3f4f9;"><?php
Sprawdzamy za pomocą metody , czy nasz użytkownik jest zalogowany . Gdy zmienna sesyjna nie będzie posiadała żadnej wartości , oznacza to , iż należy użytkownikowi pokazać okno , wktórym będzie mógł się zalogować oraz wystąpić z prośbą o przypomnienie hasła.
Kod PHP: if($this->AppSessionGetValue('user_id') == "") { ?> <div style="width: 100%; background-color: #3b5998; padding-top: 5px; padding-bottom: 5px; color: #ffffff; text-align: center; font-family: 'Trebuchet MS'; height: 80px;"> <center> <table cellpadding="0" cellspacing="0" border="0" width="1000"> <tr> <td> <a href="<?php echo $this->AppUrl; ?>"><img src="<?php echo $this->AppUrl; ?>fb_images/logo.png" width="200" height="70" /></a> </td> <td width="500" style="text-align: right;"> <form action="<?php echo $this->AppUrl; ?>index.php" method="post"> <table> <tr> <td style="text-align: left;"> <?php echo $Lang['l1_login_email']; ?> </td> <td style="text-align: left;"> <?php echo $Lang['l1_login_pswd']; ?> </td> <td> </td> </tr> <tr> <td style="text-align: left;"> <input type="text" name="login_user_email" style="width: 170px;" /> </td> <td style="text-align: left;"> <input type="password" name="login_user_pswd" style="width: 170px;" /> </td> <td style="text-align: left;"> <input type="hidden" name="fb_action_login" value="login" /> <input type="submit" value="<?php echo $Lang['l1_login_button']; ?>" class="submit_buttom" /> </td> </tr> <tr> <td style="text-align: left;"> <?php echo '<a href="'.$this->AppMakeLink('password').'" class="up_menu">'.$Lang['l1_m_remind_password'].'</a>'; ?> </td> <td> </td> <td> </td> </tr> </table> </form> </td> </tr> </table> </center> </div> <?php } else {
Sprawdzamy sesję , w której powinien znajdować się identyfikator użytkownika pobrany z tabeli z ich danymi .
Kod PHP: if($this->AppSessionGetValue('user_id') != "") {
Na samej górze strony , w przypadku zalogowania się na swoje konto , jest widoczna lista przyjaciół . Musimy więc wybrać z tabeli 14 osób , ponieważ tyle znajdzie miejsce u góry strony bez jej rozsuwania , gdzie użytkownik jest do nich przypisany , a wszystkie znajomości zostały zaakceptowane .
Kod PHP: $SqlConfig = 'SELECT * FROM '.$this->DBPrefix.'friends WHERE friend_user_id = "'.$this->AppDBSecure($this->AppSessionGetValue('user_id')).'" AND friend_accept = "y" LIMIT 0,14 ';
Wykonujemy zapytanie i pobieramy wyniki .
Kod PHP: if(!$this->AppDBQuery($SqlConfig)) { $this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig); } $Result = $this->AppDBResult(); $Rows = $this->AppDBHowMany(); echo '<center><table cellpadding="0" cellspacing="0" border="0" width="1000"><tr><td>';
Kiedy liczba przyjaciół , a tak zawsze będzie od razu po rejestracji , jest równa zero , wyświetlamy łącze do formularza , które pozwala na zaproszenie nowych osób do strony , na której mamy konto .
Kod PHP: if($Rows == 0) { echo $Lang['nv1_no_friend'].' <a href="'.$this->AppUrl.'index.php?app=emailinvite">'.$Lang['nv1_invite_friend'].'</a>'; } else { echo '<table'; echo '<td class="fb_row_underline">'.$Lang['nv1_your_friends'].'</td>';
Istniejących znajomych należy wybrać z tabeli z użytkownikami , ponieważ w poprzednim rapytaniu jako rezultat otrzymaliśmy tylko ich identyfikatory . Dane każdej z osób pobieramy w osobnym odpytaniu bazy danych w pętli określającą liczbę przyjaciół .
Kod PHP: for($f=0;$f<$Rows;$f++) { $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();
Sprawdzamy , czy użytkownik ma aktywne konto w serwisie .
Kod PHP: if($ResultFriend[0]['user_active'] == 'y') { if($ResultFriend[0]['user_picture'] == 'y') {
Avatar użytkownika istnieje i możemy śmiało załadować plik o średniej wielkości .
Kod PHP: $FileImage = $this->AppUrl.'upload/'.$ResultFriend[0]['user_id'].'/prifile_medium.jpg'; } else {
W przypadku gdyby nie posiadał własnego obrazu , ładujemy domyślny z folderu zawierającego domyślne pliki zarównodla kobiet , jak i mężczyzn , uwzględniając przy wyborze płeć podaną podczas zakładania własnego profilu .
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'; } }
Poniżej tworzymy linki do profilu danej osoby za pomocą specjalnej funkcji , która pozwala zapomnieć o tworzeniu odpowiednich adresów dla strony .
Kod PHP: echo '<td class="fb_row_underline"><a href="'.$this->AppMakeLink('showprofile', $ResultFriend[0]['user_id']).'" title="'.$this->AppDBUnsecure($ResultFriend[0]['user_firstname']).''.$this->AppDBUnsecure($ResultFriend[0]['user_lastname']).'"><img src="'.$FileImage.'" height="25" /></a></td>'; } } echo '</table>'; } echo '</td></tr></table></center>'; } ?>
Drukujemy tabelkę zawierającą logo .
Kod PHP: <div style="width: 100%; background-color: #3b5998; padding-top: 5px; padding-bottom: 5px; color: #ffffff; text-align: center; font-family: 'Trebuchet MS'; height: 20px;"> <center> <table cellpadding="0" cellspacing="0" border="0" width="1000"> <tr> <td> <a href="<?php echo $this->AppUrl; ?>"><img src="<? echo $this->AppUrl; ?>fb_images/logo_mini.png" width="200" height="20" /></a> </td> <td width="250"> </td> <td width="650" class="top_menu_td" style="text-align: right; background-color: #627aad; border: solid 1px #1D4088; border-bottom-width: 0px; vartical-align: bottom; padding-right: 20px;">
Tworzenie rozwijanego menu zrobimy za pomocą skryptu , który także jest dostępny w Internecie . W zależności od opcji , która zostanie wybrana , odpowiednia pozycja się otworzy .
Kod PHP: <!-- dd menu --> <script type="text/javascript"> <!-- var timeout = 500; var closetimer = 0; var ddmenuitem = 0; // open hidden layer function mopen(id) { // cancel close timer mcancelclosetime(); // close old layer if(ddmenuitem) ddmenuitem.style.visibility = 'hidden'; // get new layer and show it ddmenuitem = document.getElementById(id); ddmenuitem.style.visibility = 'visible'; } // close showed layer function mclose() { if(ddmenuitem) ddmenuitem.style.visibility = 'hidden'; } // go close timer function mclosetime() { closetimer = window.setTimeOut(mclose, timeout); } // cancel close timer function mcancelclosetime() { if(closetimer) { window.clearTimeout(closetimer); closetimer = null; } } // close layer when click-out document.onclick = mclose; // --> </script>
Należy jeszcze umieścić arkusz stylów dla górnego menu .
Kod PHP: <style> #sddm{margin: 0;padding: 0;z-index: 30;text-align: right;} #sddm li{margin: 0;padding: 0;list-style: none;float: left;font: bold 11px arial;} #sddm li a{display: block;margin: 0 0px 0 0;padding 4px 4px;width: 100px;background: #627aad;color: #FFF;text-align center;text-decoration: none;} #sddm li a:hover{background: #6d86b7;} #sddm div{position: absolute;visibility: hidden;margin: 0;padding: 0;background: #EAEBD8;border: 1px solid #5970B2;} #sddm div a{position: relative;display: block;margin: 0;padding: 5px 10px;width: auto;white-space: nowrap;text-align: left;text-decoration: none;background: #ffffff;color: #3a579a;font: 11px arial;} #sddm div a:hover{background: #6d86b7;color: #FFF;} </style>
Możemy już stworzyć menu za pomocą listy UL , gdzie poszczególne elementy będą zdefiniowane jako jej pozycje za pomocą znacznika LI .
Menu Strona Domowa
Kod PHP: <li><a href="<?php echo $this->AppUrl; ?>index.php"><?php echo $Lang['l1_m_homepage']; ?></a></li>
Menu Profilu
Kod PHP: <li><a href="#" onmouseover="mopen('m2')" onmouseout="mclosetime()"><?php echo $Lang['l1_m_profile_menu']; ?></a> <div id="m2" onmouseover="mcancelclosetime()" onmouseout="mclosetime()"> <?php echo '<a href="'.$this->AppMakeLink('showprofile', $this->AppSessionGetValue('user_id')).'">'.$Lang['l1_m_see_your_profile'].'</a>'; echo '<a href="'.$this->AppMakeLink('change_pswd').'">'.$Lang['a_d10_m_change_password'].'</a>'; if($this->AppSessionGetValue('user_firm') != 'y'){echo '<a href="'.$this->AppMakeLink('privacy').'">'.$Lang['l1_m_set_priwacy'].'</a>';} echo '<a href="'.$this->AppMakeLink('picture').'">'.$Lang['l1_m_profilepicture'].'</a>'; if($this->AppSessionGetValue('user_firm') != 'y'){echo '<a href="'.$this->AppMakeLink('school').'">'.$Lang['l1_m_edit_school'].'</a>'; echo '<a href="'.$this->AppMakeLink('work').'">'.$Lang['l1_m_edit_work'].'</a>';} echo '<a href="'.$this->AppMakeLink('about').'">'.$Lang['l1_m_about'].'</a>'; if($this->AppSessionGetValue('user_firm') != 'y'){echo '<a href="'.$this->AppMakeLink('language').'">'.$Lang['up4_d1_m_languages'].'</a>'; echo '<a href="'.$this->AppMakeLink('entertainment').'">'.$Lang['l1_m_enternaiment'].'</a>'; echo '<a href="'.$this->AppMakeLink('maritalstatus').'">'.$Lang['l1_m_marialstatus'].'</a>'; echo '<a href="'.$this->AppMakeLink('philosophy').'">'.$Lang['l1_m_philosophy'].'</a>'; echo '<a href="'.$this->AppMakeLink('sport').'">'.$Lang['l1_m_sport'].'</a>';} echo '<a href="'.$this->AppMakeLink('contactinformation').'">'.$Lang['l1_m_contactinfo'].'</a>'; if($this->AppSessionGetValue('user_firm') != 'y'){echo '<a href="'.$this->AppMakeLink('interests').'">'.$Lang['l1_m_interests'].'</a>';} ?> </div> </li>
Menu Przyjaciół
Kod PHP: <li><a href="#" onmouseover="mopen('m3')" onmouseout="mclosetime()"><?php echo $Lang['l1_m_friends']; ?></a> <div id="m3" onmouseover="mcancelclosetime()" onmouseout="mclosetime()"> <?php if($this->AppSessionGetValue('user_firm') != 'y') { echo '<a href="'.$this->AppMakeLink('friends').'">'.$Lang['l1_m_edit_firends'].'</a>'; echo '<a href="'.$this->AppMakeLink('emailinvite').'">'.$Lang['l1_m_emailinvite'].'</a>'; echo '<a href="'.$this->AppMakeLink('searchfriends').'">'.$Lang['l1_m_search_firends'].'</a>'; echo '<a href="'.$this->AppMakeLink('inviteyou').'">'.$Lang['l3_a1_invite_you'].'</a>'; echo '<a href="'.$this->AppMakeLink('likeit').'">'.$Lang['l1_m_likeit'].'</a>'; } ?> </div> </li>
Menu wiadomosci
Kod PHP: <li><a href="#" onmouseover="mopen('m4')" onmouseout="mclosetime()"><?php echo $Lang['l1_m_messages']; ?></a> <div id="m4" onmouseover="mcancelclosetime()" onmouseout="mclosetime()"> <a href="<?php echo $this->AppMakeLink('pm_get'); ?>"><?php echo $Lang['l1_m_inbox']; ?></a> <a href="<?php echo $this->AppMakeLink('pm_send'); ?>"><?php echo $Lang['l1_m_send']; ?></a> <a href="<?php echo $this->AppMakeLink('pm_new'); ?>"><?php echo $Lang['l1_m_write_new']; ?></a> </div> </li>
Menu Wyloguj
Kod PHP: <li><a href="<?php echo $this->AppUrl; ?>index.php?app=logout"><?php echo $Lang['l1_m_logout']; ?></a></li> </ul> </td> </tr> </table> </center> </div> <?php } ?>
Teraz możemy zacząć tworzyć główną część strony przeznaczoną do wyświetlania treści generowanych przez system .
Kod PHP: <center> <div style="padding: 5px;text-align: center;width: 1000px;background-color: #f3f4f9;"> <?php
Najpierw trzeba się jednak zatroszczyć o błędneinformacje podane podczas logowania . Pierwszą jest brak wypełnienia wszystkich pól , a drugim wypełnienie ich , lecz błędnymi danymi .
Kod PHP: if($LoginAppNullFields != "") { echo '<span class="span_bad_login">'.$Lang['l1_login_data_null_fields'].'</span>'; } if($LoginAppBadData != "") { echo '<span class="span_bad_login">'.$Lang['l1_login_data_bad'].'</span>'; } /* Sprawdzamy , czy formularz do rejestracji strony firmowej bądź opisującej jakiś temat został wysłany . */ if($_POST['fb_action'] == 'register_firm') {
Sprawdzamy , czy wszystkie pola zostały wypełnione , gdyż tylko w takim przypadku możliwa jest rejestracja . Gdy któreś w pól pozostało puste , wówczas wyświetlamy odpowiedni komunikat z prośbą o wypełnienie .
Kod PHP: if($_POST['reg_firm_user_firstname'] == "" OR $_POST['reg_firm_user_lastname'] == "" OR $_POST['reg_firm_user_email'] == "" OR $_POST['reg_firm_user_email_rec'] == "" OR $_POST['reg_firm_user_pswd'] == "" OR $_POST['reg_firm_user_pswd_rec'] == "" OR $_POST['reg_firm_user_firm_name'] == "" OR $_POST['reg_firm_user_www'] == "" OR $_POST['reg_firm_user_firstlastname'] == "" ) { echo $this->AppPrintWarning($Lang['l1_not_fill_all_fields']); } else {
Musimy sprawdzić , czy adresy e-mailowe wpisane w formularzu są identyczne .
Kod PHP: if($_POST['reg_firm_user_email'] == $_POST['reg_firm_user_email_rec']) {
Za pomocą metody spawdzamy , czy adres e-mailowy jest prawidłowo skonstruowany .
Kod PHP: if($this->AppValidateEmail($_POST['reg_firm_user_email'])) {
Hasło i jego potwierdzenie także powinny być identyczne .
Kod PHP: if($_POST['reg_firm_user_pswd'] == $_POST['reg_firm_user_pswd_rec']) {
Pozostało nam jeszcze jedno do zrobienia . Musimy sprawdzić , czy użytkownik o takim adresie e-mailowym już nie zarejestrował swojego konta .
Kod PHP: if(!$this->CheckIsEmail($_POST['reg_firm_user_email'])) {
Tworzymy tablicę z literami oraz cyframi , spośród których będzie losowany kod przeznaczony do aktywacji konta .
Kod PHP: $ArrayToRand = array( 1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'e', 6 => 'f', 7 => 'g', 8 => 'h', 9 => 'i', 10 => 'j', 11 => 'k', 12 => 'l', 13 => 'm', 14 => 'n', 15 => 'o', 16 => 'p', 17 => 'q', 18 => 'r', 19 => 's', 20 => 't', 21 => 'u', 22 => 'w', 23 => 'x', 24 => 'y', 25 => 'z', 26 => '1', 27 => '2', 28 => '3', 29 => '4', 30 => '5', 31 => '6', 32 => '7', 33 => '8', 34 => '9', 35 => '0' ); $SpecialCode = ''; for($i=0;$i<24;$i++) { $SpecialCode .= $ArrayToRand[array_rand('$ArrayToRand')]; }
Możemy już umieścić daną stronę firmową lub fanów w bazie danych wraz z danymi podanymi podczas jej zakładania .
Kod PHP: $SqlConfig = 'INSERT INTO '.$this->DBPrefix.'user ( user_lang, user_firstname, user_lastname, user_gender, user_birth_day, user_birth_month, user_birth_year, user_email, user_pswd, user_code, user_reg, user_firm_name, user_www, user_firstlastname, user_is_firm, ) VALUES ( "'.$this->AppDBSecure($this->AppSessionGetValue('user_lang')).'", "'.$this->AppDBSecure($_POST('reg_firm_user_firstname')).'", "'.$this->AppDBSecure($_POST('reg_firm_user_lastname')).'", "'.$this->AppDBSecure($_POST('reg_firm_user_gender')).'", "'.$this->AppDBSecure($_POST('reg_firm_user_birth_day')).'", "'.$this->AppDBSecure($_POST('reg_firm_user_birth_month')).'", "'.$this->AppDBSecure($_POST('reg_firm_user_birth_year')).'", "'.$this->AppDBSecure($_POST('reg_firm_user_email')).'", "'.$this->AppDBSecure(md5($_POST['reg_firm_user_pswd'])).'", "'.$this->AppDBSecure($SpecialCode).'", "'.$this->AppDBSecure(time()).'", "'.$this->AppDBSecure($_POST('reg_firm_user_firm_name')).'", "'.$this->AppDBSecure($_POST('reg_firm_user_www')).'", "'.$this->AppDBSecure($_POST('reg_firm_user_firstlastname')).'", "y" ) '; if(!$this->AppDBQuery($SqlConfig)) { $this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig); }
Wybieramy nowo założone konto użytkownika w celu pozyskania jego numeru ID , według którego utworzymy odpowiedni katalog na pliki wgrywane na serwer .
Kod PHP: $SqlConfig = ' SELECT user_id FROM '.$this->DBPrefix.'user WHERE user_birth_day = "'.$this->AppDBSecure($_POST['reg_firm_user_birth_day']).'" AND user_birth_month = "'.$this->AppDBSecure($_POST['reg_firm_user_birth_month']).'" AND user_birth_year = "'.$this->AppDBSecure($_POST['reg_firm_user_birth_year']).'" AND user_email = "'.$this->AppDBSecure($_POST['reg_firm_user_email']).'" '; if(!$this->AppDBQuery($SqlConfig)) { $this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig); } $Result = $this->AppDBResult(); $Rows = $this->AppDBHowMany(); /* Tworzymy katalog . */ mkdir('./upload/'.$Result[0]['user_id']); /* Teraz przygotujemy list e-mailowy zawierający w treści adres przeznaczony do aktywacji konta . */ $ContentOfLetter = $Lang['reg_email_send'].$this->AppUrl.'index.php?app=account&user_email='.$_POST['reg_firm_user_email'].'&code='.$SpecialCode.' '.$Lang['reg_email_second_send'];
Definiujemy kolejno adres , na który zostanie e-mail wysłany , e-mail , z którego przyjdzie on na konto , temat wiadomości , treść utworzoną w poprzedniej zmiennej oraz nagłówek , w jakim ma zostać wysłana wiadomość .
Kod PHP: $this->AppSendTo = $_POST['reg_firm_user_email']; $this->AppSendFrom = $this->DBConfigTable['admin_email']; $this->AppSendTopic = $Lang['reg_activation']; $this->AppSendContent = $ContentOfLetter; $this->AppSendHeaders = 'text';
Wysyłamy e-mail i drukujemy informację o poprawnej rejestracji .
Kod PHP: $this->AppSendEmail(); echo $this->AppPrintSuccess($Lang['reg_account_created']);
Na samym końcu można wyczyścić pola wypełnione przez użytkownika w formularzu .
Kod PHP: $_POST['reg_firm_user_firstname'] = ''; $_POST['reg_firm_user_lastname'] = ''; $_POST['reg_firm_user_email'] = ''; $_POST['reg_firm_user_email_rec'] = ''; $_POST['reg_firm_user_pswd'] = ''; $_POST['reg_firm_user_pswd_rec'] = ''; $_POST['reg_firm_user_gender'] = ''; $_POST['reg_firm_user_birth_day'] = ''; $_POST['reg_firm_user_birth_month'] = ''; $_POST['reg_firm_user_birth_year'] = ''; $ClearDataRegistrationForm = true; } else {
Drukujemy komunikat informujący , iż taki e-mail znajduje się już w naszej bazie .
Kod PHP: echo $this->AppPrintWarning($Lang['l1_user_this_email_exists']); } } else {
Informacja wyświetlająca komunikat , iż hasło i jego potwierdzenie nie pasują do siebie .
Kod PHP: echo $this->AppPrintWarning($Lang['l1_pswd_dont_match']); } } else {
Poinformowanie użytkownika , iż adres e-mailowy został podany niepoprawnie .
Kod PHP: echo $this->AppPrintWarning($Lang['l1_email_bad']); } } else {
Wyświetlamy informację o niepasujących do siebie podanych adresach e-mailowych .
Kod PHP: echo $this->AppPrintWarning($Lang['l1_email_rec_dont_match']); } } }
kiedy akcją po wysłaniu formularza było zarejestrowanie użytkownika , musimy przeprowadzić dokładne sprawdzenie pól formularza , a następnie jeżeli wszystkie pola będą posiadały odpowiednią wartość , można takiego użytkownika dodać .
Kod PHP: elseif($_POST['fb_action'] == 'register') {
Pierwszą rzeczą jest sprawdzenie , czy któreś z wymaganych pól nie pozostało puste . Wówczas wyświetlamy użytkownikowi informację o konieczności jego wypełnienia .
Kod PHP: if($_POST['user_firstname'] == "" OR $_POST['user_lastname'] == "" OR $_POST['user_email'] == "" OR $_POST['user_email_rec'] == "" OR $_POST['user_pswd'] == "" OR $_POST['user_pswd_rec'] == "" OR $_POST['gender'] == "" OR $_POST['user_birth_day'] == "" OR $_POST['user_birth_month'] == "" OR $_POST['user_birth_year'] == "") { echo $this->AppPrintWarning($Lang['l1_not_fill_all_fields']); } else {
Sprawdzamy także , czy e-mail podany w formularzu pasuje do jego potwierdzenia .
Kod PHP: if($_POST['user_email'] == $_POST['user_email_rec']) {
Adres e-mailowy może zostać podany niepoprawnie i należy sprawdzić , czy odpowiada on założeniom składni .
Kod PHP: if($this->AppValidateEmail($_POST['user_email'])) {
Teraz sprawdzamy , czy hasło podane w formularzu jest identyczne z jego potwierdzeniem .
Kod PHP: if($_POST['user_pswd'] == $_POST['user_pswd_rec']) {
Na samym końcu należy zadać zapytanie do bazy danych , czy użytkownik z takim adresem e-mailowym już się nie zarejestrował .
Kod PHP: if(!$this->CheckIsEmail($_POST['user_email'])) {
Wszystkie warunki zostały pozytywnie zakończone . Teraz możemy przejść do generowania kodu aktywacyjnego do konta , które zostanie wysłane na e-mail podany podczas zakładania profilu .
Kod PHP: $ArrayToRand = array( 1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'e', 6 => 'f', 7 => 'g', 8 => 'h', 9 => 'i', 10 => 'j', 11 => 'k', 12 => 'l', 13 => 'm', 14 => 'n', 15 => 'o', 16 => 'p', 17 => 'q', 18 => 'r', 19 => 's', 20 => 't', 21 => 'u', 22 => 'w', 23 => 'x', 24 => 'y', 25 => 'z', 26 => '1', 27 => '2', 28 => '3', 29 => '4', 30 => '5', 31 => '6', 32 => '7', 33 => '8', 34 => '9', 35 => '0' ); $SpecialCode = ''; for($i=0;$i<24;$i++) { $SpecialCode .= $ArrayToRand[array_rand('$ArrayToRand')]; }
Wpisujemy dane do bazy danych .
Kod PHP: $SqlConfig = 'INSERT INTO '.$this->DBPrefix.'user ( user_lang, user_firstname, user_lastname, user_gender, user_birth_day, user_birth_month, user_birth_year, user_email, user_pswd, user_code, user_reg, ) VALUES ( "'.$this->AppDBSecure($this->AppSessionGetValue('user_lang')).'", "'.$this->AppDBSecure($_POST('user_firstname')).'", "'.$this->AppDBSecure($_POST('user_lastname')).'", "'.$this->AppDBSecure($_POST('user_gender')).'", "'.$this->AppDBSecure($_POST('user_birth_day')).'", "'.$this->AppDBSecure($_POST('user_birth_month')).'", "'.$this->AppDBSecure($_POST('user_birth_year')).'", "'.$this->AppDBSecure($_POST('user_email')).'", "'.$this->AppDBSecure(md5($_POST['user_pswd'])).'", "'.$this->AppDBSecure($SpecialCode).'", "'.$this->AppDBSecure(time()).'", ) '; if(!$this->AppDBQuery($SqlConfig)) { $this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig); }
Wybieramy użytkownika na podstawie danych zapisanych do bazy . Potzrebny będzie nam jego unikalny numer identyfikacyjny .
Kod PHP: $SqlConfig = ' SELECT user_id FROM '.$this->DBPrefix.'user WHERE user_birth_day = "'.$this->AppDBSecure($_POST['user_birth_day']).'" AND user_birth_month = "'.$this->AppDBSecure($_POST['user_birth_month']).'" AND user_birth_year = "'.$this->AppDBSecure($_POST['user_birth_year']).'" AND user_email = "'.$this->AppDBSecure($_POST['user_email']).'" '; if(!$this->AppDBQuery($SqlConfig)) { $this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig); } $Result = $this->AppDBResult(); $Rows = $this->AppDBHowMany();
Tworzymy katalog na pliki graficzne , które użytkownik będzie wgrywał na własne konto .
Kod PHP: mkdir('./upload/'.$Result[0]['user_id']);
Tworzymy treść listu e-mail zawierającego link do aktywacji konta na naszej stronie .
Kod PHP: $ContentOfLetter = $Lang['reg_email_send'].$this->AppUrl.'index.php?app=account&user_email='.$_POST['user_email'].'&code='.$SpecialCode.' '.$Lang['reg_email_second_send'];
Definiujemy kolejno : adres e-mailowy , na który mamy zamiar wysłać list , adres nadawcy z tablicy konfiguracyjnej , temat , treść oraz format listu .
Kod PHP: $this->AppSendTo = $_POST['user_email']; $this->AppSendFrom = $this->DBConfigTable['admin_email']; $this->AppSendTopic = $Lang['reg_activation']; $this->AppSendContent = $ContentOfLetter; $this->AppSendHeaders = 'text';
Wysyłamy list i wyświetlamy komunikat z informacją , że takie konto zostało poprawnie założone .
Kod PHP: $this->AppSendEmail(); echo $this->AppPrintSuccess($Lang['reg_account_created']);
Musimy jeszcze wyczyścić dane pochodzące z formularza przeznaczonego do rejestracji .
Kod PHP: $_POST['reg_firm_user_firstname'] = ''; $_POST['reg_firm_user_lastname'] = ''; $_POST['reg_firm_user_email'] = ''; $_POST['reg_firm_user_email_rec'] = ''; $_POST['reg_firm_user_pswd'] = ''; $_POST['reg_firm_user_pswd_rec'] = ''; $_POST['reg_firm_user_gender'] = ''; $_POST['reg_firm_user_birth_day'] = ''; $_POST['reg_firm_user_birth_month'] = ''; $_POST['reg_firm_user_birth_year'] = ''; $ClearDataRegistrationForm = true; } else {
Informacja dla użytkowników , którego adres e-mailowy jest już zapisany w bazie danych .
Kod PHP: echo $this->AppPrintWarning($Lang['l1_user_this_email_exists']); } } else {
W przypadku kiedy hasło i jego potwierdzenie nie pasują do siebie , także należy wyświetlić odpowiedni komunikat .
Kod PHP: echo $this->AppPrintWarning($Lang['l1_pswd_dont_match']); } } else {
Informacja o błędnie wpisanym adresie e-mailowym .
Kod PHP: echo $this->AppPrintWarning($Lang['l1_email_bad']); } } else {
Przekazujemy użytkownikowi komunikat o błędzie we wpisanych adresach e-mailowych , które nie pasują do siebie .
Kod PHP: echo $this->AppPrintWarning($Lang['l1_email_rec_dont_match']); } } } ?> </div>
Należy stworzyć tabelę , w której będzie wyświetlana treść całego systemu .
Kod PHP: <table cellpadding="0" cellspacing="0" border="0" width="1000" width="1000" style="table_body"> <tr> <?php
Gdy użytkownik nie jest zalogowany , wyświetlamy tylko i wyłącznie wartość zmiennej zawierającej treść wygenerowaną przez system .
Kod PHP: if($this->AppSessionGetValue('user_id') == "") { echo '<td width="1000" style="border: solid 1px #cccccc;padding-left: 20px;padding-right: 20px;padding-bottom: 20px;background-color: #ffffff;">'; echo $this->AppBody; echo '</td>'; } else {
Dana osoba została już zidentyfikowana . W przypadku gdyby wybrała pozycję gry z głównego menu , wystarczy pokazać jej treść z systemu , a dodatkowo po prawej stronie menu .
Kod PHP: if($app == 'playgame') { echo '<td width="800" style="border-width: 0px;padding-left: 5px;padding-right: 5px;padding-bottom: 20px;background-color: #ffffff;">'; echo $this->AppBody; echo '</td>'; echo '<td width="200" style="border-width: 0px;padding-left: 5px;padding-right: 5px;padding-bottom: 20px;background-color: #ffffff;">'; $this->RightMenu(); echo '</td>'; } else {
Każdy inny przypadek , czyli aktywność użytkownika na dowolnej stronie oprócz gier , spowoduje wygenerowanie wyglądu z lewym menu , treścią oraz prawym menu .
Kod PHP: echo'<td width="200" style="border: solid 1px #3b5998;border-width: 0px;border-right-width: 1px;padding-left: 20px;padding-bottom: 20px;background-color: #ffffff;">'; $this->LeftMenu(); echo '</td>'; echo 'td width="600" style="border-width: 0px;padding-left: 5px;padding-right: 5px;padding-bottom: 20px;background-color: #ffffff;">'; echo $this->AppBody; echo '</td>'; echo 'td width="200" style="border-width: 0px;padding-left: 20px;padding-right: 20px;padding-bottom: 20px;background-color: #ffffff;">'; $this->RightMenu(); echo '</td>'; } } ?> </tr> </table> </center> <br /> </td> </tr> </table> <br />
Drukujemy tabelę zawierającą informacje o stopce i zmianie języka .
Kod PHP: <center> <table width="100%" cellpadding="0" cellspacing="0"> <tr> <td style="background-color: #ffffff;"> <center> <table width="1000" cellpadding="0" cellspacing="0"> <tr> <td style="border-top: solid 1px #b3b3b3;font-size: 11px;">© <?php echo $Lang['l1_copyright']; ?> <?php echo $Lang['up_a1_language_select'];
Sprawdzamy , który język został ustawiony w sesji użytkownika , a następnie dla wybranego określamy odpowiedni styl pozwalający na jego wyróżnienie .
Kod PHP: if($this->AppSessionGetValue('user_lang') == 'pl') { $LangPLIsChecker = ' style="font-weight: bold;" '; } if($this->AppSessionGetValue('user_lang') == 'en') { $LangENIsChecker = ' style="font-weight: bold;" '; } echo '<a href="'.$this->AppUrl.'index.php?fb_action_lang=change&select_language_set=pl" '.$LangPLIsChecker.'>'.$Lang['u_p_a1_pl'].'</a>'; echo '<a href="'.$this->AppUrl.'index.php?fb_action_lang=change&select_language_set=en" '.$LangENIsChecker.'>'.$Lang['u_p_a1_en'].'</a>'; ?> </td> <td style="border-top: solid 1px #b3b3b3;text-align: right;font-size: 11px;"> <?php echo $Lang['l1_copyright_by']; ?> </td> </tr> </table> </center> </td> </tr> </table>
Na końcu pliku umieszczamy krótką informację o prawach autorskich i aplikacji , która została skonstruowana w celach testowych .
Kod PHP: <div style="width: 1000px;text-align: center;padding: 5px;color: #ffffff;background-color: #600000;"> <?php echo $Lang['copyright_trademark']; ?> </div> </center> </body>
|
|
|
Katalogi upload i upload_tmp |
Napisane przez: Admin - Wczoraj, 07:25 PM - Forum: Katalogi upload i upload_tmp
- Brak odpowiedzi
|
 |
Pierwszy folder upload_tmp będzie zawierał wszyskie pliki wgrane kiedykolwiek przez użytkowników . Zostaną one zamieszczone w tym folderze , aby później można było je przeskalować i skopiować do katalogów , które posiadają odrębni użytkownicy . Ponieważ folder będzie zawierał treści tymczasowe , można go co kilka dni czyścić .
Przyszła pora na stworzenie katalogu upload . Katalog będzie zawierał podkatalogi powiązane z numerem identyfikacyjnym użytkownika w systemie . Numer jest przechowywany w polu AUTO_INCREMENT w tabeli z danymi członków , którzy dołączyli do wspólnoty społecznościowej . Wszystkie foldery są tworzone automatycznie przez system , więc nie musimy sobie zaprzątać nimi głowy . Przechowywane są tutaj wszystkie grafiki , które zostały wgrane do systemu , a później przetworzone przez system , aby posiadały odpowiednie rozmiary .
Bardzo ważne jest , jeżeli będziemy umieszczali naszą aplikację w systemie Unix / Linux , nadanie odpowiednich praw dla katalogów . Prawa te musimy ustawić na wartość 0777 , czyli umożliwiającą zapis / odczyt / wykonanie dla każdego użytkownika . Kiedy będziemy wgrywać oprogramowanie na serwer , należy o tym fakcie pamiętać . W innym przypadku większość funkcji powiązanej z grafiką nie będzie działać , a system będzie zgłaszał błędy z informacją , iż nie może zapisać pliku do odpowiedniego katalogu z powodu braku uprawnień .
Zmiany praw możemy dokonać za pomocą specjalnego narzędzia w programie służącym do wysyłania plików poprzez protokół FTP bądź wpisując w jego linię poleceń odpowiednie komendy .
Kod PHP: chmod 777 upload_tmp chmod 777 upload chmod 777 upload/*
|
|
|
Obrazy powiązane z aplikacją |
Napisane przez: Admin - Wczoraj, 07:22 PM - Forum: Obrazy powiązane z aplikacją
- Brak odpowiedzi
|
 |
Specjalny katalog fb_images zawiera domyślne obrazy , takie jak obrazki profilu użytkownika (małe / średnie / duże ) przeznaczone do wyświetlania przy ich profilu , domyślny obraz dla galerii zdjęć , logo oraz grafiki umieszczone na przyciskach w menu po lewej stronie , które będziemy widzieć po zalogowaniu na swoje konto .
|
|
|
Przekształcanie obrazów |
Napisane przez: Admin - Wczoraj, 07:21 PM - Forum: Przekształcanie obrazów
- Brak odpowiedzi
|
 |
Opublikowana na zasadach GNU General Public License biblioteka SimpleImage dostosowana już do wymagań PHP 5 . Pozwala na tworzenie miniatur z obrazów przy użyciu zaledwie jednej metody po załadowaniu klasy do pliku .
|
|
|
Jquery i Prototype |
Napisane przez: Admin - Wczoraj, 07:19 PM - Forum: Jquery i Prototype
- Brak odpowiedzi
|
 |
Pozwalają na stworzenie aplikacji wykorzystującej technologię AJAX w bardzo prosty sposób . Wystarczy bowiem jedynie przeczytać dokumentacje obu bibliotek , a następnie stosować ich funkcje w określony sposób.
|
|
|
Pliki języków |
Napisane przez: Admin - Wczoraj, 07:10 PM - Forum: Pliki języków
- Brak odpowiedzi
|
 |
Kod PHP: $Lang['null_fields'] = 'Treść z formularza nie została dodana - pozostały <strong>puste</strong> pola'; $Lang['error404_title'] = 'Błąd 404 - brak żądanej strony'; $Lang['error404_body'] = 'Błąd 404. Nie można wyświetlić strony, której żądasz ponieważ podana strona nie istnieje.'; $Lang['null_fields'] = 'Treść z formularza nie została dodana - pozostały <strong>puste</strong> pola'; $Lang['bad_data'] = 'Podane informacje są niepoprawne'; $Lang['req_fields'] = 'Pola oznaczone * są wymagane';
Postanowiono nie zamieszczać reszty wersji językowej , ponieważ nie ma w tym pliku niczego ciekawego , czego nie można byłoby przejrzeć samemu . Należy jeszcze utworzyć plik z tłumaczeniem na wersję angielską i strona będzie funkcjonować w dwóch językach , które stworzyliśmy .
|
|
|
|