recuperer_fond

Een andere zeer belangrijke functie binnen SPIP is recuperer_fond(). Deze wordt gebruikt om de resultaten van het samenstellen van een gegeven skelet weer te geven. Dit is ongeveer hetzelfde als bij <INCLURE{fond=naam} /> gebruikt in skeletten maar dan in PHP.

Het accepteert 1 tot 4 parameters:

  • de naam en het adres van het broncodebestand (zonder extensie)
  • de compilatiecontext (sleutel/waardetabel)
    * een tabel met opties
    * de naam van het verbindingsbestand voor de te gebruiken database

Eenvoudig gebruik

De teruggezonden gegevens zijn de code die door de compilatie-output wordt gegenereerd:

  1. $code = recuperer_fond($name, $context);

Geavanceerde toepassing

De optie raw ingesteld op true biedt, in plaats van alleen de gegenereerde code, een tabel met items berekend door de compilatie, die ook de code bevat (met de sleutel texte).

Wat bevat deze tabel dan? De tekst, het adres van het bronskelet (gekenmerkt door "source"), de bestandsnaam van de PHP-cache die door de compilatie wordt gegenereerd (gekenmerkt door "squelette"), een indicator van de aanwezigheid van PHP in het gegenereerde cache-bestand (gekenmerkt door "process_ins"), en diverse andere waarden in de compilatiecontext (de taal en gegevens worden automatisch toegevoegd omdat ze niet als parameters zijn doorgegeven).

Voorbeeld

Haal de inhoud van een bestand /inclure/inc-liste-articles.html op door de identifier van de gewenste rubriek (rubrique) in de context door te geven:

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

Gebruikmakend van de raw optie:
Dit is een kleine test met skelet "ki.html" dat uitsluitend de tekst "hop" bevat. In dit voorbeeld wordt het resultaat naar een logbestand gestuurd met naam (tmp/test.log).

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

Dit is een voorbeeld van wat in tmp/test.log zal komen staan:

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

Auteur hanjo Gepubliceerd op:

Vertalingen: English, français, Nederlands