$lista_bucle_tipos = array_keys($public_rel_tipos); } // añade estados si está definido $lista_estados = array(); for (reset($public_estados_visibles); $estado_pub = key($public_estados_visibles); next($public_estados_visibles)) { if ($_GET["E_{$estado_pub}"] == 1) { array_push($lista_estados, $estado_pub); } } // Para cada una de los tipos, haz la consulta de publicaciones // de esta forma conseguimos la ordenación deseada en los tipos for (reset($lista_bucle_tipos); $tipo_consultado = current($lista_bucle_tipos); next($lista_bucle_tipos)) { // construye consulta de obtencion de publicaciones según los parámetros // de busqueda $consulta_id = "SELECT DISTINCT(id_referencia), COUNT(id_campo_ref), " . "tipo_bibtex, id_ref_bibtex, idioma, estado, link_referencia, " . "tipo_link FROM referencias LEFT JOIN ref_relacion " . "ON referencias.id_referencia=ref_relacion.id_ref " . "LEFT JOIN ref_campos " . "ON ref_relacion.id_campos=ref_campos.id_campo_ref "; $condicion_busqueda = "WHERE " . AUX_condicion_tipos($tipo_consultado) . AUX_condicion_bibtex($_GET['id_ref_bibtex']) . AUX_condicion_estado($lista_estados) . AUX_condicion_campos($lista_cond_sin); $agrupacion = "GROUP BY id_referencia "; $ordenacion = "ORDER BY fecha_publicacion DESC"; // Construye consulta completa $consulta_id .= $condicion_busqueda . $agrupacion . $ordenacion; // realiza consulta de seleccion de id's $resultado = mysql_query($consulta_id, $conexion); if (!$resultado) { echo "Error al realizar la consulta : " . $consulta_id . "\n"; } else { // para cada id obtenido while ($id_referencia = mysql_fetch_row($resultado)) { // no imprimas valor si el numero de ocurrencias // es menor del esperado y la lógica es AND if ($id_referencia[1] < $numero_ocurrencias and $_GET['logica'] == 'AND') { continue;
} // Carga el menu $_content->parse('content.menu'); } //-------------------------------------------------------------------- // CONSULTA DE TIPOS DE PUBLICACION //-------------------------------------------------------------------- $visible = $_SESSION['privilegios'] == INVITADO ? 1 : 0; // contador de nº de publicaciones $numero_publicaciones = 0; // definicion de consultas de la base de datos $consulta_gen = "SELECT COUNT(id_referencia) AS numero " . "FROM referencias " . "WHERE visible >= {$visible} AND "; // bucle de consulta de cada elemento de la lista. for (reset($public_rel_tipos); $tipo_consultado = key($public_rel_tipos); next($public_rel_tipos)) { // construye consulta para el tipo $consulta_tipo = $consulta_gen . AUX_condicion_tipos($tipo_consultado); // realiza consulta $resultado_tipo = mysql_query($consulta_tipo); // Miramos si la consulta se produce correctamente if ($resultado_tipo = mysql_query($consulta_tipo)) { $numero_registros = mysql_fetch_array($resultado_tipo); // Si el tipo de publicacion tiene alguna entrada if ($numero_registros['numero'] > 0) { // añade valor al numero de publicaciones $numero_publicaciones += $numero_registros['numero']; // si hay más de uno, inserta elemento en la tabla $valores_lista['VAL1'] = $tipo_consultado; $valores_lista['VAL2'] = $public_tipos_refer[$tipo_consultado] . " ({$numero_registros['numero']})"; // metelos en el directorio de la página $_content->assign('LISTA1', $valores_lista); $_content->parse('content.publicaciones.tipo');