array('index','view','activo','series'), 'users'=>array('@'), ), array('allow', // allow authenticated user to perform 'create' and 'update' actions 'actions'=>array('create','update','GeneratePdf','GenerateExcel'), 'users'=>array('@'), ), array('allow', // allow admin user to perform 'admin' and 'delete' actions 'actions'=>array('admin','delete'), 'users'=>array('admin'), ), array('deny', // deny all users 'users'=>array('*'), ), ); } /** * Displays a particular model. * @param integer $id the ID of the model to be displayed */ public function actionView($id){ $this->render('view',array('model'=>$this->loadModel($id),)); } /** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate(){ $model=new Documentos; // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); //echo "
";print_r($_POST['Documentos']);print_r($_FILES);echo "
";die();
		//echo "
";print_r($_POST);print_r($_FILES);echo "
";die();
		if(isset($_POST['Documentos'])){
			$model->attributes=$_POST['Documentos'];
			if(!empty($model->url_youtube)){
				$coincidencia = stripos($model->url_youtube, 'iframe');
				if($coincidencia === false){
					$ytarray=explode("/", $model->url_youtube);
					$ytendstring=end($ytarray);
					$ytendarray=explode("?v=", $ytendstring);
					$ytendstring=end($ytendarray);
					$ytendarray=explode("&", $ytendstring);
					$ytcode=$ytendarray[0];
					$model->url_youtube = '';
					//filtro los enlaces normales
					//$model->url_youtube = preg_replace("/((http|https|www)[^\s]+)/", '', $model->url_youtube);
					//miro si hay enlaces con solamente www, si es así le añado el http://
					//$model->url_youtube = preg_replace("/src=\"www/", 'src="http://www', $model->url_youtube);
				}
			}
			if(!empty($model->url_issuu)){
				$coincidencia = stripos($model->url_issuu, 'iframe');
				$coincidencia1 = stripos($model->url_issuu, 'div');
				if($coincidencia === false && $coincidencia1 === false){
					$model->url_issuu = '';
				}
			}
			if(isset($_FILES['archivo'])){
				if ($_FILES['archivo']['error'] == UPLOAD_ERR_OK) {
					$filename = $_FILES['archivo']['name'];
					$nombre = date('Ymd_His').'_'.Yii::app()->funciones->cleanText($filename);
					$model->archivo = $nombre;
					$nombre_tmp = $_FILES['archivo']['tmp_name'];
					move_uploaded_file($nombre_tmp, $_SERVER['DOCUMENT_ROOT'].Yii::app()->request->baseUrl.'/documentos/'.$nombre);
				}
			}
			if($model->save()){
				$this->redirect(array('index'));
			}	
		}
		$this->render('create',array('model'=>$model,));
	}
	/**
	 * Updates a particular model.
	 * If update is successful, the browser will be redirected to the 'view' page.
	 * @param integer $id the ID of the model to be updated
	 */
	public function actionUpdate($id){
		$model=$this->loadModel($id);
		$archivo = $model->archivo;
		// Uncomment the following line if AJAX validation is needed
		// $this->performAjaxValidation($model);
		if(isset($_POST['Documentos'])){
			$model->attributes=$_POST['Documentos'];
			if(!empty($model->url_youtube)){
				$coincidencia = stripos($model->url_youtube, 'iframe');
				if($coincidencia === false){
					$ytarray=explode("/", $model->url_youtube);
					$ytendstring=end($ytarray);
					$ytendarray=explode("?v=", $ytendstring);
					$ytendstring=end($ytendarray);
					$ytendarray=explode("&", $ytendstring);
					$ytcode=$ytendarray[0];
					$model->url_youtube = '';
					//filtro los enlaces normales
					//$model->url_youtube = preg_replace("/((http|https|www)[^\s]+)/", '', $model->url_youtube);
					//miro si hay enlaces con solamente www, si es así le añado el http://
					//$model->url_youtube = preg_replace("/src=\"www/", 'src="http://www', $model->url_youtube);
				}
			}
			if(!empty($model->url_issuu)){
				$coincidencia = stripos($model->url_issuu, 'iframe');
				$coincidencia1 = stripos($model->url_issuu, 'div');

				if($coincidencia === false && $coincidencia1 === false){
					$model->url_issuu = '';
				}
			}
			if(isset($_FILES['archivo'])){
				if ($_FILES['archivo']['error'] == UPLOAD_ERR_OK) {
					$filename = $_FILES['archivo']['name'];
					$nombre = date('Ymd_His').'_'.Yii::app()->funciones->cleanText($filename);
					$model->archivo = $nombre;
					$nombre_tmp = $_FILES['archivo']['tmp_name'];
					move_uploaded_file($nombre_tmp, $_SERVER['DOCUMENT_ROOT'].Yii::app()->request->baseUrl.'/documentos/'.$nombre);
				}
			}
			$model->last_update = date('Y-m-d');
			if($model->save()){
				$this->redirect(array('index'));			
			}
		}
		$this->render('update',array('model'=>$model,));
	}
	/**
	 * Deletes a particular model.
	 * If deletion is successful, the browser will be redirected to the 'admin' page.
	 * @param integer $id the ID of the model to be deleted
	 */
	public function actionDelete($id){
		//if(!isset($_GET['ajax']))return false;
		$data=array("check"=>"0");
		
		$dir=$_SERVER['DOCUMENT_ROOT'].Yii::app()->request->baseUrl.'/documentos';

		$servername = "localhost";
		$username = "sec_user";
		$password = "Resilencia19@";
		$dbname = "ppd";

		// Create connection
		$conn = new mysqli($servername, $username, $password, $dbname);
		// Check connection
		if ($conn->connect_error) {
			die("Connection failed: " . $conn->connect_error);
		}

		$sql = "SELECT * FROM `tbl_documentos` where id_documento=".$id;
		$result = $conn->query($sql);

		if ($result->num_rows > 0) {
			// output data of each row
			while ($row = $result->fetch_assoc()) {
				if ($row['archivo']!='')
				{
					unlink($dir.'/'.$row['archivo']);
				}
			}
		}	
		
		mysqli_close($conn); 	
		
		
		if($this->loadModel($id)->delete())$data=array("check"=>"1");
		echo json_encode($data);
		exit();
	}
	public function actionActivo($id){
		$model=$this->loadModel($id);
		//Importante tener declarado el campo activo
		//en el modelo de base de datos
		$activo=$model->activo;
		if($model->activo){
			$model->activo=0;
		}else{
			$model->activo=1;
		}
		$arrResp=array();
		if($model->saveAttributes(array('activo'=>$model->activo))){
			$arrResp=array(	'check'=>1,'activo'=>$model->activo);			
		}else{
			$arrResp=array(	'check'=>0,'activo'=>$activo);						
		}
		echo json_encode($arrResp);
		Yii::App()->end();
	}

	/**
	 * Lists all models.
	 */
	public function actionIndex(){
		$model = Documentos::model()->findAll();
        $this->render('index',array('model'=>$model,));
	}
	/**
	 * Manages all models.
	 */
	public function actionAdmin(){
		$model=new Documentos('search');
		$model->unsetAttributes();  // clear any default values
		if(isset($_GET['Documentos'])) $model->attributes=$_GET['Documentos'];
		$this->render('admin',array('model'=>$model,));
	}
	public function actionSeries(){
		$returnArr = array();
		$maximo = Yii::app()->db->createCommand('SELECT MAX(serie) AS maximo FROM tbl_documentos')->queryScalar();
		if($maximo >= 0){
			$returnArr['valor'] = $maximo+1;
			$returnArr['check'] = 1;
		}else{
			$returnArr['check'] = 0;
		}
		echo json_encode($returnArr);
		Yii::app()->end();
	}

	/**
	 * Returns the data model based on the primary key given in the GET variable.
	 * If the data model is not found, an HTTP exception will be raised.
	 * @param integer the ID of the model to be loaded
	 */
	public function loadModel($id){
		$model=Documentos::model()->findByPk($id);
		if($model===null) throw new CHttpException(404,'The requested page does not exist.');
		return $model;
	}
	/**
	 * Performs the AJAX validation.
	 * @param CModel the model to be validated
	 */
	protected function performAjaxValidation($model){
		if(isset($_POST['ajax']) && $_POST['ajax']==='documentos-form'){
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}
	}
}
?>