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.
- Headless Drupal: Using Drupal’s API to Batch Script Your Drupal Site.
http://www.stonemind.net/blog/2009/01/20/headless-drupal-using-drupals-api-to-batch-script-your-drupal-site/
Muy útil. Gracias!
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