recuperer_fond

Autre fonction extrêmement importante de SPIP, recuperer_fond() permet de retourner le résultat du calcul d’un squelette donné. C’est en quelque sorte l’équivalent de <INCLURE{fond=nom} /> des squelettes mais en PHP.

Elle prend 1 à 4 paramètres :

  • nom et adresse du fond (sans extension)
  • contexte de compilation (tableau clé/valeur)
  • tableau d’options
  • nom du fichier de connexion à la base de données à utiliser

Utilisation simple

Le retour est le code généré par le résultat de la compilation :

$code = recuperer_fond($nom, $contexte);

Utilisation avancée

L’option raw définie à true permet, plutôt que de récupérer simplement le code généré, d’obtenir un tableau d’éléments résultants de la compilation, dont le code (clé texte).

Que contient donc ce tableau ? Le texte, l’adresse de la source du squelette (dans « source »), le nom du fichier de cache PHP généré par la compilation (dans « squelette »), un indicateur de présence de PHP dans le fichier de cache généré (dans « process_ins »), divers autres valeurs dont le contexte de compilation (la langue et la date s’ajoutent automatiquement puisqu’on ne les avait pas transmises).

Exemple

Récupérer le contenu d’un fichier /inclure/inc-liste-articles.html en transmettant dans le contexte l’identifiant de la rubrique voulue :

$code = recuperer_fond("inclure/inc-liste-articles", array(
    'id_rubrique' => $id_rubrique,
));

Option raw :
Voici un petit test avec un squelette « ki.html » contenant simplement le texte "hop". Ici, le résultat est envoyé dans un fichier de log (tmp/test.log).

$infos = recuperer_fond('ki',array(),array('raw'=>true));
spip_log($infos,'test');

Résultat dans tmp/test.log :

array (
  'texte' => 'hop
'
,
  'squelette' => 'html_1595b873738eb5964ecdf1955e8da3d2',
  'source' => 'sites/tipi.magraine.net/squelettes/ki.html',
  'process_ins' => 'html',
  'invalideurs' =>
  array (
    'cache' => '',
  ),
  'entetes' =>
  array (
    'X-Spip-Cache' => 36000,
  ),
  'duree' => 0,
  'contexte' =>
  array (
    'lang' => 'en',
    'date' => '2009-01-05 14:10:03',
    'date_redac' => '2009-01-05 14:10:03',
  ),
)

Auteur Matthieu Marcillaud Publié le : Mis à jour : 24/11/09

Traductions : English, français