affichage_final

Ce pipeline est appelé au moment de l’envoi du contenu d’une page au navigateur. Il reçoit un texte (la page HTML le plus souvent) qu’il peut compléter. Les modifications ne sont pas mises en cache par SPIP.

echo pipeline('affichage_final', $page['texte']);

C’est un pipeline fréquemment utilisé par les plugins permettant une grande variété d’actions. Cependant, comme le résultat n’est pas mis en cache, et que le pipeline est appelé à chaque page affichée, il faut être prudent et le réserver à des utilisations peu gourmandes en ressources.

Exemple

Le plugin « XSPF », qui permet de réaliser des galeries multimédias, ajoute un javascript uniquement sur les pages qui le nécessitent, de cette façon :

function xspf_affichage_final($page) {
    // on regarde rapidement si la page a des classes player
    if (strpos($page, 'class="xspf_player"')===FALSE)
        return $page;

    // Si oui on ajoute le js de swfobject
    $jsFile = find_in_path('lib/swfobject/swfobject.js');
    $head = "<script src='$jsFile' type='text/javascript'></script>";
    $pos_head = strpos($page, '</head>');
    return substr_replace($page, $head, $pos_head, 0);
}

Le plugin « target » lui, ouvre les liens extérieurs dans une nouvelle fenêtre (oui, c’est très mal !) :

function target_affichage_final($texte) {       
    $texte = str_replace('spip_out"', 'spip_out" target="_blank"', $texte);
    $texte = str_replace('rel="directory"', 'rel="directory" class="spip_out" target="_blank"', $texte);
    $texte = str_replace('spip_glossaire"', 'spip_glossaire" target="_blank"', $texte);    
    return $texte;
}

Auteur Matthieu Marcillaud Publié le : Mis à jour : 01/02/10

Traductions : English, français