<?php 

class Funciones extends CApplicationComponent{

	public $someconfig='somedefault';

	public function init() {
        // Init this component
    }

	/******************************** MIS FUNCIONES ****************************************/


    public function cutString($string, $largo){

	   if (strlen($string) > $largo) {
		   $mString = substr(strip_tags(html_entity_decode($string)), 0, $largo);
		   return $mString."...";

	   }else{

		   return strip_tags($string);
	   }

        }


    public function cortarString($string, $largo){
	   $marca = "<!--corte-->";

	   if (strlen($string) > $largo) {
		   
		   $string = wordwrap($string, $largo, $marca);
		   $string = explode($marca, $string);
		   $string = $string[0];
		   
		   return $string.'...';
	   }else{
			return $string;
	   }
	}

	public function saltosString($string, $largo){
		$marca = "<br>";

		$string = wordwrap($string, $largo, $marca);
		
		return $string;
	}

	function invFecha($fecha){
		$arrFecha=explode('-',$fecha);
		return implode('-',array_reverse($arrFecha));
	}

	public function listaCategoriasPub(){

		$model = CategoriasPub::model()->findAll(array("condition"=>"activo = 1", "order"=>"nombre ASC"));
		$returnArr = array();
		
		foreach($model as $item){
			$returnArr[$item->id] = $item->nombre;
		}

		return $returnArr;
	}

	public function listaCategoriasProy(){

		$model = CategoriasProy::model()->findAll(array("condition"=>"activo = 1", "order"=>"nombre ASC"));
		$returnArr = array();
		
		foreach($model as $item){
			$returnArr[$item->id] = $item->nombre;
		}

		return $returnArr;
	}

	public function listaCategoriasDes(){

		$model = CategoriasDes::model()->findAll(array("condition"=>"activo = 1", "order"=>"nombre ASC"));
		$returnArr = array();
		
		foreach($model as $item){
			$returnArr[$item->id] = $item->nombre;
		}

		return $returnArr;
	}

	public function listaCategoriasInt(){

		$model = CategoriasInt::model()->findAll(array("condition"=>"activo = 1", "order"=>"nombre ASC"));
		$returnArr = array();
		
		foreach($model as $item){
			$returnArr[$item->id] = $item->nombre;
		}

		return $returnArr;
	}

	public function listaIntegrantes($id){

		$model = Integrantes::model()->findAll(array("condition"=>"activo = 1 AND id_categoria = ".$id, "order"=>"nombre ASC"));
		$returnArr = array();
		
		foreach($model as $item){
			$returnArr[$item->id] = $item->nombre;
		}

		return $returnArr;
	}

	public function IntegrantesContains($id, $word){
	
		$model = Integrantes::model()->findByPk($id);
		$modelInfo = IntegrantesInfo::model()->findAll(array('condition'=>'id_integrante = '.$id));
		
		if (strpos($model->info_cont, $word) !== false)
			return true;
		else
			return false;

	}

	public function listaSubcategorias($id){
		$model = Categorias::model()->findAll(array("condition"=>"activo = 1 and parent_id = ".$id, "order"=>"nombre ASC"));
		$returnArr = array();
		
		foreach($model as $item){
			$returnArr[$item->id_categoria] = $item->nombre;
		}

		return $returnArr;
	}

	public function ultimasPublicaciones(){

		$publicaciones = Publicaciones::model()->findAll(array('condition'=>'activo = 1', 'order'=> 'log DESC', 'limit'=>3));

		$returnArr = array();
		
		foreach($publicaciones as $item){
			
			$returnArr[$item->id] = $item->titulo;
		}

		return $returnArr;
	}

	public function listaTiposDocumentos(){

		$model = TiposDocumentos::model()->findAll();

		$returnArr = array();
		
		foreach($model as $item){
			$returnArr[$item->id_tipo_documento] = $item->nombre;
		}

		return $returnArr;
	}

	public function listaColaboradores(){

		$model = Colaboladores::model()->findAll(array('condition' => 'activo = 1', 'order' => 'nombre_completo ASC'));

		$returnArr = array();
		
		foreach($model as $item){
			$returnArr[$item->id_colaborador] = $item->nombre_completo;
		}

		return $returnArr;
	}

	public function listaTipoArchivos(){
		$model = TiposArchivos::model()->findAll();

		$returnArr = array();
		
		foreach($model as $item){
			$returnArr[$item->id_tipo_archivo] = $item->nombre;
		}

		return $returnArr;
	}

	public function eliminarHtml($cadena){
		
		$return = strip_tags($cadena);
				
		return $return;
		
	}

	public function cleanText($text){
        //$text = htmlentities($text);
		//$text = preg_replace('/\&(.)[^;]*;/', '\\1', $text);
		$text = $this->cleanString($text);
		$text = str_replace(' ', '_', $text);
		//$text = preg_replace('/[^A-Z0-9]+/i', '_', $text);        
        $text = strtolower(trim($text, '_'));
		
		//$text = preg_replace('@[\s!:;_\?=\\\+\*/%&#]+@', '-', $text);

        return $text;
    }

    public function cleanColumns($text){
        //$text = htmlentities($text);
		//$text = preg_replace('/\&(.)[^;]*;/', '\\1', $text);
		$text = $this->cleanString($text);
		$text = str_replace(' ', '_', $text);
		//$text = preg_replace('/[^A-Z0-9]+/i', '_', $text);        
        $text = strtolower(trim($text, '_'));
        $text = str_replace('.', '_', $text);
		
		//$text = preg_replace('@[\s!:;_\?=\\\+\*/%&#]+@', '-', $text);

        return $text;
    }
	
	/**
	 * Reemplaza todos los caracteres con acentos y tildes por sus equivalentes sin ellos
	 *
	 * @param $string
	 *  string la cadena a limpiar
	 *
	 * @return $string
	 *  string limpia
	 */
	public function cleanString($string){	
	    $string = trim($string);
	
	    $string = str_replace(
	        array('á', 'à', 'ä', 'â', 'ª', 'Á', 'À', 'Â', 'Ä'),
	        array('a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A'),
	        $string
	    );
	
	    $string = str_replace(
	        array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ê', 'Ë'),
	        array('e', 'e', 'e', 'e', 'E', 'E', 'E', 'E'),
	        $string
	    );
	
	    $string = str_replace(
	        array('í', 'ì', 'ï', 'î', 'Í', 'Ì', 'Ï', 'Î'),
	        array('i', 'i', 'i', 'i', 'I', 'I', 'I', 'I'),
	        $string
	    );
	
	    $string = str_replace(
	        array('ó', 'ò', 'ö', 'ô', 'Ó', 'Ò', 'Ö', 'Ô'),
	        array('o', 'o', 'o', 'o', 'O', 'O', 'O', 'O'),
	        $string
	    );
	
	    $string = str_replace(
	        array('ú', 'ù', 'ü', 'û', 'Ú', 'Ù', 'Û', 'Ü'),
	        array('u', 'u', 'u', 'u', 'U', 'U', 'U', 'U'),
	        $string
	    );
	
	    $string = str_replace(
	        array('ñ', 'Ñ', 'ç', 'Ç'),
	        array('n', 'N', 'c', 'C',),
	        $string
	    );
	
	    //eliminar cualquier caracter extraño
	    $string = str_replace(
	        array("\\", "¨", "º", "-", "~",
	             "#", "@", "|", "!", "\"",
	             "·", "$", "%", "&", "/",
	             "(", ")", "?", "'", "¡",
	             "¿", "[", "^", "`", "]",
	             "+", "}", "{", "¨", "´",
	             ">", "< ", ";", ",", ":",
	             ),
	        '',
	        $string
	    );	
	
	    return $string;
	} //end function

	public function getIgnoredValues($ejey, $tbl){

		$if_snt = "";
		$rtrn_val = "";

		$dataReader = Yii::app()->db->createCommand('SELECT ignorar FROM enc_'.$tbl.' WHERE encabezado = "'.$ejey.'"')->query();
		
		while(($row = $dataReader->read())!==false){
			$informacion = $row["ignorar"];
		}

		if(!empty($informacion)){ 
			$ign_arr = explode(",", $informacion); 

			foreach ($ign_arr as $key => $value) {
				$if_snt .= 'IF('.$ejey.' != "'.$value.'", '.$ejey.'*1,0) OR ';
			}

			$rtrn_val = substr($if_snt,0,-4);
		}else{
			$rtrn_val = $ejey;
		}//end else

		return $rtrn_val;
	}	

}
		

?>