ACC SHELL
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
//trida manipulujici s aktualitama
class aktualne{
private $table='aktualne';//nazev tabulky s informacemi pro aktualitach
//begin privatni vlastnosti tridy
private $id=NULL;//pole id vybranych aktualit
private $title=NULL;//pole nadpisu vybranych aktualit
private $text=NULL;//pole textu vybranych aktualit
private $categoryId=NULL;//pole id kategorii vybranych aktualit
private $visible=NULL;//pole indikujici viditelnost jednotlivych aktualit
private $pos=NULL;//pole pozic vybranych aktualit
private $headingId=NULL;//id hlavicky stranky aktualne
private $headingText=NULL;//text hlavicky stranky aktualne
private $headingVisible=NULL;//viditelnost hlavicky stranky aktualne
private $msg=NULL;//potvrzeni uspesnosti akce s aktualitama
//end privatni vlastnosti tridy
//begin pristup k privatnim vlastnostem
public function getId($i){
return $this->id[$i];
}
public function getTitle($i){
return $this->title[$i];
}
public function getText($i){
return $this->text[$i];
}
public function getCategoryId($i){
return $this->categoryId[$i];
}
public function getVisible($i){
return $this->visible[$i];
}
public function getMsg(){
return $this->msg;
}
public function getPos($i){
return $this->pos[$i];
}
public function getHeadingID(){
return $this->headingId;
}
public function getHeadingText(){
return $this->headingText;
}
public function getHeadingVisible(){
return $this->headingVisible;
}
//end pristup k privatnim vlastnostem
//odstrani vlastnosti aktualit
public function unsetAktuality(){
unset ($this->id);
unset ($this->title);
unset ($this->text);
unset ($this->categoryId);
unset ($this->visible);
unset ($this->pos);
}
//zobrazi vsechny aktuality ve strukture jejich kategorii
public function show(){
$category = new aktualneCategory();
$category->selectCategory();//nalezne vsechny kategorie aktualit
//naplni prislusne vlastnosi instance $category informacemi o nalezenych kategoriich
echo '<div>'."\n";
//pro kazdou kategorii vytvori radek s nazvem a editacnimi tlacitky
for ($i=0;$i<$category->getNumCategory();$i++){
//nazev kategorie a odkaz na zmenu nazvu teto kategorie
echo '<div class="menu_list_page">'.
'<span class="m_name">'.
'<a href="default.php?page=aktualne/editCategory&id_c='.$category->getId($i).'">'.stripslashes($category->getName($i)).'</a>'.
'</span>';
echo //tlacitko pro posun kategorie o jednu pozici nahoru
'<span>'.
'<a href="default.php?page=aktualne/aktualne&b=up&id_c='.$category->getId($i).'">'.
'<img src="img/up.gif" alt="up" border="0" />'.
'</a>'.
'</span>'.
//tlacitko pro posun kategorie o jednu pozici dolu
'<span>'.
'<a href="default.php?page=aktualne/aktualne&b=down&id_c='.$category->getId($i).'">'.
'<img src="img/down.gif" alt="down" border="0"/>'.
'</a>'.
'</span>'.
//obrazek s odkazem na zmenu viditelnosti kategorie
'<span>'.
'<a class="view" href="default.php?page=aktualne/aktualne&b=view&id_c='.$category->getId($i).'">'.
($category->getVisible($i) == 1 ? //volba obrzku(skryt x zobrazit)
'<img src="img/show.png" alt="skryt" border="0" title="Skryt" />'
:
'<img src="img/hidden.png" title="Zobrazit" alt="zobrazit" border="0" />'
).
'</a>'.
'</span>'.
//tlacitko pro smazani kategorie
'<span>'.
'<a class="delete" href="default.php?page=aktualne/aktualne&b=delete&id_c='.$category->getId($i).'">'.
'<img src="img/delete.jpg" alt="Smazat" border="0" title="Smazat" />'.
'</a>'.
'</span>';
echo '<div class="clear"></div>'.
'</div>'."\n";
$this->selectAktuality($category->getId($i));//nalezne vsechny aktuality aktualni kategorie a
//naplni jimi prislusne vlastnosi tridy
//pro kazdou aktualitu vytvori radek s nazvem a editacnimi tlacitky
for($j=0;$j<count($this->id);$j++){
//nazev aktuality a odkaz na jeho editaci
echo '<div class="submenu_list_page">'.
'<span class="s_m_name">'.
'<a href="default.php?page=aktualne/edit&id_a='.$this->id[$j].'">'.stripslashes($this->title[$j]).'</a>'.
'</span>'.
//tlacitko pro posun aktuality o jednu pozici nahoru
'<span>'.
'<a href="default.php?page=aktualne/aktualne&b=up&id_a='.$this->id[$j].'">'.
'<img src="img/up.gif" alt="up" border="0" />'.
'</a>'.
'</span>'.
//tlacitko pro posun aktuality o jednu pozici dolu
'<span>'.
'<a href="default.php?page=aktualne/aktualne&b=down&id_a='.$this->id[$j].'">'.
'<img src="img/down.gif" alt="down" border="0"/>'.
'</a>'.
'</span>'.
//obrazek s odkazem na zmenu viditelnosti aktuality
'<span>'.
'<a class="view" href="default.php?page=aktualne/aktualne&b=view&id_a='.$this->id[$j].'">'.
($this->visible[$j] == 1 ? //volba obrzku(skryt x zobrazit)
'<img src="img/show.png" alt="skryt" border="0" title="Skryt" />'
:
'<img src="img/hidden.png" title="Zobrazit" alt="zobrazit" border="0" />'
).
'</a>'.
'</span>'.
//tlacitko pro smazani aktuality
'<span>'.
'<a class="delete" href="default.php?page=aktualne/aktualne&b=delete&id_a='.$this->id[$j].'">'.
'<img src="img/delete.jpg" alt="Smazat" border="0" title="Smazat" />'.
'</a>'.
'</span>';
echo '<div class="clear"></div>'.
'</div>'."\n";
}
}
echo '</div>'."\n";
}
//nalezne vsechny aktuality patrici kategorii s danym id a
//naplni prislusne vlastnosi tridy
public function selectAktuality($id_category){
$this->unsetAktuality();//odstrani privatni vlastnosti
$query = "SELECT * FROM ".DBPREFIX.$this->table." WHERE category_id = '".$id_category."' ORDER BY pos";
$sent = mysql_query($query);
$this->setAktuality($sent);//naplni privatni vlastnosti tridy
}
//presune aktualitu o danem id o jednu pozici vys nebo niz podle parametru $par
function upDown($id,$par){
//nalezne aktualni pozici a kategorii pro aktualitu o danem id
$query = "SELECT pos, category_id FROM ".DBPREFIX.$this->table." WHERE id = '$id'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
$actual_pos = $data->pos;
if($par == 'up'){//presun vys
$new_pos = $actual_pos - 1;
}
else{//presun niz
$new_pos = $actual_pos + 1;
}
//udava pocet kategorii na nove pozici
$query2 = "SELECT COUNT(*) AS pocet FROM ".DBPREFIX.$this->table." WHERE pos = '$new_pos' AND category_id = '$data->category_id'";
$sent2 = mysql_query($query2);
$data2 = mysql_fetch_object($sent2);
if($data2->pocet != 0){//existuje na nove pozici nejaka aktualita
//prehozeni pozic v databazi
$query3 = "UPDATE ".DBPREFIX.$this->table." SET pos = '$actual_pos' WHERE pos = '$new_pos' AND category_id = '$data->category_id'";
mysql_query($query3);
$query4 = "UPDATE ".DBPREFIX.$this->table." SET pos = '$new_pos' WHERE id = '$id'";
mysql_query($query4);
}
}
//naplni privatni vlastnosti tridy
public function setAktuality($sent){
$this->unsetAktuality();
while($data = mysql_fetch_object($sent)){
$this->id[] = $data->id;
$this->title[] = stripslashes($data->title);
$this->text[] = stripslashes($data->text);
$this->pos[] = $data->pos;
$this->categoryId[]=$data->category_id;
$this->visible[]=$data->visible;
}
}
//prida novou aktualitu do databaze
//naplni privatni vlastnost msg o uspesnosti akce
//vraci true nebo false podle, toho zda byla aktualita uspesne pridana do databaze
public function add($title, $text, $id_category, $visible){
if(!empty($title)){//je-li vyplneny nadpis aktuality
$title = addslashes($title);
$text = addslashes($text);
if(!$visible=='TRUE'){
$visible='FALSE';
}
$pos = $this->getMaxPos($id_category)+1;//naplni promenou pos nejvyssi pozici aktuality v dane kategorii zvecenou o 1
//vklada aktualitu do databaze
$query = "INSERT INTO ".DBPREFIX.$this->table." (title, text, pos, category_id, visible) VALUES('$title', '$text', '$pos', '$id_category',$visible)";
if(mysql_query($query)){//byla-li aktualita uspesne vlozena
$this->msg = AKTUALNE_ADDED;
return TRUE;
}
else{//nebyla-li aktualita uspesne vlozena
$this->msg = SQL_ERROR.mysql_error();
return FALSE;
}
}
else{//neni vyplnen titulek aktuality
$this->msg = FORM_AKTUALNE_EMPTY;
return FALSE;
}
}
//vymaze aktuality nactene v privatnich vlastnostech
//naplni privatni vlastnost msg o uspesnosti akce
public function deleteAll(){
for($i=0;$i<count($this->id);$i++){
//vymaze danou aktualitu
$query = "DELETE FROM ".DBPREFIX.$this->table." WHERE id = '".$this->id[$i]."'";
if(mysql_query($query)){//vymazani probehlo uspesne
$this->msg = AKTUALNE_DELETED;
}
else{//vymazani neprobehlo
$this->msg = SQL_ERROR.mysql_error();
return;
}
}
}
//vymaze aktualitu s danym id
//naplni privatni vlastnost msg o uspesnosti akce
public function delete($id){
$this->selectAktualitu($id);//nalezne info o aktualite s danym id a ulozi je do vlastnosti tridy
//vymaze danou aktualitu
$query = "DELETE FROM ".DBPREFIX.$this->table." WHERE id = '$id'";
if(mysql_query($query)){//vymazani probehlo uspesne
$this->msg = AKTUALNE_DELETED;
//posune vsechny aktuality ze stejne kategorie a vyssi pozici o jednu pozici niz
$query2 = "UPDATE ".DBPREFIX.$this->table." SET pos = pos - 1 WHERE pos > '".$this->pos[0]."' AND category_id = '".$this->categoryId[0]."'";
mysql_query($query2);
}
else{//vymazani neprobehlo
$this->msg = SQL_ERROR.mysql_error();
}
}
//naplni vlastnosti tridy informacemi o dane aktualite s danym id
public function selectAktualitu($id){
$query = "SELECT * FROM ".DBPREFIX.$this->table." WHERE id = '$id'";
$sent = mysql_query($query);
$this->setAktuality($sent);
}
//zmeni viditelnost pro aktualitu o danem id
function view_change($id){
//zjisti zda dana aktualita je viditelna
$query = "SELECT visible FROM ".DBPREFIX.$this->table." WHERE id = '$id'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
//begin zmena viditelnosti
if($data->visible == 1){
$change = 0;
}
else{
$change = 1;
}
$query = "UPDATE ".DBPREFIX.$this->table." SET visible = '$change' WHERE id = '$id'";
mysql_query($query);
//end zmena viditelnosti
}
//edituje vybranou aktualitu o id=$id v databazi,
//vraci true(false)-byla aktualita zmenena?
//naplni privatni vlastnost msg o uspesnosti akce
public function edit($id, $title,$text,$idCategory){
$oldAktualne = new aktualne();
$oldAktualne->selectAktualitu($id);//naplneni instance starymi informacemi o aktualite
if(!empty($title)){//je-li nazev vyplnen
$title = addslashes($title);
$text =addslashes($text);
if ($idCategory!=$oldAktualne->getCategoryId(0)){//je-li pozadavek na zmenu kategorie
$newpos = $this->getMaxPos($idCategory)+1;//naplni promenou newpos nejvyssi pozici aktualit v dane kategorii zvecenou o 1
//posune vsechny aktuality ze stejne kategorie a vyssi pozici o jednu pozici niz
$query2 = "UPDATE ".DBPREFIX.$this->table." SET pos = pos - 1 WHERE pos > '".$oldAktualne->getPos(0)."' AND category_id = '".$oldAktualne->getCategoryId(0)."'";
mysql_query($query2);
}
else {
$newpos=$oldAktualne->getPos(0);
}
$query = "UPDATE ".DBPREFIX.$this->table." SET title = '$title', text = '$text', category_id='$idCategory', pos='$newpos' WHERE id = '$id'";
if(mysql_query($query)){//editace probehla uspesne
$this->msg = AKTUALNE_EDITED;
}
else{//chyba nepodarilo se editovat
$this->msg = SQL_ERROR.mysql_error();
}
}
else{//neni-li nazev vyplnen
$this->msg = FORM_AKTUALNE_EMPTY;
}
}
//edituje hlavicku stranky aktualne se zadanym id
//vraci true(false)-byla hlavicka zmenena?
//naplni privatni vlastnost msg o uspesnosti akce
public function editHeading($id_h, $text,$visible){
$text = addslashes($text);
if(!$visible=='TRUE'){
$visible='FALSE';
}
$query = "UPDATE ".DBPREFIX.$this->table."_heading SET text = '$text', visible=$visible WHERE id = '$id_h'";
if(mysql_query($query)){//editace probehla uspesne
$this->msg = HEADING_EDITED;
return TRUE;
}
//chyba nepodarilo se editovat
$this->msg = SQL_ERROR.mysql_error();
return FALSE;
}
//naplni privatni vlastnosti tridy prislusnou hlavickou o zadanem id
public function selectHeading($id_h){
$query = "SELECT text, visible FROM ".DBPREFIX.$this->table."_heading WHERE id = '$id_h'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
$this->headingId = $id_h;
$this->headingText = stripslashes($data->text);
$this->headingVisible = $data->visible;
}
//vraci maximalni hodnotu pos aktuality v dane kategorii $id_category
public function getMaxPos($id_category){
$query = "SELECT MAX(pos) AS max_pos FROM ".DBPREFIX.$this->table." WHERE category_id = '$id_category'";
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
return $data->max_pos;
}
}
?>
ACC SHELL 2018