Пример #1
0
<?php

include "traduccion.php";
include "funciones.php";
echo "que locales hay", mprint(tIdiomaLocale(), 1, false), "\n";
Пример #2
0
/**
 * Consulta de varios registros en forma tabular 
 * @param $aCampos   definiciones DD
 * @param $cSQL      consulta SQL sin LIMIT
 * @param $aOpciones menu para cada registro 
 */
function ddlib_consulta($aCampos, $cSQL, $aOpciones = "")
{
    /*
       $aCampos array de campos
         campos
            acceso
            cabecera
            order
            campo
            tipo
            formato ( si no existe, se usa tipo ).
            styling
       $cSQL
         una SQL completa, o desde FROM, o nombre  de la tabla
       $apciones
         titulo
         tituloSinHTML
         menu
         opciones (array o string), 
         		requiere opcionesId
         		opcional opcionesSeparador
         queryString
         paginacion
         registrosPorPagina 20
         paginas 10.
         tablaClase
         tablaID
         order   $aEstado["order"]
         orderby  $aEstado["orderby"]
    */
    // titulo
    $cResul = "";
    if (isset($aOpciones["titulo"])) {
        $cResul .= $aOpciones["tituloSinHTML"] == true ? $aOpciones["titulo"] : "<h2><span>{$aOpciones[titulo]}</span></h2>\n";
    }
    // incluir el menu de Opciones
    if (isset($aOpciones["menu"])) {
        $aMenu = $aOpciones["menu"];
        if (is_array($aMenu)) {
            foreach ($aMenu as $unaOpcion) {
                $lista .= "<li>{$unaOpcion}</li>\n";
            }
        } else {
            $lista .= "<li>{$aMenu}</li>\n";
        }
        $cResul .= "<div class='menuConsulta'>\n<ul>\n{$lista}</ul></div>";
    }
    // queryString
    $querystring = por_defecto($aOpciones["querystring"], $_SERVER["QUERY_STRING"]);
    // Calcular cabecera las cabecera de la tabla
    $lHayOpciones = isset($aOpciones["opciones"]);
    // Ordenar los campos
    global $aEstado;
    $order = isset($_REQUEST["order"]) ? $aEstado["order"] : por_defecto($aOpciones["order"], 0);
    $orderby = por_defecto($aEstado["orderby"], $aOpciones["orderby"], "ASC");
    // completar SELECT
    if (stripos($cSQL, "SELECT ") !== 0) {
        foreach ($aCampos as $dd) {
            if (isset($dd["campo"])) {
                if (preg_match("/^(funcion |serializ[ea]|tcampo |funcionget)/i", $dd["campo"])) {
                    $campos = array("*");
                    break;
                } else {
                    $campos[] = $dd["campo"];
                }
            } elseif (isset($dd["campos"])) {
                $campos = array_merge($campos, $dd["campos"]);
            }
        }
        $cSQL = "SELECT " . implode(",", $campos) . (stripos($cSQL, "FROM ") === 0 ? " " . $cSQL : " FROM {$cSQL}");
    }
    if (stripos($cSQL, "order by")) {
        // NO PUEDE SER cero
        //if (preg_match ("#order by (.*)( LIMIT)?#uim", $cSQL, $aTemp )) Esta seria la buena
        if (preg_match("#order by ([^ ,]*)#uim", $cSQL, $aTemp)) {
            $leyenda = $aTemp[1];
        }
    } elseif (isset($aCampos[$order]["order"])) {
        $cTempOrder = $aCampos[$order]["order"];
        if ($cTempOrder == 1) {
            $cTempOrder = $aCampos[$order]["campo"];
        }
        $cSQL .= sql_order($cTempOrder, $orderby == "ASC" ? " ASC" : " DESC");
        $leyenda = $cTempOrder;
        // @TODO ordenes de varios campos
    }
    // Paginación.
    if (!isset($aOpciones['paginacion']) || !$aOpciones['paginacion']) {
        $pags = por_defecto($aOpciones["paginas"], 10);
        $regs = por_defecto($aOpciones["registrosPorPagina"], 20);
        $aPaginacion = paginacion($cSQL, $leyenda, $regs, $pags, tIdiomaLocale("paginacion"));
    } else {
        $aPaginacion = array("", "", $cSQL, "");
    }
    // calcular la cabecera (pie incluido ) y luego el cuerpo.
    $atributosTabla = "class='" . por_defecto($aOpciones["tablaClase"], "consulta") . "'";
    if (isset($aOpciones["tablaID"])) {
        $atributosTabla .= " id='{$aOpciones[tablaID]}";
    }
    $cResul .= "\n<table {$atributosTabla}>\n";
    $cResul .= _ddlib_consulta_cabecera($aCampos, $querystring, $lHayOpciones, $aPaginacion[3], $order, $orderby);
    $cResul .= _ddlib_consulta_cuerpo($aCampos, $aPaginacion[2], $aOpciones);
    $cResul .= "\n</table>\n";
    return $cResul;
}