ACC SHELL
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
//trida manipulujici se skolenimi
class training{
//begin privatni vlastnosti tridy
private $id=NULL;//pole id vybranych skoleni
private $name=NULL;//pole nazvu vybranych skoleni
private $date=NULL;//pole datumu vybranych skoleni
private $place=NULL;//pole mist konani vybranych skoleni
private $time=NULL;//pole casu konani vybranych skoleni
private $categoryId=NULL;//pole id kategorii vybranych skoleni
private $visible=NULL;//pole indikujici viditelnost jednotlivych skoleni
private $msg=NULL;//potvrzeni uspesnosti akce se skolenima
//end privatni vlastnosti tridy
//begin pristup k privatnim vlastnostem
public function getId($i){
return $this->id[$i];
}
public function getName($i){
return $this->name[$i];
}
public function getDate($i){
return $this->date[$i];
}
public function getPlace($i){
return $this->place[$i];
}
public function getTime($i){
return $this->time[$i];
}
public function getCategoryId($i){
return $this->categoryId[$i];
}
public function getVisible($i){
return $this->visible[$i];
}
public function getMsg(){
return $this->msg;
}
//end pristup k privatnim vlastnostem
//odstrani vlastnosti tiskopisu
public function unsetTraining(){
unset ($this->id);
unset ($this->name);
unset ($this->date);
unset ($this->place);
unset ($this->time);
unset ($this->categoryId);
unset ($this->visible);
}
//zobrazi vsechny skoleni ve strukture jejich kategorii
public function show(){
$category = new trainingCategory();
$category->selectCategory();//nalezne vsechny kategorie skoleni
//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=training/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=training/training&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=training/training&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=training/training&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=training/training&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->selectTrainings($category->getId($i));//nalezne vsechny skoleni aktualni kategorie a
//naplni jimi prislusne vlastnosi tridy
//pro kazdy skoleni vytvori radek s nazvem a editacnimi tlacitky
for($j=0;$j<count($this->id);$j++){
$datum=explode("-",$this->date[$j]);
//datum a nazev skoleni a odkaz na jeho editaci
echo '<div class="submenu_list_page">'.
'<span class="s_t_name">'.
'<a href="default.php?page=training/edit&id_t='.$this->id[$j].'">'.$datum[2].'.'.$datum[1].'.'.substr($datum[0],2,2).' | '.stripslashes($this->name[$j]).'</a>'.
'</span>'.
//obrazek s odkazem na zmenu viditelnosti skoleni
'<span>'.
'<a class="view" href="default.php?page=training/training&b=view&id_t='.$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 skoleni
'<span>'.
'<a class="delete" href="default.php?page=training/training&b=delete&id_t='.$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 skoleni patrici kategorii s danym id a
//naplni prislusne vlastnosi tridy
public function selectTrainings($id_category){
$this->unsetTraining();//odstrani privatni vlastnosti
$query = "SELECT * FROM ".DBPREFIX."training WHERE category_id = '".$id_category."' ORDER BY date ASC";
$sent = mysql_query($query);
$this->setTraining($sent);//naplni privatni vlastnosti tridy
}
//naplni privatni vlastnosti tridy
public function setTraining($sent){
$this->unsetTraining();
while($data = mysql_fetch_object($sent)){
$this->id[] = $data->id;
$this->name[] = stripslashes($data->name);
$this->date[] = $data->date;
$this->place[] = $data->place;
$this->time[] = $data->time;
$this->categoryId[]=$data->category_id;
$this->visible[]=$data->visible;
}
}
//prida nove skoleni s nazvem $name do databaze
//naplni privatni vlastnost msg o uspesnosti akce
//vraci true nebo false podle, toho zda bylo skoleni uspesne pridano do databaze
public function add($name, $date, $place, $time, $id_category, $visible){
if(!empty($name)){//je-li vyplneny nazev skoleni
$name = addslashes($name);
if(!$visible=='TRUE'){
$visible='FALSE';
}
//if(!$this->existName($name)){//neexistuje-li školení s timto nazvem
if(!empty($date) && !$this->isDate($date)){//je-li spatne vylnene datum, naplni vlastnosti msg a opusti tuto funkci
return FALSE;
}
elseif (empty($date)) {//neni-li vyplnene datum
$date = date("Y-m-d");//napleneni promenou aktualnim datem ve spravnem formatu
}
//vklada skoleni do databaze
$query = "INSERT INTO ".DBPREFIX."training (name, date, place, time, category_id, visible) VALUES('$name', '$date', '$place', '$time', '$id_category',$visible)";
if(mysql_query($query)){//bylo-li skoleni uspesne vlozeno
$this->msg = TRAINING_CREATED;
return TRUE;
}
else{//nebylo-li skoleni uspesne vlozeno
$this->msg = SQL_ERROR.mysql_error();
return FALSE;
}
//}
//else{//existuje-li jiz tento nazev školeni
// $this->msg = TRAINING_NAME_EXIST;
// return FALSE;
//}
}
else{//neni vyplnen nazev skoleni
$this->msg = FORM_TRAINING_EMPTY;
return FALSE;
}
}
//zkontroluje spravnost formatu zadaneho data a jeho existenci
//pokud jedna z kontrol neprojde, tak naplni privatni vlastost msg zpravou o spatnem datumu a vrati false
//jinak vraci true
public function isDate($datum){
if(!ereg("^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$",$datum)){//neni-li format data zadan tak jak ho vyzaduje sql
$this->msg = WRONG_DATE_FORMAT;
return FALSE;
}
$date_array = explode("-",$datum);//rozlozi datum do pole([0]=>rok,[1]=>mesic,[2]=>den)
if (!checkdate($date_array[1], $date_array[2], $date_array[0])){//jestlize se jedna o neeexistujici datum
$this->msg = NO_EXIST_DATE;
return FALSE;
}
return TRUE;
}
//vraci true, pokud jiz skoleni s timto jmenem existuje
//jinak vraci false
//je-li zadan i druhy parametr, tak do prohledavani neni zahrnuto skoleni s danym id
public function existName($name,$id=-1){
if ($id!=-1){
$query = "SELECT COUNT(*) AS pocet FROM ".DBPREFIX."training WHERE name = '$name' AND id != '$id'";
}
else{
$query = "SELECT COUNT(*) AS pocet FROM ".DBPREFIX."training WHERE name = '$name'";
}
$sent = mysql_query($query);
$data = mysql_fetch_object($sent);
if ($data->pocet > 0){
return TRUE;
}
return FALSE;
}
//vymaze skoleni nactene v privatnich vlastnostech
//naplni privatni vlastnost msg o uspesnosti akce
public function deleteAll(){
for($i=0;$i<count($this->id);$i++){
//vymaze dane skoleni
$query = "DELETE FROM ".DBPREFIX."training WHERE id = '".$this->id[$i]."'";
if(mysql_query($query)){//vymazani probehlo uspesne
$this->msg = TRAINING_DELETED;
}
else{//vymazani neprobehlo
$this->msg = SQL_ERROR.mysql_error();
return;
}
}
}
//vymaze skoleni s danym id
//naplni privatni vlastnost msg o uspesnosti akce
public function delete($id){
$this->selectTraining($id);//nalezne info o skoleni s danym id a ulozi je do vlastnosti tridy
//vymaze dany skoleni
$query = "DELETE FROM ".DBPREFIX."training WHERE id = '$id'";
if(mysql_query($query)){//vymazani probehlo uspesne
$this->msg = TRAINING_DELETED;
}
else{//vymazani neprobehlo
$this->msg = SQL_ERROR.mysql_error();
}
}
//naplni vlastnosti tridy informacemi o danem skoleni s danym id
public function selectTraining($id){
$query = "SELECT * FROM ".DBPREFIX."training WHERE id = '$id'";
$sent = mysql_query($query);
$this->setTraining($sent);
}
//zmeni viditelnost pro skoleni o danem id
function view_change($id){
//zjisti zda dane skoleni je viditelne
$query = "SELECT visible FROM ".DBPREFIX."training 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."training SET visible = '$change' WHERE id = '$id'";
mysql_query($query);
//end zmena viditelnosti
}
//edituje vybrany skoleni o id=$id v databazi,
//vraci true(false)-bylo skoleni zmeneno?
//naplni privatni vlastnost msg o uspesnosti akce
public function edit($id, $name,$date,$place,$time,$idCategory){
if(!empty($name)){//je-li nazev vyplnen
$name = addslashes($name);
//if(!$this->existName($name,$id)){//neexistuje-li jiz skoleni s takovym nazvem, tak ho edituje
if(!empty($date) && !$this->isDate($date)){//je-li spatne vylnene datum, naplni vlastnosti msg a opusti tuto funkci
return FALSE;
}
elseif (empty($date)) {//neni-li vyplnene datum
$date = date("Y-m-d");//napleneni promenou aktualnim datem ve spravnem formatu
}
$query = "UPDATE ".DBPREFIX."training SET name = '$name', date = '$date', place = '$place', time = '$time', category_id='$idCategory' WHERE id = '$id'";
if(mysql_query($query)){//editace probehla uspesne
$this->msg = TRAINING_EDITED;
}
else{//chyba nepodarilo se editovat
$this->msg = SQL_ERROR.mysql_error();
}
//}
//else{//skoleni s timto nazvem uz existuje
// $this->msg = TRAINING_NAME_EXIST;
//}
}
else{//neni-li nazev vyplnen
$this->msg = FORM_TRAINING_EMPTY;
}
}
}
?>
ACC SHELL 2018