$rq", _SYSTEM_PATH."xslt/".$xslt, $xslParams); exit; } $db = new dbconnector(USR_DBHOST, TRUE, USR_DBUSER, USR_DBPASS, USR_DBNAME); $FILE_PATH="/home/sintesis_informativa"; // Verificación de permisos de ejecución de programa if (permisoPrograma($db, $_SESSION['~claveAcceso'], basename(__FILE__))<1 and $_REQUEST['t']!='descarga') { $xslt = "accesoDenegado.xsl"; echo xsltTransform('', _SYSTEM_PATH."xslt/".$xslt, $xslParams); exit; } // ERRORES GENERALES MAS ERRORES DEL MODULO define(_MODULO_SINTINFO, -1010); $_ERRORS = $_ERRORS + array( _MODULO_SINTINFO-8 => 'El archivo %s no es un PDF. Intente con otro archivo.', _MODULO_SINTINFO-9 => 'Error de Sistema. No se puede cargar el archivo %s. Favor de reportar este error al departamento de sistemas.', ); setlocale(LC_TIME, "es_MX"); // Determinar punto de retorno en caso de solicitar un callback if(isset($_REQUEST['cb'])) { if($_REQUEST['cb']=='1') { if(isset($_SESSION['~callback'])) $_REQUEST['t']=$_SESSION['~callback']; } } // CICLO DE PROCESO $loop=TRUE; while ($loop) { stopWatch($utime=false); $loop=FALSE; switch ($_REQUEST['t']) { // Permisos: // consulta 8 // publicacion 16 default: case 'menu': authorization(8, 'errorCaptura.xsl', $xslParams); $xslt = "sintinfoMenu.xsl"; $xmlU = "".$_SESSION['~claveAcceso'].""; $xmlL = listFiles($FILE_PATH,'/\.pdf$/'); $xml = ''.$xmlU.$xmlL.''; break; case 'descarga': // Para evitar broncas en el sitio publico, se deja sin permisos la descarga //authorization(8, 'errorCaptura.xsl', $xslParams); downloadFile($FILE_PATH.'/'.$_REQUEST['f']); break; case 'publicar': authorization(16, 'errorCaptura.xsl', $xslParams); $xslt = "sintinfoPublicar.xsl"; $xmlU = "".$_SESSION['~claveAcceso'].""; $xml = ''.$xmlU.''.ini_get('upload_max_filesize').''; break; case 'upload': authorization(16, 'errorCaptura.xsl', $xslParams); $type=explode('.',basename($_FILES['userfile']['name'])); if($type[1]!='pdf') $err[basename($_FILES['userfile']['name'])]= _MODULO_SINTINFO - 8; exitOnError($err,'errorCaptura.xsl',$xslParams); $xslt = "sintinfoPublicar.xsl"; $uploaddir = $FILE_PATH.'/'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); $xmlL.="CARGA:"; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { $xmlL.="Archivo cargado satisfactoriamente"; $uid = getmyuid(); $gid = getmygid(); //print "sudo chown -R $uid:$gid "._SYSTEM_PATH."
"; $chown = shell_exec("sudo chown -R $uid:$gid ".$FILE_PATH); errlog($chown); //print "sudo chmod -R ug+r "._SYSTEM_PATH."
"; $chmod1 = shell_exec("sudo chmod -R ug+r ".$FILE_PATH); errlog($chmod1); //print "sudo chmod -R go-w "._SYSTEM_PATH."
"; $chmod2 = shell_exec("sudo chmod -R go-w ".$FILE_PATH); errlog($chmod2); } else { $err[basename($_FILES['userfile']['name'])] = _MODULO_SINTINFO - 9; } exitOnError($err,'errorCaptura.xsl',$xslParams); errlog("UPLOAD DE SINTESIS INFOMRATICA REALIZADA SATISGFACTORIAMENTE"); $xmlU = "".$_SESSION['~claveAcceso'].""; $xml = ''.$xmlU.$xmlL.''.ini_get('upload_max_filesize').''; break; case 'salir': $_SESSION['~logged-in'] = 0; $xslt = "acceso.xsl"; $xml = acceso(); break; } } $xslParams = array_merge($xslParams, array('callback' => $_REQUEST['t'])); echo xsltTransform($xml, _SYSTEM_PATH."xslt/".$xslt, $xslParams); exit; function listFiles($path='.', $regexp='/./') { if(is_dir($path)) { if($handle = opendir($path)) { while(false!==($file=readdir($handle))) { if($file != "." && $file != ".." && $file[0] != ".") { //print $file."
"; if(!is_dir($path . "/" . $file) && preg_match($regexp,$file)) { $fileArr[] = array('name'=>$file, 'size'=>round(filesize($path."/".$file)/1024,1)); } } } } if(is_array($fileArr)) { $sa = sort_by($fileArr, 'name', 'desc'); foreach ($sa as $key => $val) { $xml.= "".$val['name'].""; } } } return "".$xml.""; } // OJO: Revisar esta funcion, que no se usa pero se antoja function sort_by($array, $keyname = null, $sortby) { $myarray = $inarray = array(); # First store the keyvalues in a seperate array foreach ($array as $i => $befree) { $myarray[$i] = $array[$i][$keyname]; } # Sort the new array by switch ($sortby) { case 'asc': # Sort an array and maintain index association... asort($myarray); break; case 'desc': # Sort an array in reverse order and maintain index association arsort($myarray); break; case 'nat': # Sort an array using a case insensitive "natural order" algorithm natcasesort($myarray); break; } # Rebuild the old array foreach ( $myarray as $key=> $befree) { $inarray[$key] = $array[$key]; } return $inarray; } ?>