ACC SHELL

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

<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

//trida starajici se o manipulaci s kategoriema
abstract class categories{

//public abstract $table;//tabulka prislusne kategorie

abstract function delete($id);//metoda pro vymazani kategorie a jejiho obsahu

//begin privatni vlastnosti tridy
protected $id=NULL;//pole id vybranych kategorii
protected $name=NULL;//pole nazvu vybranych kategorii
protected $pos=NULL;//pole pozic vybranych kategorii
protected $visible=NULL;//pole indikujici viditelnost jednotlivych kategorii
protected $msg=NULL;//potvrzeni uspesnosti akce s kategoriemi
//end privatni vlastnosti tridy

//start 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 getMsg(){
    return $this->msg;
}

//end pristup k privatnim vlastnostem

//zmeni viditelnost pro kategorii o danem id v dane tabulce
public function view_change($id){

    //zjisti zda dana kategorie 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
}

//prida novou kategorii s nazvem $name do databaze
//naplni privatni vlastnost msg o uspesnosti akce
//vraci true nebo false podle, toho zda byla kategorie pridana do databaze
public function add($name, $viditelnost){

    if(!empty($name)){//je-li vyplneny nazev kategorie

	$name = addslashes($name);

        if(!$viditelnost=='TRUE'){
            $viditelnost='FALSE';
        }

	if(!$this->existName($name)){//neexistuje-li kategorie s timto nazvem
            $pos = $this->getMaxPos()+1;//naplni promenou pos nejvyssi pozici kategorie  zvecenou o 1

            //vklada kategorii do databaze
            $query = "INSERT INTO ".DBPREFIX.$this->table." (name,pos,visible) VALUES('$name','$pos',$viditelnost)";

            if(mysql_query($query)){//byla-li kategorie uspesne vlozena
		$this->msg = CATEGORY_CERATED;
                return TRUE;
            }

            else{//nebyla-li kategorie uspesne vlozena
		$this->msg = SQL_ERROR.mysql_error();
                return FALSE;
            }
	}
	else{//existuje-li jiz tento nazev kategorie
            $this->msg = CATEGORY_NAME_EXIST;
            return FALSE;
	}


    }
    else{//neni vyplneno jmeno kategorie
	$this->msg = FORM_CATEGORY_EMPTY;
        return FALSE;
    }

}

//vraci pocet prvku pole id(pocet kategorii nactenych v teto vlastnosti tridy)
public function getNumCategory(){
    return count($this->id);
}

//odstrani vlastnosi kategorii
private function unsetCategory(){

    unset($this->id);
    unset($this->name);
    unset($this->pos);
    unset($this->visible);

}

//naplni vlastnosti tridy informacemi o dane kategorii s danym id
public function selectOneCategory($id, $table){

    $query = "SELECT * FROM ".DBPREFIX.$this->table." WHERE id = '$id'";

    $sent = mysql_query($query);

    $this->setCategory($sent);

}

//nalezne vsechny kategorie a
//naplni vsechny prislusne vlastnosti tridy
public function selectCategory(){

    $this->unsetCategory();//odstrani vlastnosti kategorii

    $query = "SELECT * FROM ".DBPREFIX.$this->table." ORDER BY pos ASC";

    $sent = mysql_query($query);

    $this->setCategory($sent);//naplni vlastnosti tridy pro nalezene kategorie

}

//naplni vlastnosti tridy pro kategorii
private function setCategory($sent){

    $this->unsetCategory();

    while($data = mysql_fetch_object($sent)){

        $this->id[] = $data->id;
	$this->name[] = stripslashes($data->name);
        $this->pos[] = $data->pos;
        $this->visible[]=$data->visible;
    }
}

//vraci true, pokud jiz kategorie s timto jmenem existuje
//jinak vraci false
//je-li zadan i druhy parametr, tak do prohledavani neni zahrnuta kategorie s danym id
public function existName($name,$id=-1){

    if ($id!=-1){
        $query = "SELECT COUNT(*) AS pocet FROM ".DBPREFIX.$this->table." WHERE name = '$name' AND id != '$id'";
    }
    else{
        $query = "SELECT COUNT(*) AS pocet FROM ".DBPREFIX.$this->table." WHERE name = '$name'";
    }


    $sent = mysql_query($query);

    $data = mysql_fetch_object($sent);

    if ($data->pocet > 0){
        return TRUE;
    }

    return FALSE;
}

//vraci maximalni hodnotu pos v tabulce kategorii
public function getMaxPos(){

    $query = "SELECT MAX(pos) AS max_pos FROM ".DBPREFIX.$this->table;

    $sent = mysql_query($query);

    $data = mysql_fetch_object($sent);

    return $data->max_pos;

}


//presune kategorii o danem id o jednu pozici vys nebo niz podle parametru $par
function upDown($id,$par){

    //nalezne aktualni pozici pro kategorii o danem id
    $query = "SELECT pos 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'";

    $sent2 = mysql_query($query2);

    $data2 = mysql_fetch_object($sent2);

    if($data2->pocet != 0){//existuje na nove pozici nejaka kategorie
        //prehozeni pozic v databazi
        $query3 = "UPDATE ".DBPREFIX.$this->table." SET pos = '$actual_pos' WHERE pos = '$new_pos'";

	mysql_query($query3);

	$query4 = "UPDATE ".DBPREFIX.$this->table." SET pos = '$new_pos' WHERE id = '$id'";

	mysql_query($query4);

    }

}

//edituje vybranou kategorii o id=$id v databazi,
//vraci true(false)-byla kategorie zmenena?
//naplni privatni vlastnost msg o uspesnosti akce
public function edit($id, $name){

    if(!empty($name)){//je-li nazev vyplnen

        $name = addslashes($name);

	if(!$this->existName($name,$id)){//neexistuje-li jiz kategorie s takovym nazvem, tak ho edituje

                $query = "UPDATE ".DBPREFIX.$this->table." SET name = '$name' WHERE id = '$id'";

		if(mysql_query($query)){//editace probehla uspesne

			$this->msg = CATEGORY_EDITED;

		}
		else{//chyba nepodarilo se zmenit nazev

			$this->msg = SQL_ERROR.mysql_error();

		}

	}
	else{//kategorie s timto nazvem uz existuje

		$this->msg = CATEGORY_NAME_EXIST;

	}

    }
    else{//neni-li nazev vyplnen

	$this->msg = FORM_CATEGORY_EMPTY;

    }

}

}

?>

ACC SHELL 2018