05-12-2025, 04:35 AM
Kod PHP:
<?php
Tworzymy klasę rozszerzającą dla klasy głównej.
Kod PHP:
class AppClass extends Core
{
Metoda , która zostanie uruchomiona jako pierwsza po zainicjalizowaniu obiektu.
Kod PHP:
public function AppStart()
{
global $Lang;
Sprawdzamy czy administrator jest zalogowany do systemu.
Kod PHP:
if($this->AppSessionGetValue('admin_id') != "")
{
Drukujemy nagłówek.
Kod PHP:
$this->AppBody .= '<h1>'.$Lang['ap_a1_adv'].'</h1>';
$this->AppBody .= '<div class="heading_row"></div>';
Ustalamy tytuł strony.
Kod PHP:
$this->AppTitle = $Lang['ap_a1_adv'];
Używamy metody przeznaczonej do wyświetlania wszystkich opcji reklamy na naszej stronie .
Kod PHP:
$this->ShowAdvertisement();
}
else
{
Kiedy użytkownik nie jest administratorem , wyświetlamy informację , że aby uzyskać dostęp , trzeba się najpierw zalogować .
Kod PHP:
$this->AppBody .= '<h1>'.$Lang['ap_a1_login_to_panel'].'</h1>';
$this->AppBody .= '<div class="heading_row"></div>';
$this->AppTitle = $Lang['ap_a1_login_to_panel'];
Odwołujemy się do metody z formularzem do logowania .
Kod PHP:
$this->LoginMeForm();
}
}
Deklarujemy zarządzanie reklamami .
Kod PHP:
protected function ShowAdvertisement()
{
global $Lang;
W przypadku wywołania akcji usunięcia danej reklamy definiujemy jej skasowanie za pomocą ciągu SQL .
Kod PHP:
if($_GET['delete'] == 'yes')
{
$SqlConfig = 'DELETE FROM '.$this->DBPrefix.'adv WHERE adv_id = "'.$this->AppDBSecure($_GET['adv_id']).'"';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
Informujemy użytkownika , że dana reklama została usunięta .
Kod PHP:
$this->AppBody .= $this->AppPrintSuccess($Lang['ap_a1_was_deleted_success']);
}
if($_POST['add'] == 'yes')
{
Kiedy dodajemy reklamę , należy sprawdzić , czy wszystkie pola zostały wypełnione , i w przypadku pozostawienia któregokolwiek pustego pola , wyświetlamy użytkownikowi odpowiednią informację .
Kod PHP:
if($_POST['adv_name'] == "" OR $_POST['adv_content'] == "")
{
$this->AppBody .= $this->AppPrintWarning($Lang['l1_a18_null_fields']);
}
else
{
Tworzymy zapytanie dodające reklamę do bazy danych .
Kod PHP:
$SqlConfig = 'INSERT INTO '.$this->DBPrefix.'adv(adv_name,adv_content,adv_active) VALUES ("'.$this->AppDBSecure($_POST['adv_name']).'","'.$this->AppDBSecureXML($_POST['adv_content']).'","'.$this->AppDBSecure($_POST['adv_active']).'")';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
Wyświetlamy komunikat o poprawnym dodaniu nowej reklamy .
Kod PHP:
$this->AppBody .= $this->AppPrintSuccess($Lang['ap_a1_add_was_added']);
Czyścimy pola z formularza .
Kod PHP:
$_POST['adv_name'] = '';
$_POST['adv_content'] = '';
$_POST['adv_active'] = '';
}
}
if($_POST['edit_ready'] == 'yes')
{
Kiedy reklama została zmieniona , należy sprawdzić , czy wszystkie pola zostały wypełnione .
Kod PHP:
if($_POST['adv_name'] == "" OR $_POST['adv_content'] == "")
{
$this->AppBody .= $this->AppPrintWarning($Lang['l1_a18_null_fields']);
}
else
{
Tworzymy zapytanie do bazy danych aktualizujące reklamę .
Kod PHP:
$SqlConfig = 'UPDATE '.$this->DBPrefix.'adv SET adv_name = "'.$this->AppDBSecure($_POST['adv_name']).'", adv_content = "'.$this->AppDBSecureXML($_POST['adv_content']).'", adv_active = "'.$this->AppDBSecure($_POST['adv_active']).'" WHERE adv_id = "'.$this->AppDBSecure($_POST['adv_id']).'"';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
Wyświetlamy użytkownikowi informację o tym , że reklama została zaakceptowana .
Kod PHP:
$this->AppBody .= $this->AppPrintSuccess($Lang['ap_a1_add_was_updated_ready']);
Czyścimy pola z formularza .
Kod PHP:
$_POST['adv_name'] = '';
$_POST['adv_content'] = '';
$_POST['adv_active'] = '';
}
}
if($_GET['edit'] != 'yes')
{
Kiedy wybierzemy opcję dodania nowej reklamy , odwołujemy się do specjalnej metody .
Kod PHP:
$this->ShowAddForm();
}
if($_GET['edit'] == 'yes')
{
W przypadku edycji tworzymy odwołanie do metody .
Kod PHP:
$this->ShowEditForm();
}
Liczymy liczbę reklam w systemie w celu podziału na strony .
Kod PHP:
$SqlConfig = 'SELECT count(adv_id) FROM '.$this->DBPrefix.'adv';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
Przetwarzamy liczbę reklam , dzieląc ją przez trzydzieści , które znajdują się na jednej stronie w systemie .
Kod PHP:
$HowManyPagesTemp = $Result[0]['count(adv_id)'] / 30;
$HowManyPagesTemp = explode('.',$HowManyPagesTemp);
$HowManyPages = $HowManyPagesTemp[0];
if($HowManyPagesTemp[1] > 0)
{
$HowManyPages++;
}
Pobieramy z adresu URL stronę , na której obecnie się znajdujemy .
Kod PHP:
$PageSelect = $_GET['page'];
Tworzymy liczbę , od której należy zacząć wybieranie reklam .
Kod PHP:
if($_GET['page'] == "")
{
$StartFrom = 0;
}
else
{
if(empty($_GET['page']) OR $_GET['page'] == 1)
{
$StartFrom = 0;
}
else
{
$_GET['page'] = $_GET['page'] - 1;
$StartFrom = 30 * $_GET['page'];
}
}
Identyfikator strony , na której się znajdujemy .
Kod PHP:
if($PageSelect == "" OR $PageSelect == 1)
{
$CurrentPage = 1;
}
else
{
$CurrentPage = $PageSelect;
}
Teraz należy stworzyć lącza ze stronami , na których są zawarte reklamy , tak aby można było na odpowiednią kliknąć i zobaczyć jej trść .
Kod PHP:
if($HowManyPages > 1)
{
$this->AppBody .= '<div style="padding-left: 5px; padding-right: 5px; padding-top: 5px; padding-bottom: 5px; text-align: right;">';
$this->AppBody .= $Lang['l2_a3_page'];
for($i=1;$i<($HowManyPages+1);$i++)
{
if($CurrentPage == $i)
{
$this->AppBody .= $i;
}
else
{
$this->AppBody .= '<a href="'.$this->AppUrl.'admin.php?app=admin&page='.$i.'">'.$i.'</a>';
}
if($i<$HowManyPages)
{
$this->AppBody .= ' , ';
}
}
$this->AppBody .= '</div';
}
Zapytanie pobierające reklamy z uwzględnieniem strony , na której obecnie jesteśmy .
Kod PHP:
$SqlConfig = 'SELECT adv_id,adv_name,adv_active,adv_view FROM '.$this->DBPrefix.'adv LIMIT '.$this->AppDBSecure($StartFrom).',30';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
Drukujemy tabelę , w której znajdą się reklamy wraz z odpowiednimi dla nich przyciskami powodującymi wywołanie odpowiedniej akcji .
Kod PHP:
$this->AppBody .= '<table cellpadding="0" cellspacing="0" border="0" width="100%">';
$this->AppBody .= '<tr>';
$this->AppBody .= '<td class="fb_header_info">'.$Lang['ap_a1_id'].'</td>';
$this->AppBody .= '<td class="fb_header_info">'.$Lang['ap_a1_name'].'</td>';
$this->AppBody .= '<td class="fb_header_info">'.$Lang['ap_a1_active'].'</td>';
$this->AppBody .= '<td class="fb_header_info">'.$Lang['ap_a2_many_show'].'</td>';
$this->AppBody .= '<td class="fb_header_info">'.$Lang['ap_a1_edit'].'</td>';
$this->AppBody .= '<td class="fb_header_info">'.$Lang['ap_a1_delete'].'</td>';
$this->AppBody .= '</tr>';
for($f=0;$f<$Rows;$f++)
{
Klasy arkuszy CSS , służące nadaniu odpowiedniego koloru dla każdego z rzędów .
Kod PHP:
if($RowColor == 1)
{
$TdClass = 'fb_row_1';
$RowColor = 0;
}
else
{
$TdClass = 'fb_row_2';
$RowColor = 1;
}
Wyświetlamy zawartość reklam oraz dodajemy do nich dwa przyciski . Jeden służy do edycji reklamy , natomiast drugi do jej usunięcia .
Kod PHP:
$this->AppBody .= '<tr>';
$this->AppBody .= '<td class="'.$TdClass.'">'.$this->AppDBUnsecure($Result[$f]['adv_id']).'</td>';
$this->AppBody .= '<td class="'.$TdClass.'">'.$this->AppDBUnsecure($Result[$f]['adv_name']).'</td>';
$this->AppBody .= '<td class="'.$TdClass.'">';
if($this->AppDBUnsecure($Result[$f]['adv_active']) == 'y')
{
$this->AppBody .= $Lang['ap_a1_yes'];
}
else
{
$this->AppBody .= $Lang['ap_a1_no'];
}
$this->AppBody .= '</td>';
$this->AppBody .= '<td class="'.$TdClass.'">'.$this->AppDBUnsecure($Result[$f]['adv_view']).'</td>';
$this->AppBody .= '<td class="'.$TdClass.'"><a href="'.$this->AppUrl.'admin.php?app=admin&edit=yes&adv_id='.$Result[$f]['adv_id'].'">'.$Lang['ap_a1_edit'].'</a></td>';
$this->AppBody .= '<td class="'.$TdClass.'"><a href="JavaScript:DeleteInfo(\''.$this->AppUrl.'admin.php?app=admin&delete=yes&adv_id='.$Result[$f]['adv_id'].'\',\''.$Lang['l2_a1_accept_deleting'].'\');">'.$Lang['ap_a1_delete'].'</a></td>';
$this->AppBody .= '</tr>';
}
$this->AppBody .= '</table>';
}
protected function ShowEditForm()
{
global $Lang;
Metoda pozwalająca na edycję reklamy . Wybiera ona wskazaną reklamę poprzez pobranie jej numeru identyfikacyjnego z adresu URL .
Kod PHP:
$SqlConfig = 'SELECT * FROM '.$this->DBPrefix.'adv WHERE adv_id = "'.$this->AppDBSecure($_GET['adv_id']).'"';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
Tworzymy formularz wraz z polami , które odpowiadają danym z bazy .
Kod PHP:
$this->AppBody .= '<center>';
$this->AppBody .= '<form action="'.$this->AppUrl.'admin.php" method="post">';
$this->AppBody .= '<table cellpadding="0" cellspacing="0" border="0">';
$this->AppBody .= '<tr><td class="fb_header_info" colspan="2"><h2>'.$Lang['ap_a2_edit_ads'].'</h2></td></tr>';
$this->AppBody .= '<tr><td class="fb_row_2">'.$Lang['ap_a1_fname'].'</td><td class="fb_row_2"><input type="text" name="adv_name" value="'.$this->AppDBUnsecure($Result[0]['adv_name']).'" style="width: 450px;" /></td></tr><tr><td class="fb_row_1">'.$Lang['ap_a1_fcontent'].'</td><td class="fb_row_1"><textarea name="adv_content" style="width: 450px; height: 300px;">'.$this->AppDBUnsecure($Result[0]['adv_content']).'</textarea></td></tr><tr><td class="fb_row_1">'.$Lang['ap_a1_factive'].'</td><td class="fb_row_1"><select name="adv_active" style="width: 450px;">';
if($this->AppDBUnsecure($Result[0]['adv_active']) == 'y')
{
$Field1 = 'selected="selected"';
}
$this->AppBody .= '<option value="y" '.$Field1.'>'.$Lang['ap_a1_fyes'].'</option>';
if($this->AppDBUnsecure($Result[0]['adv_active']) == 'n')
{
$Field2 = 'selected="selected"';
}
$this->AppBody .= '<option value="y" '.$Field2.'>'.$Lang['ap_a1_fno'].'</option>';
$this->AppBody .= '</select></td></tr>';
$this->AppBody .= '<tr><td class="fb_row_1"></td><td class="fb_row_1" style="text-align: right;"><input type="hidden" name="app" value="admin" /><input type="hidden" name="edit_ready" value="yes" /><input type="hidden" name="adv_id" value="'.$Result[0]['adv_id'].'" /><input type="submit" value="'.$Lang['ap_a1_update_submit_button'].'" class="button_goto" /></td></tr>';
$this->AppBody .= '</table>';
$this->AppBody .= '</form>';
$this->AppBody .= '</center>';
}
protected function ShowAddForm()
{
global $Lang;
Metoda przeznaczona do dodawania nowej reklamy zawiera formularz opisujący wszystkie opcje , które można danej reklamie przypisać .
Kod PHP:
$this->AppBody .= '<center>';
$this->AppBody .= '<form action="'.$this->AppUrl.'admin.php" method="post">';
$this->AppBody .= '<table cellpadding="0" cellspacing="0" border="0">';
$this->AppBody .= '<tr><td class="fb_header_info" colspan="2"><h2>'.$Lang['ap_a2_add_new_adv'].'</h2></td></tr>';
$this->AppBody .= '<tr><td class="fb_row_2">'.$Lang['ap_a1_fname'].'</td><td class="fb_row_2"><input type="text" name="adv_name" value="'.$_POST['adv_name'].'" style="width: 450px;" /></td></tr><tr><td class="fb_row_1">'.$Lang['ap_a1_fcontent'].'</td><td class="fb_row_1"><textarea name="adv_content" style="width: 450px; height: 300px;">'.$_POST['adv_content'].'</textarea></td></tr><tr><td class="fb_row_1">'.$Lang['ap_a1_factive'].'</td><td class="fb_row_1"><select name="adv_active" style="width: 450px;">';
if($_POST['adv_active'] == 'y')
{
$Field1 = 'selected="selected"';
}
$this->AppBody .= '<option value="y" '.$Field1.'>'.$Lang['ap_a1_fyes'].'</option>';
if($_POST['adv_active'] == 'n')
{
$Field2 = 'selected="selected"';
}
$this->AppBody .= '<option value="y" '.$Field2.'>'.$Lang['ap_a1_fno'].'</option>';
$this->AppBody .= '</select></td></tr>';
$this->AppBody .= '<tr><td class="fb_row_1"></td><td class="fb_row_1" style="text-align: right;"><input type="hidden" name="app" value="admin" /><input type="hidden" name="add" value="yes" /><input type="submit" value="'.$Lang['ap_a1_add_submit_button'].'" class="button_goto" /></td></tr>';
$this->AppBody .= '</table>';
$this->AppBody .= '</form>';
$this->AppBody .= '</center>';
}
protected function LoginMeForm()
{
Metoda do logowania zawiera pola , które należy wypełnić w celu wejścia do panelu administracyjnego użytkownikowi posiadającego odpowiednie dane .
Kod PHP:
$this->AppBody .= '<form action="'.$this->AppUrl.'admin.php" method="post">';
$this->AppBody .= '<table>';
$this->AppBody .= '<tr>';
$this->AppBody .= '<td style="text-align: left;">';
$this->AppBody .= $Lang['l1_login_email'];
$this->AppBody .= '</td>';
$this->AppBody .= '<td style="text-align: left;">';
$this->AppBody .= $Lang['l1_login_pswd'];
$this->AppBody .= '</td>';
$this->AppBody .= '<td>';
$this->AppBody .= '</td>';
$this->AppBody .= '</tr>';
$this->AppBody .= '<tr>';
$this->AppBody .= '<td style="text-align: left;">';
$this->AppBody .= '<input type="text" name="user_email" style="width: 170px;" />';
$this->AppBody .= '</td>';
$this->AppBody .= '<td style="text-align: left;">';
$this->AppBody .= '<input type="password" name="user_pswd" style="width: 170px;" />';
$this->AppBody .= '</td>';
$this->AppBody .= '<td style="text-align: left;">';
$this->AppBody .= '<input type="hidden" name="fb_action_login" value="login" />';
$this->AppBody .= '<input type="submit" value="'.$Lang['l1_login_button'].'" class="submit_button" />';
$this->AppBody .= '</td>';
$this->AppBody .= '</tr>';
$this->AppBody .= '</table>';
$this->AppBody .= '</form>';
}
}
?>