<?php
/**
 * Clase que representa una categoria para organizar los servicios.
 **/
class CategoriaServicioBtMalaga extends ComponenteBtMalaga {
    static $db = array(
                       'Nombre' => 'Varchar',
                       'Texto' => 'Text',
	               'Descripcion' => 'Text',
                      );


    static $has_many = array(
                             'Imagen' => 'ImagenBtMalaga',
                             'Servicio' => 'ServicioBtMalaga'				                       
                            );

    /**
     * Devuelve el nombre del componente 
     **/
    public function getNombreComponente() {
        return 'categoria';
    }

    /**
     * Función que indica los campos para poner en el grid de listado.
     * Nota: debe ser sobreescrito por cada componentes.
     **/
    protected function camposGrid() {
        $resultado = parent::camposGrid();
        $resultado .= '{"Nombre": "Texto", "Columna":"Texto", "Ordenacion":"str", "Tipo":"ro", "Tamano":200, "Filtro":"#text_filter", "Alineacion":"left"},';
        $resultado .= '{"Nombre": "Descripci&oacute;n", "Columna":"Descripcion", "Ordenacion":"str", "Tipo":"ro", "Tamano":"*", "Filtro":"#text_filter", "Alineacion":"left"}';
        return $resultado;
    }
	
    /**
     * Función que devuelve los campos para editar
     * el contenido en modo principal.
     **/
    protected function cargarEdicionPrincipal() {
        $pestanasEditable = parent::cargarEdicionPrincipal();       

	//Nombre del contenido.
	$campoNombre = new CampoEditable();
	$campoNombre->setNombre('Nombre');
	$campoNombre->setField(new TextField('Nombre', 'Nombre', $this->Nombre));
	$pestanasEditable->add("Contenido", $campoNombre);

	//Texto del contenido.
	$campoTexto = new CampoEditable();
	$campoTexto->setNombre('Texto');
	$campoTexto->setField(new TextField('Texto', 'Texto', $this->Texto));
	$pestanasEditable->add('Contenido', $campoTexto);
	
	//Descripción del contenido.
	$campoDescripcion = new CampoEditable();
	$campoDescripcion->setNombre('Descripci&oacute;n');
	$campoDescripcion->setField(new TextareaField('Descripcion', 'Descripcion', 8, 3, $this->Descripcion));
	$pestanasEditable->add('Contenido', $campoDescripcion);

        //Path de la imagen.
        $campoImagen = new CampoEditable();
        $campoImagen->setNombre('Imagen');
        $campoImagen->setMinOccurs(0);
	$campoImagen->setMaxOccurs(1);
	$campoImagen->setSubCampos($this->Imagen());
	$campoImagen->setTipoSubCampos('ImagenBtMalaga');
	$campoImagen->setCampoSubCampos('Imagen');
	$campoImagen->setPonerHeredados(false);
        $pestanasEditable->add("Contenido",$campoImagen);

        return $pestanasEditable;
    } 	
    
    /**
     * Devuelve el código par ver el componente.
     **/	
    protected function CodigoVer() {
        return $this->renderWith('PlantillaVerCategoriaServicio');
    }    
      	
    /**
     * Devuelve una imagen para ver en el modo vista.
     */
    public function PonerImagen() {
    	$resultado = '';
    	$imagenes = $this->Imagen();
    	foreach ($imagenes as $imagen) {
    		$resultado .= '<img style="border:0;" src="'.$imagen->Imagen()->URL.'" alt="'.$imagen->Alternativa.'" title="'.$imagen->Alternativa.'"/>';
    	}
    	return $resultado;
    }      	

   	/**
	 * Clase que devuelve los botones para el toolbar.
	 * Nota: debe ser sobreescrito por cada componente.
	 **/
	public function botonesToolbar() {
		$this->cargarAcciones();
		$xml = parent::botonesToolbar();
		
		//botÃ³n para editar
        $xml .= '<item id="editar#'.$this->ID.'" type="button" text="Editar" img="btmalaga/images/edit.gif" imgdis="btmalaga/images/editdisabled.gif"';
        if (strpos($this->AccionEditar,'javascript') === false) {
        	$xml .= ' enabled="false"';
     	}        
        $xml .= '></item>';		
        
   		//botÃ³n para borrar
        $xml .= '<item id="borrar#'.$this->ID.'" type="button" text="Borrar" img="btmalaga/images/delete.gif" imgdis="btmalaga/images/deletedisabled.gif"';
        if (strpos($this->AccionBorrar,'javascript') === false) {
        	$xml .= ' enabled="false"';
     	}        
        $xml .= '></item>';        

        
        return $xml;
    }  

    /**
     * sobreescribe la funciÃ³n para borrar
     */
    public function cargarAcciones() {
      	parent::cargarAcciones();
      	
      	//compruesa si existe algun servicio con la categoria
      	if (strpos($this->AccionBorrar, 'javascript') !== false) {
      	  $servicios = DataObject::get('ServicioBtMalaga','CategoriaID='.$this->ID);
      	  if (($servicios) && ($servicios->Count() > 0)) {
      		$this->AccionBorrar = 'btmalaga/images/deletedisabled.gif^Borrar';
      	  }	      		
      	}
    }  

    
}
?>
