Programmer avec SPIP 3.0
Documentation technique sur SPIP 3.0

> > > > recuperer_fond

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 :

  1. $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 :

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

Télécharger

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).

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

Télécharger

Résultat dans tmp/test.log :

  1. 'texte' => 'hop
  2. ',
  3. 'squelette' => 'html_1595b873738eb5964ecdf1955e8da3d2',
  4. 'source' => 'sites/tipi.magraine.net/squelettes/ki.html',
  5. 'process_ins' => 'html',
  6. 'invalideurs' =>
  7. 'cache' => '',
  8. ),
  9. 'entetes' =>
  10. 'X-Spip-Cache' => 36000,
  11. ),
  12. 'duree' => 0,
  13. 'contexte' =>
  14. 'lang' => 'en',
  15. 'date' => '2009-01-05 14:10:03',
  16. 'date_redac' => '2009-01-05 14:10:03',
  17. ),
  18. )

Télécharger