Récupérer (extraire) les données d'un noeud
Dans Drupal, il est tout à fait possible d'extraire n'importe quelles données d'un noeud (Page, Article etc etc) grâce aux API Drupal.
Quelles sont les données récupérables :
Exemple avec un article test créé spécialement.
Pour afficher cette description, il suffit d'utiliser l'API node_load en indiquant le NID du noeud concerné :
<?php
$nid = 412;
$node = node_load($nid);
print_r($node);
?>
Ce qui donne :
stdClass Object ( [vid] => 431 [uid] => 0 [title] => Article vide pour test [log] => [status] => 0 [comment] => 2 [promote] => 0 [sticky] => 0 [nid] => 412 [type] => story [language] => fr [created] => 1334738152 [changed] => 1386527877 [tnid] => 0 [translate] => 0 [revision_timestamp] => 1386527877 [revision_uid] => 1 [taxonomy_vocabulary_2] => Array ( ) [body] => Array ( [und] => Array ( [0] => Array ( [value] =>Contenu vide pour test
[summary] => [format] => 2 [safe_value] =>Contenu vide pour test
[safe_summary] => ) ) ) [rdf_mapping] => Array ( [rdftype] => Array ( [0] => sioc:Item [1] => foaf:Document ) [title] => Array ( [predicates] => Array ( [0] => dc:title ) ) [created] => Array ( [predicates] => Array ( [0] => dc:date [1] => dc:created ) [datatype] => xsd:dateTime [callback] => date_iso8601 ) [changed] => Array ( [predicates] => Array ( [0] => dc:modified ) [datatype] => xsd:dateTime [callback] => date_iso8601 ) [body] => Array ( [predicates] => Array ( [0] => content:encoded ) ) [uid] => Array ( [predicates] => Array ( [0] => sioc:has_creator ) [type] => rel ) [name] => Array ( [predicates] => Array ( [0] => foaf:name ) ) [comment_count] => Array ( [predicates] => Array ( [0] => sioc:num_replies ) [datatype] => xsd:integer ) [last_activity] => Array ( [predicates] => Array ( [0] => sioc:last_activity_date ) [datatype] => xsd:dateTime [callback] => date_iso8601 ) ) [cid] => 0 [last_comment_timestamp] => 1334738152 [last_comment_name] => [last_comment_uid] => 1 [comment_count] => 0 [name] => [picture] => 0 [data] => )
Si on souhaite afficher la date de création du noeud, il suffit d'écrire
<?php
$nid = 412;
$node = node_load($nid);
$timestamp = $node->created;
$date = date("d-m-Y", $timestamp);
echo $date;
?>
Ce qui donne :
18-04-2012
Pour afficher le body
<?php
$nid = 412;
$node=node_load($nid);
print $node->body;
?>
Ce qui donne :
Array