05-12-2025, 04:21 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 użytkownik jest zalogowany na konto administratora.
Kod PHP:
if($this->AppSessionGetValue('admin_id') != "")
{
Tworzymy nagłówek strony .
Kod PHP:
$this->AppBody .= '<h1>'.$Lang['ap_a3_ban_comments'].'</h1>';
$this->AppBody .= '<div class="heading_row"></div>';
Wpisujemy do paska tytułu odpowiednią nazwę strony.
Kod PHP:
$this->AppTitle = $Lang['ap_a3_ban_comments'];
if($_GET['action'] == 'accept')
{
Wybranie akcji akceptacji powoduje , że dane zgłoszenie przestaje pojawiać się w panelu administratora poprzez ustawienie wartości w odpowiednim polu .
Kod PHP:
$SqlConfig = 'UPDATE '.$this->DBPrefix.'warning SET warn_active = "y" WHERE warn_id = "'.$this->AppDBSecure($_GET['warn_id']).'"';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
Informujemy użytkownika o dokonanej aktualizacji zgłoszenia .
Kod PHP:
$this->AppBody .= $this->AppPrintSuccess($Lang['ap_a3_comm_insert_deleted']);
}
if($_GET['action'] == 'accept_delete')
{
Kiedy zostanie wybrana akcja usunięcia danego komentarza , wówczas najpierw należy usunąć zgłoszenie .
Kod PHP:
$SqlConfig = 'UPDATE '.$this->DBPrefix.'warning SET warn_active = "y" WHERE warn_id = "'.$this->AppDBSecure($_GET['warn_id']).'"';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
Następnie usuwamy treść poprzez ustawienie odpowiedniej wartości w jednym z pól tabeli , w której znajdują się komentarze .
Kod PHP:
$SqlConfig = 'UPDATE '.$this->DBPrefix.'comment SET comm_deleted = "y" WHERE comm_id = "'.$this->AppDBSecure($_GET['warn_content_id']).'"';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
Informujemy użytkownika o tym , że komentarz został usunięty .
Kod PHP:
$this->AppBody .= $this->AppPrintSuccess($Lang['ap_a3_comm_insert_deleted_and_field']);
}
Wybieramy liczbę zgłoszeń , aby móc je podzielić na strony .
Kod PHP:
$SqlConfig = 'SELECT count(warn_id) FROM '.$this->DBPrefix.'warning WHERE warn_what = "comment" AND warn_active = ""';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
Dzielimy zgłoszenia na poszczególne części . Na każdej ze stron pojawi się sto pięćdziesiąt odrębnych wpisów .
Kod PHP:
$HowManyPagesTemp = $Result[0]['count(warn_id)'] / 150;
$HowManyPagesTemp = explode('.',$HowManyPagesTemp);
$HowManyPages = $HowManyPagesTemp[0];
if($HowManyPagesTemp[1] > 0)
{
$HowManyPages++;
}
$PageSelect = $_GET['page'];
Sprawdzamy , na której stronie znajdujemy się obecnie , i tworzymy zmienną , od której rozpocznie się pobieranie komentarzy .
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 = 150 * $_GET['page'];
}
}
if($PageSelect == "" OR $PageSelect == 1)
{
$CurrentPage = 1;
}
else
{
$CurrentPage = $PageSelect;
}
Tworzymy miejsce , gdzie będą znajdowały się łącza umożliwiające przejście do odpowiedniej strony .
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=application_comments&page='.$i.'">'.$i.'</a>';
}
if($i<$HowManyPages)
{
$this->AppBody .= ' , ';
}
}
$this->AppBody .= '</div';
}
Teraz możemy już wybrać wszystkie powiadomienia odnośnie komentarzy z uwzględnieniem strony , na której obecnie się znajdujemy .
Kod PHP:
$SqlConfig = 'SELECT * FROM '.$this->DBPrefix.'warning WHERE warn_what = "comment" AND warn_active = "" ORDER BY warn_id ASC LIMIT '.$this->AppDBSecure($StartFrom).',150';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$Result = $this->AppDBResult();
$Rows = $this->AppDBHowMany();
Tworzymy tabelę ze zgłoszonymi komentarzami oraz odpowiednimi akcjami odnośnie ich treści .
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_a3_comm_id'].'</td>';
$this->AppBody .= '<td class="fb_header_info">'.$Lang['ap_a3_comm_user'].'</td>';
$this->AppBody .= '<td class="fb_header_info">'.$Lang['ap_a3_comm_content'].'</td>';
$this->AppBody .= '<td class="fb_header_info">'.$Lang['ap_a3_comm_date'].'</td>';
$this->AppBody .= '<td class="fb_header_info">'.$Lang['ap_a3_comm_upd'].'</td>';
$this->AppBody .= '<td class="fb_header_info">'.$Lang['ap_a3_comm_upd_adm_del'].'</td>';
$this->AppBody .= '</tr>';
for($f=0;$f<$Rows;$f++)
{
Wybieramy odpowiednią klasę z arkusza CSS , aby umożliwić nadanie innych kolorów poszczególnym rzędom danych .
Kod PHP:
if($RowColor == 1)
{
$TdClass = 'fb_row_1';
$RowColor = 0;
}
else
{
$TdClass = 'fb_row_2';
$RowColor = 1;
}
$this->AppBody .= '<tr>';
Należy wybrać użytkownika , który wybrał dany komentarz do zgłoszenia .
Kod PHP:
$SqlConfig = 'SELECT user_id,user_lang,user_firstname,user_lastname,user_is_firm FROM '.$this->DBPrefix.'user WHERE user_id = "'.$this->AppDBSecure($Result[$f]['warn_user_id']).'"';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$ResultUser = $this->AppDBResult();
$this->AppBody .= '<td class="'.$TdClass.'">'.$this->AppDBUnsecure($Result[$f]['warn_id']).'</td>';
Wyświetlamy dane w zależności od tego , czy użytkownik jest firmą czy też osobą prywatną .
Kod PHP:
if($ResultUser[0]['user_is_firm'] == 'y')
{
$UserField = '<a href="'.$this->AppUrl.'index.php?app=showprofile&option='.$ResultUser[0]['user_id'].'">'.$this->AppDBUnsecure($ResultUser[0]['user_lastname']).'</a>';
}
else
{
$UserField = '<a href="'.$this->AppUrl.'index.php?app=showprofile&option='.$ResultUser[0]['user_id'].'">'.$this->AppDBUnsecure($ResultUser[0]['user_firstname']).' '.$this->AppDBUnsecure($ResultUser[0]['user_lastname']).'</a>';
}
$this->AppBody .= '<td class="'.$TdClass.'">'.$UserField.'</td>';
$this->AppBody .= '<td class="'.$TdClass.'">'.$this->AppDBUnsecure($Result[$f]['warn_comment']).'</td>';
$this->AppBody .= '<td class="'.$TdClass.'">'.date('d-m-Y H:i:s', $this->AppDBUnsecure($Result[$f]['warn_time'])).'</td>';
$this->AppBody .= '<td class="'.$TdClass.'"><a href="'.$this->AppUrl.'admin.php?app=application_comments&action=accept&warn_id='.$Result[$f]['warn_id'].'">'.$Lang['ap_a3_comm_upd'].'</a></td>';
$this->AppBody .= '<td class="'.$TdClass.'"><a href="'.$this->AppUrl.'admin.php?app=application_comments&action=accept_delete&warn_id='.$Result[$f]['warn_id'].'&warn_content_id='.$Result[$f]['warn_content_id'].'">'.$Lang['ap_a3_comm_upd_adm_del'].'</a></td>';
$this->AppBody .= '</tr>';
$this->AppBody .= '<tr>';
Wybieramy komentarz , który został zgłoszony , i wyświetlamy jego zawartość .
Kod PHP:
$SqlConfig = 'SELECT * FROM '.$this->DBPrefix.'comment WHERE comm_id = "'.$this->AppDBSecure($Result[$f]['warn_content_id']).'"';
if(!$this->AppDBQuery($SqlConfig))
{
$this->AppBody .= $this->AppShowError('Query error',__FILE__,__LINE__,$SqlConfig);
}
$ResultComment = $this->AppDBResult();
$this->AppBody .= '<td class="'.$TdClass.'"></td>';
$this->AppBody .= '<td class="'.$TdClass.'" colspan="5">'.$this->AppDBUnsecure($ResultComment[0]['comm_comment']).'<br /><br /></td>';
$this->AppBody .= '</tr>';
}
$this->AppBody .= '</table>';
}
else
{
Jeżeli użytkownik nie był zalogowany , przekierowujemy go do strony głównej aplikacji .
Kod PHP:
header('location: '.$this->AppUrl.'admin.php');
}
}
}
?>