ACC SHELL

Path : /srv/www/vhosts/unitedsolution/class/
File Upload :
Current File : /srv/www/vhosts/unitedsolution/class/product.php

<?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