Como obtener los nodos de un tipo específico en Drupal 6 desde API

Introducción.

En algunos casos puede ser útil obtener desde un fragmento de código PHP utilizando el API oficial, los nodos de un portal basado en Drupal 6 que correspondan con un tipo específico (file, story, event, page, …).  Esto se puede hacer fácilmente de la siguiente manera.

Procedimiento.

Obtener el listado con la información general de los nodos del tipo específico.  Para esto se consulta la tabla node que contiene la siguiente información de los nodos.

nid         int(10)           # ID del nodo.
vid         int(10)           # ID de la versión del nodo.
type        varchar(32)       # Tipo del nodo.
title       varchar(255)      # Título.
uid         int(11)           # ID del propietario.
status      int(11)           # Estado (publicado = 1; sin publicar/oculto = 0)
created     int(11)           # Timestamp de la creación del nodo.
changed     int(11)           # Timestamp de la modificación del nodo.
comment     int(11)           # Estado de comentarios (desactivados = 0; sólo lectura = 1; activados = 2).
promote     int(11)           # Promocionado a la página principal (no = 0; si = 1).
moderate    int(11)           # Moderado
(no = 0; si = 1).
sticky      int(11)           # Pegajoso (no = 0; si = 1).
language    varchar(12)       # Código del idioma.
tnid        int(10)
translate   int(11)

La consulta básica se puede realizar de la siguiente manera.

$sql = "SELECT nid
        FROM {node}
        WHERE type = 'TIPO_DE_NODO' AND
              status = 1
        ORDER BY created DESC";

$results = db_query($sql);

Posteriormente se iteran los resultados obtenidos de la consulta y se carga la información completa de cada uno de los nodos.

while ($result = db_fetch_object($results))
{
    $node = node_load($result -> nid);
}

El contenido del nodo recuperado dependerá en cierta medida de los módulos instalados que alteran su estructura.  Para mostrar por ejemplo el título, la fecha de creación, el mensaje y la fecha de modificación de una noticia se utiliza el siguiente fragmento.

echo 'Titulo: ' . $node -> title . '<br />';
echo 'Fecha: ' . format_date($node->created) . '<br />';
echo 'Mensaje: ' . $node->body . '<br /><br /><hr /><br />';
echo 'changed on: ' . format_date($node->changed, 'custom', 'Y-m-d H:i:s O') . '<br />';

Enlaces.

2 thoughts on “Como obtener los nodos de un tipo específico en Drupal 6 desde API”

  1. Gracias me ayudo
    Poniendo el siguiente código al final de .tpl.php nos muestra las variables en una arreglo asociativo y podemos imprimir directamente.

    <?php
    print '';
    print_r ($node);
    print '';
    ?>

    Saludos

Leave a Reply

Your email address will not be published. Required fields are marked *