<?php
//include_once ("db/dbImagem.class.php");
include_once ("base/elemento.class.php");
include_once ("base/categoria.class.php");
include_once "include/files/files.class.php";
//include_once ("base/listaiw.class.php");

class ficheiro extends elemento{
	
	
	function ficheiro() {}
    
    function trataFicheiro($c){

    	if (is_array($_FILES[$c])){
			if ($_FILES[$c]['error'] == UPLOAD_ERR_OK) {

				$tmp_name = $_FILES[$c]["tmp_name"];
                $name = remove_acentos_espacos($_FILES[$c]["name"]);
                $tipo = $_FILES[$c]["type"];
                $ext= substr($_FILES[$c]["name"],-3);

				$db= new dbElemento;
				$temp=$db->getLinha("ficheiroCategoria", $this->req['idCat']);

				//$path="../netimages/file/" . $temp['categoria'] ."/";
				$path="../netimages/file/";

				if (!is_dir($path)) mkdir ($path, 777);

				$img= new file;
                $myimagem=$img->save_file($tmp_name, "" , $path , $name, $tipo, $ext);
                if ($myimagem == "") return false;
								
				$prepath="../";
				if (strstr($myimagem,$prepath)) {$myimagem=substr($myimagem,strlen($prepath));}
				return basename($myimagem);
            }
		}
		return false;
    }
	
	function guardarNovo(){
		$ficheiro=$this->trataFicheiro("ficheiro");
		if ($ficheiro){
			$this->req['ficheiro']=$ficheiro;
			$id_novo = parent::guardarNovo();
		} else print "Tipo de Ficheiro não suportado";
		return $id_novo;		
	}
	
	function guardarEdit($id){
		$ficheiro=$this->trataFicheiro("ficheiro");
		//if ($ficheiro){
			$this->req['ficheiro']=$ficheiro?$ficheiro:$this->req['ficheiro_old'];
			$id_novo = parent::guardarEdit($id);
		//} else print "Tipo de Ficheiro não suportado";
		return $id_novo;
	}
	
	function apagar($id=""){
		$d= new dbElemento;

		$temp=$d->getLinha("ficheiroCategoria", $this->req['idCat']);
		//$path="../netimages/file/" . $temp['categoria'] ."/";
		$path="../netimages/file/" ;
			
		if (($id>0)){
			$temp=$d->getLinha("ficheiro", $id);
			$file=$temp['ficheiro'];
			unlink ($path . $file);
        	$d->setDelete($this->tipo, $id);
		} else if (is_array($this->req['linhasMarcadas'])){
			foreach ($this->req['linhasMarcadas'] as $lid){
				$temp=$d->getLinha("ficheiro", $lid);
				$file=$temp['ficheiro'];
				unlink ($path . $file);
				$d->setDelete($this->tipo, $lid);
			}
		}
		
		?><script>parent.nav.document.location.reload()</script><?
		
        $this->listar();
	}
	
	function editar($id="") {
        
        $db= new dbElemento;
        $dados=$db->getListaCategorias("ficheiroCategoria", "*");

		foreach ($dados as $l) $dadosSel[$l['id']]=$l['categoria'];

        $linha = @$db->getLinha($this->tipo, $id);
		$idCat=$linha['idCat']?$linha['idCat']:$this->idCat;
		
		$f= new form($id, $linha , $this->req);
		$f->toolbars("Guardar", 0, $this->popup);
		$f->titulo("Ficheiros / ",1);
		$f->campoFicheiro("Ficheiro", "ficheiro");
		$f->campoSeleccao("Categoria", "idCat", $dadosSel, $idCat);
		$f->campoTexto("Título","titulo" );
		$f->campoAreaTexto("Palavras","palavras" );
		$f->mostra();
    }


	function listar() {
        $campos=array("Nº"=>"id","Ficheiro"=>"ficheiro","Titulo"=>"titulo","Palavras"=>"palavras");
        
        $db= new dbElemento;
        $dados=$db->getLista($this->tipo, $this->idCat, $campos , "titulo", $this->req['ordem'] ,$this->req['offset'], $this->req['limit'], $this->req['procurar'], $this->req['filtro'] );
        $this->req['total']=$db->getTotal($this->tipo, $this->idCat, $this->req['procurar'], $this->req['filtro']);
         
        $f= new lista($campos, $dados, $this->req);
		
		$toolbar= new toolbar(); 
		$toolbar->botao_l("Novo");

		$toolbar->ini();
		$toolbar->nav($this->req['offset'], $this->req['limit'], $this->req['total']);
		$toolbar->ini();
		//$toolbar->filtro($this->tipo, $this->idCat, "titulo");
		$toolbar->categoria("ficheiro", "categoria", $this->req['idCat']);
		$toolbar->procurar($this->req['procurar']);   //mudar para campo
		$toolbar->botao("procurar", 90);

		$toolbar->fim();

		$f->titulo("Ficheiros / ");
		$f->cabecaSimples();
		
        $f->tabela(false, false);
		$f->mostra();
    }


}
?>
