ACC SHELL
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
//trida pracujici s produkty a jejimi kategoriemi
class product{
//begin privatni vlastnosti
private $id=null;//pole id vybranych produktu
private $name=null;//pole nazvu vybranych produktu
private $visible=null;//pole viditelnosti vybranych produktu
private $pos=null;//pole pozic vybranych produktu
private $url=null;//pole nazvu dokumentu vybranych produktu
private $idCategory=null;//pole id vybranych kategorii produktu
private $nameCategory=null;//pole nazvu vybranych kategorii produktu
private $posCategory=null;//pole pozic vybranych kategorii produktu
private $visibleCategory=null;//pole viditelnosti vybranych kategorii produktu
//end privatni vlastnosti
//begin pristup k privatnim vlastnostem
public function getId($i){
return $this->id[$i];
}
public function getName($i){
return $this->name[$i];
}
public function getPos($i){
return $this->Pos[$i];
}
public function getVisible($i){
return $this->visible[$i];
}
public function getUrl($i){
return $this->url[$i];
}
public function getIdCategory($i){
return $this->idCategory[$i];
}
public function getNameCategory($i){
return $this->nameCategory[$i];
}
public function getPosCategory($i){
return $this->PosCategory[$i];
}
public function getVisibleCategory($i){
return $this->visibleCategory[$i];
}
//end pristup k privatnim vlastnostem
//naplni privatni vlastnosti tridy, informacemi o vsech viditelnych kategoriich podle pozice
private function selectAllCategory(){
$query = "SELECT id, name, pos, visible FROM ".DBPREFIX."product_category WHERE visible=true ORDER BY pos";
$sent = mysql_query($query);
$this->setCategory($sent);//naplneni privatnich vlastnosti
}
//naplni privatni vlastnosti informacemi o kategoriich produktu
private function setCategory($sent){
$this->unsetCategory();
while($data = mysql_fetch_object($sent)){
$this->idCategory[] = $data->id;
$this->nameCategory[] = stripslashes($data->name);
$this->posCategory[] = $data->pos;
$this->visibleCategory[]=$data->visible;
}
}
//odstrani vlastnosi kategorii
private function unsetCategory(){
unset($this->idCategory);
unset($this->nameCategory);
unset($this->posCategory);
unset($this->visibleCategory);
}
//vraci html kod s viditelnymi nazvy kategorii a viditelnymi nazvy produktu s odkazy na prislusne stranky
public function showAllProducts(){
$this->selectAllCategory();//nalezne informace o vsech viditelnych kategoriich, a naplni jimi privatni vlastnosti
if(count($this->idCategory) == 0){//nebyly-li nalezeny zadne kategorie
return "<p>Nebyly nalezeny žádné produkty. </p>";
}
$helpStr='';
for ($i=0;$i<count($this->idCategory);$i++){//pro kazdou kategorii
$helpStr .='<h3>'.$this->nameCategory[$i].':</h3>'."\n";//zobrazi jeji nazev
$helpStr .= $this->showProducts($this->idCategory[$i]);//zobrazi aktualni nazvy produktu dane kategorie s odkazem na prislusnou stranku
}
return $helpStr;
}
//vraci html kod pro vypis viditelnych produktu kategorie s danym id
private function showProducts($idCategory){
$this->selectProducts($idCategory);//naplneni privatnich vlastnosti informacemi o produktech z dane kategorie
$helpStr='<ul>'."\n";
if (count($this->id)==0){//neexistuje zadny viditelny produkt v dane kategorii
return '<p>Nebyly nalezeny žádné produkty.</p>'."\n";
}
for ($i=0;$i<count($this->id);$i++){//vypis vsech nactenych produktu
if ($this->url[$i]!==''){//jestli-ze produkt obsahuje odkaz na nejakou stranku
$helpStr .= '<li>'.
'<a href="'.$this->url[$i].'" target="_blank">'.
$this->name[$i]."\n".
'</a>'.
'</li>'."\n";
}
else{
$helpStr .= '<li>'.$this->name[$i].'</li>'."\n";
}
}
$helpStr .='</ul>'."\n";
return $helpStr;
}
//naplni privatni valstnosti informacemi o viditelnych produktech z kategorie o danem id podle pozice
private function selectProducts($idCategory){
$query = "SELECT id, name, pos, visible, url FROM ".DBPREFIX."product WHERE category_id = '$idCategory' AND visible=true ORDER BY pos";
$sent = mysql_query($query);
$this->setProducts($sent);//naplneni privatnich vlastnosti
}
//naplni privatni vlastnosti informacemi o produktech
private function setProducts($sent){
$this->unsetProducts();
while($data = mysql_fetch_object($sent)){
$this->id[] = $data->id;
$this->name[] = stripslashes($data->name);
$this->pos[] = $data->pos;
$this->visible[]=$data->visible;
$this->url[]=$data->url;
}
}
//odstrani vlastnosi produktu
private function unsetProducts(){
unset($this->id);
unset($this->name);
unset($this->pos);
unset($this->visible);
unset($this->url);
}
}
?>
ACC SHELL 2018