Beispiel #1
0
function DemoVista_SOPA_Facebook($EntradasFaceBook)
{
    global $MULTILANG_IrEscritorio;
    //Abre un contenedor (Opcional)
    abrir_ventana('Prueba de SO.PA. - (SocialParser by Practico)', 'panel-primary');
    //Encabezados de la tabla
    echo '<h1>Entradas encontradas: <strong>' . count($EntradasFaceBook) . '</strong></h1>
            <table class="table table-hover table-striped table-bordered">
                <thead>
                    <tr>
                      <th>Titulo</td>
                      <th>Descripcion</td>
                      <th>Fecha</td>
                    </tr>
                </thead>
                <tbody>';
    foreach ($EntradasFaceBook as $fila) {
        echo '
                            <tr>
                                <td>' . $fila['Titulo'] . '</td>
                                <td>' . $fila['Descripcion'] . '</td>
                                <td>' . $fila['Fecha'] . '</td>
                            </tr>';
    }
    echo '  </tbody>
            </table>';
    //Crea una barra de estado (opcional)
    abrir_barra_estado();
    echo '<button type="button" class="btn btn-danger" OnClick="document.core_ver_menu.submit();">' . $MULTILANG_IrEscritorio . '</button>';
    cerrar_barra_estado();
    //Cierra el contenedor (Obligatorio si se ha abierto alguno)
    cerrar_ventana();
}
Beispiel #2
0
    	Variables minimas de entrada:
    		nombre_filtro - Nombre del usuario (o parte)
    		login_filtro - Parte del UID o Login
    
    	Proceso simplificado:
    		(start code)
    			SELECT * FROM ".$TablasCore."usuario WHERE (login LIKE '%$login_filtro%') AND (nombre LIKE '%$nombre_filtro%' ) AND login<>'admin' ORDER BY login,nombre";
    		(end)
    
    	Salida de la funcion:
    		* Listado de usuarios filtrado por algun criterio y ordenado por login y nombre
    
    	Ver tambien:
    		<agregar_usuario> | <permisos_usuario> | <eliminar_usuario> | <cambiar_estado_usuario>
    */
    abrir_ventana($MULTILANG_UsrLista, 'panel-info');
    ?>
                


            <form action="<?php 
    echo $ArchivoCORE;
    ?>
" method="POST">
                <input type="hidden" name="PCO_Accion" value="listar_usuarios">
                <div class="form-group input-group">
                    <span class="input-group-addon">
                        <i class="fa fa-users"></i>
                    </span>
                    <input name="nombre_filtro" type="text" class="form-control" placeholder="<?php 
    echo $MULTILANG_UsrLisNombre;
Beispiel #3
0
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/
?>

<?php 
//Abre un contenedor (Opcional)
abrir_ventana('Registros de auditoria', 'panel-primary');
?>

	<h1>Listado de acciones encontradas</h1>
	<table class="TextosVentana">
		<tr>
		  <td>Id</td>
		  <td>Usuario</td>
		  <td>Accion</td>
		  <td>Fecha</td>
		  <td>Hora</td>
		</tr>
		<?php 
foreach ($registros as $fila) {
    ?>
			<tr>
Beispiel #4
0
?>



<?php 
/* ################################################################## */
/* ################################################################## */
/* ################################################################## */
/* ################################################################## */
/* ################################################################## */
/* ################################################################## */
/* ################################################################## */
/* ################################################################## */
/* AQUI EMPIEZA CODIGO DE VERSIONES ANTERIORES ESPECIFICAS PARA MYSQL y MARIADB ------ EN DESUSO-----   */
if ($PCO_Accion == "administrar_tablas_solo_mysql") {
    abrir_ventana('Crear/Listar tablas de datos definidias en el sistema', 'panel-warning');
    ?>
			<form name="datos" id="datos" action="<?php 
    echo $ArchivoCORE;
    ?>
" method="POST">
			<input type="Hidden" name="PCO_Accion" value="guardar_crear_tabla">
			<div align=center>
			<br>Crear una nueva tabla de datos en <b><?php 
    echo $BaseDatos;
    ?>
</b>:
				<table class="TextosVentana">
					<tr>
						<td align="center">Nombre:</td>
						<td><?php 
Beispiel #5
0
            </div>
            <!-- /.panel -->
        </div>
        <!-- /.col-lg-4 -->
    </div>
    <!-- /.row -->


<?php 
//Obtiene entradas del canal RSS de Practico
if (1 == 2) {
    //Llamado a la funcion derivada de SOPA de Practico
    $EntradasGitHub = ObtenerEntradas_GitHub("unix4you2");
    //Despliegue de resultados
    //Abre un contenedor (Opcional)
    abrir_ventana('Ultimas ' . count($EntradasGitHub) . ' Entradas ATOM', 'panel-primary');
    //Encabezados de la tabla
    echo '
                <table class="table table-hover table-striped table-bordered btn-xs">
                    <thead>
                        <tr>
                          <th>Titulo</td>
                          <th>Fecha</td>
                        </tr>
                    </thead>
                    <tbody>';
    foreach ($EntradasGitHub as $fila) {
        echo '
                                <tr>
                                    <td>' . $fila['Titulo'] . '
                                    
Beispiel #6
0
	Presenta la lista de todos los monitores de red, sql y comandos definidos

	(start code)
		SELECT * FROM ".$TablasCore."monitoreo WHERE 1
	(end)

	Salida:
		Listado de monitores y paginas de monitoreo definidas

	Ver tambien:
	<guardar_monitoreo>
*/
if ($PCO_Accion == "administrar_monitoreo") {
    $PCO_Accion = escapar_contenido($PCO_Accion);
    //Limpia cadena para evitar XSS
    abrir_ventana($MULTILANG_MonConfig, 'panel-primary');
    ?>

        <form name="datos" action="<?php 
    echo $ArchivoCORE;
    ?>
" method="POST">
            <input type="hidden" name="PCO_Accion" value="guardar_monitoreo">
            
            <div class="row">
                <div class="col-md-6">
                    <h4><b><i class="fa fa-link fa-fw icon-orange"></i><?php 
    echo $MULTILANG_MonNuevo;
    ?>
:</b></h4>
Beispiel #7
0
function cargar_informe($informe, $en_ventana = 1, $formato = "htm", $estilo = "Informes", $embebido = 0)
{
    global $ConexionPDO, $ArchivoCORE, $TablasCore, $Nombre_Aplicacion, $PCO_ValorBusquedaBD, $PCO_CampoBusquedaBD;
    // Carga variables de sesion por si son comparadas en alguna condicion.  De todas formas pueden ser cargadas por el usuario en el diseno del informe
    global $PCOSESS_LoginUsuario, $Nombre_usuario, $Descripcion_usuario, $Nivel_usuario, $Correo_usuario, $LlaveDePasoUsuario, $PCO_FechaOperacion;
    // Carga variables de definicion de tablas
    global $ListaCamposSinID_informe, $ListaCamposSinID_informe_campos, $ListaCamposSinID_informe_tablas, $ListaCamposSinID_informe_condiciones, $ListaCamposSinID_informe_boton;
    global $MULTILANG_TotalRegistros, $MULTILANG_ContacteAdmin, $MULTILANG_ObjetoNoExiste, $MULTILANG_ErrorTiempoEjecucion, $MULTILANG_Informes, $MULTILANG_IrEscritorio, $MULTILANG_ErrorDatos, $MULTILANG_InfErrTamano, $MULTILANG_MonCommSQL;
    global $IdiomaPredeterminado;
    global $PCO_InformesDataTable;
    global $ModoDepuracion;
    // Busca datos del informe
    $consulta_informe = ejecutar_sql("SELECT id," . $ListaCamposSinID_informe . " FROM " . $TablasCore . "informe WHERE id=? ", "{$informe}");
    $registro_informe = $consulta_informe->fetch();
    $Identificador_informe = $registro_informe["id"];
    //Si no encuentra informe presenta error
    if ($registro_informe["id"] == "") {
        mensaje($MULTILANG_ErrorTiempoEjecucion, $MULTILANG_ObjetoNoExiste . " " . $MULTILANG_ContacteAdmin . "<br>(" . $MULTILANG_Informes . " {$informe})", '', 'fa fa-times fa-5x icon-red texto-blink', 'alert alert-danger alert-dismissible');
    }
    //Identifica si el informe requiere un formulario de filtrado previo
    if ($registro_informe["formulario_filtrado"] != "") {
        //Determina si solicita el informe desde el formulario de filtrado apropiado, sino redirecciona a este
        global $PCO_FormularioActivo;
        if ($registro_informe["formulario_filtrado"] != $PCO_FormularioActivo) {
            echo '<form name="precarga_form_filtro" action="' . $ArchivoCORE . '" method="POST">
							<input type="Hidden" name="PCO_Accion" value="cargar_objeto">
							<input type="Hidden" name="PCO_InformeFiltro" value="' . $registro_informe["id"] . '">
							<input type="Hidden" name="objeto" value="frm:' . $registro_informe["formulario_filtrado"] . ':1">
							<input type="Hidden" name="Presentar_FullScreen" value="' . @$Presentar_FullScreen . '">
							<input type="Hidden" name="Precarga_EstilosBS" value="' . @$Precarga_EstilosBS . '">
						<script type="" language="JavaScript"> document.precarga_form_filtro.submit();  </script>';
            die;
        }
    }
    //Si hay variables de filtro definidas busca su valor en el contexto global
    if ($registro_informe["variables_filtro"] != "") {
        $arreglo_variables_filtro = @explode(",", $registro_informe["variables_filtro"]);
        //Busca y convierte cada variable recibida en global
        foreach ($arreglo_variables_filtro as $nombre_variable_filtro) {
            //if (isset($$nombre_variable_filtro))  // {Deprecated}
            global ${$nombre_variable_filtro};
        }
    }
    // Inicia CONSTRUCCION DE CONSULTA DINAMICA
    $numero_columnas = 0;
    //Busca los CAMPOS definidos para el informe
    $consulta = "SELECT ";
    $consulta_campos = ejecutar_sql("SELECT id," . $ListaCamposSinID_informe_campos . " FROM " . $TablasCore . "informe_campos WHERE informe=? ORDER BY peso", "{$informe}");
    $PCO_ColumnasOcultas[] = "ArregloDeCamposOcultos";
    while ($registro_campos = $consulta_campos->fetch()) {
        //Si tiene alias definido lo agrega
        $posfijo_campo = "";
        if ($registro_campos["valor_alias"] != "") {
            $posfijo_campo = " as " . $registro_campos["valor_alias"];
        }
        //Agrega el campo a la consulta
        $consulta .= $registro_campos["valor_campo"] . $posfijo_campo . ",";
        //Crea un arreglo con los campos marcados como ocultos para filtrarlos luego
        if ($registro_campos["visible"] == 0) {
            $PCO_ColumnasOcultas[] = $registro_campos["valor_campo"] . $posfijo_campo;
            //Lleva el campo oculto despues del punto
            $PCO_PartesCampo = explode(".", $registro_campos["valor_campo"] . $posfijo_campo);
            $PCO_ColumnasOcultas[] = $PCO_PartesCampo[1];
            //Lleva el campo oculto si es un alias
            $PCO_PartesCampo = explode(" as ", $registro_campos["valor_campo"] . $posfijo_campo);
            $PCO_ColumnasOcultas[] = $PCO_PartesCampo[1];
        }
    }
    // Elimina la ultima coma en el listado de campos
    $consulta = substr($consulta, 0, strlen($consulta) - 1);
    //Busca las TABLAS definidas para el informe
    $consulta .= " FROM ";
    $consulta_tablas = ejecutar_sql("SELECT id," . $ListaCamposSinID_informe_tablas . " FROM " . $TablasCore . "informe_tablas WHERE informe=? ", "{$informe}");
    while ($registro_tablas = $consulta_tablas->fetch()) {
        //Si tiene alias definido lo agrega
        $posfijo_tabla = "";
        if ($registro_tablas["valor_alias"] != "") {
            $posfijo_tabla = " as " . $registro_tablas["valor_alias"];
        }
        //Agrega tabla a la consulta
        $consulta .= $registro_tablas["valor_tabla"] . $posfijo_tabla . ",";
    }
    // Elimina la ultima coma en el listado de tablas
    $consulta = substr($consulta, 0, strlen($consulta) - 1);
    // Busca las CONDICIONES para el informe
    $consulta .= " WHERE ";
    $consulta_condiciones = ejecutar_sql("SELECT id," . $ListaCamposSinID_informe_condiciones . " FROM " . $TablasCore . "informe_condiciones WHERE informe=? ORDER BY peso", "{$informe}");
    $hay_condiciones = 0;
    while ($registro_condiciones = $consulta_condiciones->fetch()) {
        //Agrega condicion a la consulta
        $valor_izquierdo = $registro_condiciones["valor_izq"];
        $valor_derecho = $registro_condiciones["valor_der"];
        // CONVIERTE VARIABLES DE SESION PHP A VALORES PARA EL QUERY Cuando el primer simbolos es un PESOS ($), es decir, solo se ingreso una variable
        //LADO IZQUIERDO DE LA CONDICION
        //Si el valor Izquierdo a comparar inicia por signo pesos y es una variable PHP la usa como tal
        if (@$valor_izquierdo[0] == "\$") {
            //Quita el signo pesos inicial para buscar la variable
            $variable_a_buscar = substr($valor_izquierdo, 1, strlen($valor_izquierdo));
            // Si la variable esta definida toma su valor encerrado entre comillas para el query y evitar conflictos de variables con espacios y demas.
            if (@isset($variable_a_buscar)) {
                $valor_izquierdo = "'" . ${$variable_a_buscar} . "'";
            }
        }
        //Evalua casos donde se tienen variables PHP escapadas por llaves.  Ej  "%{$Variable}%" si fuera para un LIKE, por ejemplo.
        if (strpos($valor_izquierdo, "{") !== FALSE && strrpos($valor_izquierdo, "}") !== FALSE) {
            //Determina las posiciones de las llaves en la cadena
            $PosLlaveIzquierda = strpos($valor_izquierdo, "{");
            $PosLlaveDerecha = strrpos($valor_izquierdo, "}");
            //Toma solo el pedazo entre llaves para intentar ubicar el valor de la variable por su nombre
            $NombreVariable = substr($valor_izquierdo, $PosLlaveIzquierda + 2, $PosLlaveDerecha - $PosLlaveIzquierda - 2);
            //Si la variable no esta definida la busca en el entorno global
            global ${$NombreVariable};
            if (@isset($NombreVariable)) {
                $ValorVariable = ${$NombreVariable};
                //Reemplaza el valor encontrado en la cadena de valor original
                $valor_izquierdo = str_replace('{$' . $NombreVariable . '}', $ValorVariable, $valor_izquierdo);
            }
        }
        //LADO DERECHO DE LA CONDICION
        //Si el valor Derecho a comparar inicia por signo pesos y es una variable PHP la usa como tal
        if (@$valor_derecho[0] == "\$") {
            //Quita el signo pesos inicial para buscar la variable
            $variable_a_buscar = substr($valor_derecho, 1, strlen($valor_derecho));
            // Si la variable esta definida toma su valor encerrado entre comillas para el query y evitar conflictos de variables con espacios y demas.
            if (@isset($variable_a_buscar)) {
                $valor_derecho = "'" . ${$variable_a_buscar} . "'";
            }
        }
        //Evalua casos donde se tienen variables PHP escapadas por llaves.  Ej  "%{$Variable}%" si fuera para un LIKE, por ejemplo.
        if (strpos($valor_derecho, "{") !== FALSE && strrpos($valor_derecho, "}") !== FALSE) {
            //Determina las posiciones de las llaves en la cadena
            $PosLlaveIzquierda = strpos($valor_derecho, "{");
            $PosLlaveDerecha = strrpos($valor_derecho, "}");
            //Toma solo el pedazo entre llaves para intentar ubicar el valor de la variable por su nombre
            $NombreVariable = substr($valor_derecho, $PosLlaveIzquierda + 2, $PosLlaveDerecha - $PosLlaveIzquierda - 2);
            //Si la variable no esta definida la busca en el entorno global
            global ${$NombreVariable};
            if (@isset($NombreVariable)) {
                $ValorVariable = ${$NombreVariable};
                //Reemplaza el valor encontrado en la cadena de valor original
                $valor_derecho = str_replace('{$' . $NombreVariable . '}', $ValorVariable, $valor_derecho);
            }
        }
        $consulta .= " " . $valor_izquierdo . " " . $registro_condiciones["operador"] . " " . $valor_derecho . " ";
        $hay_condiciones = 1;
    }
    if (!$hay_condiciones) {
        $consulta .= " 1 ";
    }
    if (@$registro_informe["agrupamiento"] != "") {
        $campoagrupa = $registro_informe["agrupamiento"];
        $consulta .= " GROUP BY {$campoagrupa}";
    }
    if (@$registro_informe["ordenamiento"] != "") {
        $campoorden = $registro_informe["ordenamiento"];
        $consulta .= " ORDER BY {$campoorden}";
    }
    // Si el informe tiene formato_final = T (tabla de datos)
    if ($registro_informe["formato_final"] == "T") {
        $SalidaFinalInforme = '';
        $SalidaFinalInformePDF = '';
        if ($en_ventana) {
            //Cuando es embebido (=1) no imprime el boton de retorno pues se asume dentro de un formulario
            if (!$embebido) {
                echo '<div align=center><button type="Button" onclick="document.core_ver_menu.submit()" class="btn btn-warning"><i class="fa fa-home fa-fw"></i> ' . $MULTILANG_IrEscritorio . '</button></div><br>';
            }
            //Carga la ventana con el informe
            abrir_ventana($Nombre_Aplicacion . ' - ' . $registro_informe["titulo"], 'panel panel-info', $registro_informe["ancho"]);
        }
        // Si se ha definido un tamano fijo entonces crea el marco
        if ($registro_informe["ancho"] != "" && $registro_informe["alto"] != "") {
            echo '<DIV style="DISPLAY: block; OVERFLOW: auto; POSITION: relative; WIDTH: ' . $registro_informe["ancho"] . '; HEIGHT: ' . $registro_informe["alto"] . '">';
        }
        //Genera enlace al PDF cuando se detecta el modulo y ademas el informe lo tiene activado
        if (@file_exists("mod/pdf") && $registro_informe["genera_pdf"] == 'S') {
            echo '<div align=right><a href="tmp/Inf_' . $Identificador_informe . '-' . $PCOSESS_LoginUsuario . '.pdf" target="_BLANK"><i class="fa fa-file-pdf-o"></i> PDF&nbsp;</a></div>';
        }
        // Crea encabezado por tipo de formato:  1=html   2=Excel
        if ($formato == "htm") {
            echo '
								<html>
								<body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0" style="font-size: 12px; font-family: Arial, Verdana, Tahoma;">';
        }
        if ($formato == "xls") {
            $fecha = date("d-m-Y");
            $tituloinforme = trim($registro_informe["titulo"]);
            $tituloinforme = "Informe";
            $nombrearchivo = $tituloinforme . "_" . $fecha;
            header('Content-type: application/vnd.ms-excel');
            header("Content-Disposition: attachment; filename={$nombrearchivo}.xls");
            header("Pragma: no-cache");
            header("Expires: 0");
        }
        if ($formato == "htm") {
            //Si el informe va a soportar datatable entonces lo agrega a las tablas que deben ser convertidas en el pageonload
            if ($registro_informe["soporte_datatable"] == "S") {
                @($PCO_InformesDataTable .= "TablaInforme_" . $registro_informe["id"] . "|");
            }
            $SalidaFinalInforme .= '<table class="table table-condensed table-hover table-striped table-unbordered ' . $estilo . '" id="TablaInforme_' . $registro_informe["id"] . '"><thead><tr>';
            $SalidaFinalInformePDF .= '<table class="' . $estilo . '"><thead><tr>';
        }
        if ($formato == "xls") {
            $SalidaFinalInforme .= '<table class="font-size: 11px; font-family: Verdana, Tahoma, Arial;"><thead><tr>';
            $SalidaFinalInformePDF .= '<table class="font-size: 11px; font-family: Verdana, Tahoma, Arial;"><thead><tr>';
        }
        // Busca si el informe tiene acciones (botones), los cuenta y prepara dentro de un arreglo para repetir en cada registro
        $consulta_botones = ejecutar_sql("SELECT id," . $ListaCamposSinID_informe_boton . " FROM " . $TablasCore . "informe_boton WHERE informe=? AND visible=1 ORDER BY peso", "{$informe}");
        $total_botones = 0;
        while ($registro_botones = $consulta_botones->fetch()) {
            //Construye una cadena generica con todos los botones para ser reemplazada luego con valores
            if ($registro_botones["tipo_accion"] == "interna_eliminar") {
                $valores = explode(".", $registro_botones["accion_usuario"]);
                $tabla_vinculada = @$valores[0];
                $campo_vinculado = @$valores[1];
                //Si solo se indico el campo, sin la tabla, intenta usar solo el campo
                if ($campo_vinculado == "" && $tabla_vinculada != "") {
                    $campo_vinculado = $valores[0];
                    $tabla_vinculada = "";
                }
                $comando_javascript = "\r\n\t\t\t\t\t\t\t\t\t\tdocument.FRMBASEINFORME.PCO_Accion.value='eliminar_registro_informe';\r\n\t\t\t\t\t\t\t\t\t\tdocument.FRMBASEINFORME.tabla.value='" . @$tabla_vinculada . "';\r\n\t\t\t\t\t\t\t\t\t\tdocument.FRMBASEINFORME.campo.value='" . @$campo_vinculado . "';\r\n\t\t\t\t\t\t\t\t\t\tdocument.FRMBASEINFORME.valor.value='DELFRMVALVALOR';\r\n\t\t\t\t\t\t\t\t\t\tdocument.FRMBASEINFORME.submit()";
            }
            if ($registro_botones["tipo_accion"] == "interna_cargar") {
                $comando_javascript = "\r\n                                        document.FRMBASEINFORME.PCO_Accion.value='cargar_objeto';\r\n\t\t\t\t\t\t\t\t\t\tdocument.FRMBASEINFORME.objeto.value='frm:" . $registro_botones["accion_usuario"] . ":DETFRMVALBASE';\r\n\t\t\t\t\t\t\t\t\t\tdocument.FRMBASEINFORME.submit()";
            }
            if ($registro_botones["tipo_accion"] == "externa_formulario") {
                $comando_javascript = "\r\n\t\t\t\t\t\t\t\t\t\tdocument.FRMBASEINFORME.PCO_Tabla.value='" . @$tabla_vinculada . "';\r\n\t\t\t\t\t\t\t\t\t\tdocument.FRMBASEINFORME.PCO_Campo.value='" . @$campo_vinculado . "';\r\n\t\t\t\t\t\t\t\t\t\tdocument.FRMBASEINFORME.PCO_Valor.value='DELFRMVALVALOR';\r\n                                        document.FRMBASEINFORME.PCO_Accion.value='" . $registro_botones["accion_usuario"] . "';\r\n\t\t\t\t\t\t\t\t\t\tdocument.FRMBASEINFORME.submit()";
            }
            if ($registro_botones["tipo_accion"] == "externa_javascript") {
                $comando_javascript = $registro_botones["accion_usuario"];
            }
            //Verifica si el registro de botones presenta algun texto de confirmacion y lo antepone al script
            $cadena_confirmacion_accion_pre = "";
            $cadena_confirmacion_accion_pos = "";
            if ($registro_botones["confirmacion_texto"] != "") {
                $cadena_confirmacion_accion_pre = " if (confirm('" . $registro_botones["confirmacion_texto"] . "')) {";
                $cadena_confirmacion_accion_pos = " } else {} ";
            }
            //Genera la cadena del enlace
            $cadena_javascript = 'onclick="' . $cadena_confirmacion_accion_pre . '  ' . @$comando_javascript . '  ' . $cadena_confirmacion_accion_pos . ' "';
            @($cadena_generica_botones .= '<input type="Button"  class="' . $registro_botones["estilo"] . '" value="' . $registro_botones["titulo"] . '" ' . $cadena_javascript . ' >&nbsp;');
            $total_botones++;
        }
        // Imprime encabezados de columna
        $resultado_columnas = @ejecutar_sql($consulta);
        $ConteoColumnas = $resultado_columnas->rowCount();
        //Si se tienen registros para mirar las columnas las agrega
        if ($ConteoColumnas > 0) {
            $numero_columnas = 0;
            foreach ($resultado_columnas->fetch(PDO::FETCH_ASSOC) as $key => $val) {
                //Imprime el encabezado siempre y cuando no se trate de un campo que se desea ocultar
                if (!in_array($key, $PCO_ColumnasOcultas)) {
                    $SalidaFinalInforme .= '<th>' . $key . '</th>';
                    $SalidaFinalInformePDF .= '<th>' . $key . '</th>';
                } else {
                    //Agrega la columna al indice de columnas ocultas para no mostrarla luego
                    $PCO_NumerosColumnasOcultas[] = $numero_columnas;
                }
                $numero_columnas++;
            }
        }
        //Si el informe tiene botones entonces agrega columna adicional
        if ($total_botones > 0) {
            $SalidaFinalInforme .= '<th></th>';
            $SalidaFinalInformePDF .= '<th></th>';
        }
        $SalidaFinalInforme .= '</tr></thead><tbody>';
        $SalidaFinalInformePDF .= '</tr></thead><tbody>';
        // Imprime registros del resultado
        $numero_filas = 0;
        $consulta_ejecucion = ejecutar_sql($consulta);
        while ($registro_informe = $consulta_ejecucion->fetch()) {
            $SalidaFinalInforme .= '<tr>';
            $SalidaFinalInformePDF .= '<tr>';
            for ($i = 0; $i < $numero_columnas; $i++) {
                //Muestra la columna solo si no se trata de una de las ocultas
                if (!in_array($i, $PCO_NumerosColumnasOcultas)) {
                    $SalidaFinalInforme .= '<td>' . $registro_informe[$i] . '</td>';
                    $SalidaFinalInformePDF .= '<td>' . $registro_informe[$i] . '</td>';
                }
            }
            //Si el informe tiene botones los agrega
            if ($total_botones > 0) {
                //Transforma la cadena generica con los datos especificos del registro, toma por ahora el primer campo
                $cadena_botones_registro = str_replace("DELFRMVALVALOR", $registro_informe[0], $cadena_generica_botones);
                $cadena_botones_registro = str_replace("DETFRMVALBASE", $registro_informe[0], $cadena_botones_registro);
                //Muestra los botones preparados para el registro
                $SalidaFinalInforme .= '<th>' . $cadena_botones_registro . '</th>';
                $SalidaFinalInformePDF .= '<th>' . $cadena_botones_registro . '</th>';
            }
            $SalidaFinalInforme .= '</tr>';
            $SalidaFinalInformePDF .= '</tr>';
            $numero_filas++;
        }
        $SalidaFinalInforme .= '</tbody>';
        $SalidaFinalInformePDF .= '</tbody>';
        if ($formato == "htm") {
            //Cuando es embebido (=1) no agrega los totales de registro
            if (!$embebido) {
                $SalidaFinalInforme .= '<tfoot>
                                        <tr><td colspan=' . $numero_columnas . '>
                                            <b>' . $MULTILANG_TotalRegistros . ': </b>' . $numero_filas . '
                                        </td></tr>';
                $SalidaFinalInformePDF .= '<tfoot>
                                        <tr><td colspan=' . $numero_columnas . '>
                                            <b>' . $MULTILANG_TotalRegistros . ': </b>' . $numero_filas . '
                                        </td></tr>';
            }
            echo '</tfoot>';
        }
        $SalidaFinalInforme .= '</table>';
        $SalidaFinalInformePDF .= '</table>';
        if ($formato == "htm") {
            echo '</body></html>';
        }
        //Imprime el HTML generado para el informe
        echo $SalidaFinalInforme;
        //Genera el PDF cuando se encuentra el modulo y el informe lo tiene activado
        if (@file_exists("mod/pdf") && $registro_informe["genera_pdf"] == 'S') {
            require_once 'mod/pdf/html2pdf/html2pdf.class.php';
            try {
                //Define parametros para generar el PDF
                $IdiomaPDF = $IdiomaPredeterminado;
                // Acepta solo ca|cs|da|de|en|es|fr|it|nl|pt|tr
                $OrientacionPDF = 'P';
                // P|ortrait  L|andscape
                $TamanoPaginaPDF = 'A4';
                // A4|A5|LETTER|LEGAL|100×200...|
                $MargenPaginaMM = '10';
                // Como Entero o arreglo (Izq,Der,Arr,Aba) ej:  10  o  array(1, 25, 25, 5)
                $ModoVistaPDF = 'fullpage';
                // fullpage|fullwidth|real|default
                $FuentePredeterminadaPDF = 'Arial';
                // Arial|Courier|Courier-Bold|Courier-BoldOblique|Courier-Oblique|Helvetica|Helvetica-Bold|Helvetica-BoldOblique|Helvetica-Oblique|Symbol|Times-Roman|Times-Bold|Times-BoldItalic|Times-Italic|ZapfDingbats
                $ContrasenaLecturaPDF = '';
                // Si se asigna un valor pedira contrasena para poderlo leer
                $JavaScriptPDF = '';
                // Ej.  print(true);
                // Inicia la generacion del PDF
                $html2pdf = new HTML2PDF($OrientacionPDF, $TamanoPaginaPDF, $IdiomaPDF, true, 'UTF-8', $MargenPaginaMM);
                if ($ContrasenaLecturaPDF != "") {
                    $html2pdf->pdf->SetProtection(array('print'), $ContrasenaLecturaPDF);
                }
                if ($JavaScriptPDF != "") {
                    $html2pdf->pdf->IncludeJS($JavaScriptPDF);
                }
                $html2pdf->pdf->SetDisplayMode($ModoVistaPDF);
                $html2pdf->setDefaultFont($FuentePredeterminadaPDF);
                $html2pdf->WriteHTML($SalidaFinalInformePDF);
                $html2pdf->Output('tmp/Inf_' . $Identificador_informe . '-' . $PCOSESS_LoginUsuario . '.pdf', 'F');
                // Antes: $html2pdf->Output('tmp/exemple.pdf'); enviaba salida al navegador directamente
            } catch (HTML2PDF_exception $e) {
                echo $e;
                exit;
            }
        }
        // Si se ha definido un tamano fijo entonces cierra el marco
        if ($registro_informe["ancho"] != "" && $registro_informe["alto"] != "") {
            echo '</DIV>';
        }
    }
    // Fin si informe es T (tabla)
    //Verifica si es un informe grafico sin dimensiones
    if ($registro_informe["formato_final"] == "G" && ($registro_informe["ancho"] == "" || $registro_informe["alto"] == "")) {
        echo '<form name="cancelarXTamano" action="' . $ArchivoCORE . '" method="POST">
					<input type="Hidden" name="PCO_Accion" value="Ver_menu">
					<input type="Hidden" name="PCO_ErrorTitulo" value="' . $MULTILANG_ErrorDatos . '">
					<input type="Hidden" name="PCO_ErrorDescripcion" value="' . $MULTILANG_InfErrTamano . '">
					</form>
					<script type="" language="JavaScript"> document.cancelarXTamano.submit();  </script>';
    }
    // Si el informe tiene formato_final = G (grafico)
    if ($registro_informe["formato_final"] == "G" && $registro_informe["ancho"] != "" && $registro_informe["alto"] != "") {
        //Consulta el formato de grafico y datos de series para ponerlo en los campos
        //Dado por: Tipo|Nombre1!NombreN|Etiqueta1!EtiquetaN|Valor1!ValorN|
        $formato_base = explode("|", $registro_informe["formato_grafico"]);
        $tipo_grafico = $formato_base[0];
        $lista_nombre_series = explode("!", $formato_base[1]);
        $lista_etiqueta_series = explode("!", $formato_base[2]);
        $lista_valor_series = explode("!", $formato_base[3]);
        //Elimina los nombres de tabla en caso de tener punto y usa los alias si los tiene
        for ($i = 0; $i < 5; $i++) {
            //Elimina nombres de tabla encontrando el punto y seleccionando siguiente palabra
            if (strpos($lista_etiqueta_series[$i], ".")) {
                $tmp = explode(".", $lista_etiqueta_series[$i]);
                $lista_etiqueta_series[$i] = $tmp[1];
            }
            if (strpos($lista_valor_series[$i], ".")) {
                $tmp = explode(".", $lista_valor_series[$i]);
                $lista_valor_series[$i] = $tmp[1];
            }
            // Prefiere los alias sobre los nombres de campo cuando encuentra un AS
            if (strpos($lista_etiqueta_series[$i], " AS ")) {
                $tmp = explode(" AS ", $lista_etiqueta_series[$i]);
                $lista_etiqueta_series[$i] = $tmp[1];
            }
            if (strpos($lista_valor_series[$i], " AS ")) {
                $tmp = explode(" AS ", $lista_valor_series[$i]);
                $lista_valor_series[$i] = $tmp[1];
            }
        }
        $nombre_serie_1 = $lista_nombre_series[0];
        $nombre_serie_2 = $lista_nombre_series[1];
        $nombre_serie_3 = $lista_nombre_series[2];
        $nombre_serie_4 = $lista_nombre_series[3];
        $nombre_serie_5 = $lista_nombre_series[4];
        $campo_etiqueta_serie_1 = $lista_etiqueta_series[0];
        $campo_etiqueta_serie_2 = $lista_etiqueta_series[1];
        $campo_etiqueta_serie_3 = $lista_etiqueta_series[2];
        $campo_etiqueta_serie_4 = $lista_etiqueta_series[3];
        $campo_etiqueta_serie_5 = $lista_etiqueta_series[4];
        $campo_valor_serie_1 = $lista_valor_series[0];
        $campo_valor_serie_2 = $lista_valor_series[1];
        $campo_valor_serie_3 = $lista_valor_series[2];
        $campo_valor_serie_4 = $lista_valor_series[3];
        $campo_valor_serie_5 = $lista_valor_series[4];
        // Libreria para graficos
        include "inc/libchart/classes/libchart.php";
        //Crea las series para el grafico, dependiendo si es torta (una serie) o cualquier otro (multiples series)
        if ($tipo_grafico == "torta") {
            $dataSet = new XYDataSet();
            // GENERA DATOS DEL GRAFICO
            $consulta_ejecucion = ejecutar_sql($consulta);
            while ($registro = $consulta_ejecucion->fetch()) {
                if ($nombre_serie_1 != "") {
                    $dataSet->addPoint(new Point($registro[$campo_etiqueta_serie_1], $registro[$campo_valor_serie_1]));
                }
            }
        } else {
            $dataSet = new XYSeriesDataSet();
            if ($nombre_serie_1 != "") {
                $serie1 = new XYDataSet();
                $dataSet->addSerie($nombre_serie_1, $serie1);
            }
            if ($nombre_serie_2 != "") {
                $serie2 = new XYDataSet();
                $dataSet->addSerie($nombre_serie_2, $serie2);
            }
            if ($nombre_serie_3 != "") {
                $serie3 = new XYDataSet();
                $dataSet->addSerie($nombre_serie_3, $serie3);
            }
            if ($nombre_serie_4 != "") {
                $serie4 = new XYDataSet();
                $dataSet->addSerie($nombre_serie_4, $serie4);
            }
            if ($nombre_serie_5 != "") {
                $serie5 = new XYDataSet();
                $dataSet->addSerie($nombre_serie_5, $serie5);
            }
            // GENERA DATOS DEL GRAFICO
            $consulta_ejecucion = ejecutar_sql($consulta);
            while ($registro = $consulta_ejecucion->fetch()) {
                if ($nombre_serie_1 != "") {
                    $serie1->addPoint(new Point($registro[$campo_etiqueta_serie_1], $registro[$campo_valor_serie_1]));
                }
                if ($nombre_serie_2 != "") {
                    $serie2->addPoint(new Point($registro[$campo_etiqueta_serie_2], $registro[$campo_valor_serie_2]));
                }
                if ($nombre_serie_3 != "") {
                    $serie3->addPoint(new Point($registro[$campo_etiqueta_serie_3], $registro[$campo_valor_serie_3]));
                }
                if ($nombre_serie_4 != "") {
                    $serie4->addPoint(new Point($registro[$campo_etiqueta_serie_4], $registro[$campo_valor_serie_4]));
                }
                if ($nombre_serie_5 != "") {
                    $serie5->addPoint(new Point($registro[$campo_etiqueta_serie_5], $registro[$campo_valor_serie_5]));
                }
            }
        }
        // CREA OBJETO SEGUN TIPO DE GRAFICO
        if ($tipo_grafico == "linea" || $tipo_grafico == "linea_multiples") {
            $chart = new LineChart($registro_informe["ancho"], $registro_informe["alto"]);
        }
        if ($tipo_grafico == "barrah" || $tipo_grafico == "barrah_multiples") {
            $chart = new HorizontalBarChart($registro_informe["ancho"], $registro_informe["alto"]);
        }
        if ($tipo_grafico == "barrav" || $tipo_grafico == "barrav_multiples") {
            $chart = new VerticalBarChart($registro_informe["ancho"], $registro_informe["alto"]);
        }
        if ($tipo_grafico == "torta") {
            $chart = new PieChart($registro_informe["ancho"], $registro_informe["alto"]);
        }
        // PRESENTA EL GRAFICO EN PANTALLA
        $chart->setDataSet($dataSet);
        //$chart->getPlot()->setGraphCaptionRatio(0.75);
        $chart->setTitle($registro_informe["titulo"]);
        $chart->render("tmp/Inf_" . $registro_informe["id"] . "-" . $PCOSESS_LoginUsuario . ".png");
        echo '<img alt="Grafico" src="tmp/Inf_' . $Identificador_informe . '-' . $PCOSESS_LoginUsuario . '.png" style="border: 1px solid gray;">';
    }
    // Fin si informe es G (grafico)
    if ($en_ventana) {
        cerrar_ventana();
    }
    //Si el usuario es admin le muestra el query generador.
    if (@$PCOSESS_LoginUsuario == "admin" && $ModoDepuracion) {
        mensaje($MULTILANG_MonCommSQL, $consulta, '', 'fa fa-fw fa-2x fa-database', 'alert alert-info alert-dismissible ');
    }
}
Beispiel #8
0
    echo '<form name="Redireccion" method="POST"><input type="Hidden" name="PCO_Accion" value="Mensaje_cierre_sesion"></form><script type="" language="JavaScript">	document.Redireccion.submit();  </script>';
}
/* ################################################################## */
/* ################################################################## */
/*
	Function: Mensaje_cierre_sesion
	Destruye todas las variables de sesion creadas para el cliente del lado del servidor y presenta un mensaje de cierre

	Salida:
		Mensaje informando al usuario sobre el cierre de su sesion

	Ver tambien:
		<Terminar_sesion>
*/
if ($PCO_Accion == "Mensaje_cierre_sesion") {
    abrir_ventana($MULTILANG_Atencion, 'panel-primary');
    echo '<strong><font size="3">' . $MULTILANG_SesionCerrada . '</font>
			<table class="table"><tr>
				<td class="texto-gris">
					' . $MULTILANG_TituloCierre . ':<br>
					' . $MULTILANG_ExplicacionCierre . '
				</td>
				<td>
                    <i class="fa fa-chain-broken fa-5x texto-rojo texto-blink"></i>
				</td>
			</tr></table>
            <center>
			<form name="Again" method="POST">
				<input type="Hidden" name="PCO_Accion" value="">
                <a class="btn btn-info" href="javascript:document.Again.submit();"><i class="fa fa-refresh fa-spin"></i> ' . $MULTILANG_Ingresar . '</a>
			</form></center>';
Beispiel #9
0
		</form>
		<a class="btn btn-warning btn-block" href="javascript:document.importacion.submit();"><i class="fa fa-cloud-upload"></i> <?php 
    echo $MULTILANG_FrmImportar;
    ?>
</a>
		<?php 
    cerrar_ventana();
    ?>


  </div>    
  <div class="col-md-8">


<?php 
    abrir_ventana($MULTILANG_FrmTitForms, 'panel-info');
    ?>
				<table class="table table-condensed btn-xs table-unbordered ">
					<thead>
                    <tr>
						<td><b>Id</b></td>
						<td><b><?php 
    echo $MULTILANG_Titulo;
    ?>
</b></td>
						<td><b><?php 
    echo $MULTILANG_TablaDatos;
    ?>
</b></td>
						<td></td>
						<td></td>
Beispiel #10
0
if ($PCO_Accion == "mis_informes") {
    // Carga las opciones del ACORDEON DE INFORMES
    echo '<div align="center"><button onclick="document.core_ver_menu.submit()" class="btn btn-warning"><i class="fa fa-home"></i> ' . $MULTILANG_IrEscritorio . '</button></div><br>';
    // Si el usuario es diferente al administrador agrega condiciones al query
    if ($PCOSESS_LoginUsuario != "admin") {
        $Complemento_tablas = "," . $TablasCore . "usuario_informe";
        $Complemento_condicion = " AND " . $TablasCore . "usuario_informe.informe=" . $TablasCore . "informe.id AND " . $TablasCore . "usuario_informe.usuario='{$PCOSESS_LoginUsuario}'";
        // AND nivel>0
    }
    $resultado = ejecutar_sql("SELECT COUNT(*) as conteo,categoria FROM " . $TablasCore . "informe " . @$Complemento_tablas . " WHERE 1 " . @$Complemento_condicion . " GROUP BY categoria ORDER BY categoria");
    // Imprime las categorias encontradas para el usuario
    while ($registro = $resultado->fetch()) {
        //Crea la categoria en el acordeon
        $seccion_menu_activa = $registro["categoria"];
        $conteo_opciones = $registro["conteo"];
        abrir_ventana($MULTILANG_Informes . ': ' . $seccion_menu_activa . ' (' . $conteo_opciones . ')', 'panel-primary');
        // Busca las opciones dentro de la categoria
        // Si el usuario es diferente al administrador agrega condiciones al query
        if ($PCOSESS_LoginUsuario != "admin") {
            $Complemento_tablas = "," . $TablasCore . "usuario_informe";
            $Complemento_condicion = " AND " . $TablasCore . "usuario_informe.informe=" . $TablasCore . "informe.id AND " . $TablasCore . "usuario_informe.usuario='{$PCOSESS_LoginUsuario}'";
            // AND nivel>0
        }
        $resultado_opciones_acordeon = ejecutar_sql("SELECT * FROM " . $TablasCore . "informe " . @$Complemento_tablas . " WHERE 1 AND categoria='" . $seccion_menu_activa . "' " . @$Complemento_condicion . " ORDER BY titulo");
        while ($registro_opciones_acordeon = $resultado_opciones_acordeon->fetch()) {
            //Determina si el informe es texto o grafico y cambia el icono asociado
            $icono_informe = "fa-file-text-o";
            if ($registro_opciones_acordeon["formato_final"] == "G") {
                $icono_informe = "fa-pie-chart";
            }
            //Determina si el registro fue generado para el admin o un usuario estandar y genera el objeto a enlazar
Beispiel #11
0
            }
        }
    }
    if ($tipo == 2) {
        return is_writable($archivo);
    }
}
function informar_prueba_escritura($path_a_probar)
{
    global $hay_error, $MULTILANG_Correcto, $MULTILANG_Error;
    echo "<li>Probando archivo/carpeta:&nbsp;&nbsp;&nbsp;" . $path_a_probar . "&nbsp;&nbsp;&nbsp;";
    if (puede_escribirse($path_a_probar)) {
        echo '<b><font color="green">[' . $MULTILANG_Correcto . ']</font></b>';
    } else {
        echo '<b><font color="red">[' . $MULTILANG_Error . ']</font></b>';
        $hay_error = 1;
    }
}
include "../core/comunes.php";
include "core/marco_arriba.php";
//Determina paso actual de instalacion
if (!isset($paso)) {
    $paso = -1;
}
abrir_ventana($MULTILANG_Instalacion . ' - ' . $MULTILANG_Paso . ' ' . $paso);
include "paso_" . $paso . ".php";
cerrar_ventana();
include "core/marco_abajo.php";
?>

Beispiel #12
0
            if ($in_string && $sql[$i] == $in_string && $buffer[1] != "\\") {
                $in_string = false;
            } elseif (!$in_string && ($sql[$i] == '"' || $sql[$i] == "'") && (!isset($buffer[0]) || $buffer[0] != "\\")) {
                $in_string = $sql[$i];
            }
            if (isset($buffer[1])) {
                $buffer[0] = $buffer[1];
            }
            $buffer[1] = $sql[$i];
        }
        if (!empty($sql)) {
            $ret[] = $sql;
        }
        return $ret;
    }
    abrir_ventana($MULTILANG_Aplicando . ': ' . $archivo_cargado, 'panel-primary');
    echo '<table class="table table-unbordered table-condensed"><tr><td>
		<u>' . $MULTILANG_ActDesde . ' ' . $version_actual . ' ---> ' . $version_final . ':</u><br><br>';
    $mensaje_error = "";
    //VERIFICAR PERMISOS DE ESCRITURA EN CADA RUTA DEL PARCHE
    //Libreria necesaria para extraer el archivo
    include "inc/pclzip/pclzip.lib.php";
    $archivo = new PclZip($archivo_cargado);
    if ($mensaje_error == "") {
        //Hace una copia de seguridad de los archivos a reemplazar por el parche
        if ($PCO_TipoBackup == "Archivos" || $PCO_TipoBackup == "Archivos+Basedatos") {
            $archivo_destino_backup_app = "bkp/bkp_" . $PCO_FechaOperacion . "-" . date("Hi") . "_app.zip";
            $archivo_backup = new PclZip($archivo_destino_backup_app);
            if (($lista_contenido = $archivo->listContent()) == 0) {
                echo $MULTILANG_ErrLista . ": " . $archivo->errorInfo(true);
            }
Beispiel #13
0
 echo '</td></tr></table><br>';
 // Carga las opciones del ACORDEON
 echo '<div align="center">';
 // Si el usuario es diferente al administrador agrega condiciones al query
 if ($PCOSESS_LoginUsuario != "admin") {
     $Complemento_tablas = "," . $TablasCore . "usuario_menu";
     $Complemento_condicion = " AND " . $TablasCore . "usuario_menu.menu=" . $TablasCore . "menu.id AND " . $TablasCore . "usuario_menu.usuario='{$PCOSESS_LoginUsuario}'";
     // AND nivel>0
 }
 $resultado = ejecutar_sql("SELECT COUNT(*) as conteo,seccion FROM " . $TablasCore . "menu " . @$Complemento_tablas . " WHERE posible_centro=1 " . @$Complemento_condicion . " GROUP BY seccion ORDER BY seccion");
 // Imprime las secciones encontradas para el usuario
 while ($registro = $resultado->fetch()) {
     //Crea la seccion en el acordeon
     $seccion_menu_activa = $registro["seccion"];
     $conteo_opciones = $registro["conteo"];
     abrir_ventana($seccion_menu_activa . ' (' . $conteo_opciones . ')', 'panel-primary');
     // Busca las opciones dentro de la seccion
     // Si el usuario es diferente al administrador agrega condiciones al query
     if ($PCOSESS_LoginUsuario != "admin") {
         $Complemento_tablas = "," . $TablasCore . "usuario_menu";
         $Complemento_condicion = " AND " . $TablasCore . "usuario_menu.menu=" . $TablasCore . "menu.id AND " . $TablasCore . "usuario_menu.usuario='{$PCOSESS_LoginUsuario}'";
         // AND nivel>0
     }
     $resultado_opciones_acordeon = ejecutar_sql("SELECT * FROM " . $TablasCore . "menu " . @$Complemento_tablas . " WHERE posible_centro=1 AND seccion='" . $seccion_menu_activa . "' " . @$Complemento_condicion . " ORDER BY peso");
     while ($registro_opciones_acordeon = $resultado_opciones_acordeon->fetch()) {
         echo '<form action="' . $ArchivoCORE . '" method="post" name="acorde_' . $registro_opciones_acordeon["id"] . '" id="acorde_' . $registro_opciones_acordeon["id"] . '"
                          style="display:inline; height: 0px; border-width: 0px; width: 0px; padding: 0; margin: 0;">';
         // Verifica si se trata de un comando interno o personal y crea formulario y enlace correspondiente (ambos funcionan igual)
         if ($registro_opciones_acordeon["tipo_comando"] == "Interno" || $registro_opciones_acordeon["tipo_comando"] == "Personal") {
             echo '<input type="hidden" name="PCO_Accion" value="' . $registro_opciones_acordeon["comando"] . '"></form>';
         }