Le pipeline insert_head_css
permet à des plugins d’insérer les fichiers CSS qui leur sont nécessaires, au moment de l’appel de la balise #INSERT_HEAD_CSS
si présente, sinon en début du résultat de #INSERT_HEAD
. Cela permet à un squelette d’indiquer l’emplacement des CSS supplémentaires chargées.
Il est appelé simplement par :
return pipeline('insert_head_css', '');
Rq : pour personnaliser les CSS de l’espace privé, il faut plutôt définir un squelette style_prive_plugin_[prefixeplugin].html
Exemple
Plutôt qu’utiliser generer_url_public
, il est recommandé d’utiliser produire_fond_statique
(voir #PRODUIRE).
C’est ce que fait le plugin multilang
dans l’extrait de code simplifié suivant :
function multilang_insert_head_css($flux) {
// ...
$css = produire_fond_statique('multilang.css');
$flux .= '<link rel="stylesheet" href="'.$css.'" type="text/css" media="all" />';
return $flux;
}
C’est aussi ce que fait l’extension « Porte Plume » pour ajouter plusieurs fichiers CSS. Dans l’extrait simplifié ci-après, le second fichier CSS est issu de l’évaluation d’un squelette SPIP avec produire_fond_statique
.
function porte_plume_insert_head_css($flux = '',) {
$css = timestamp(direction_css(find_in_path('css/barre_outils.css'), lang_dir()));
include_spip('porte_plume_fonctions');
$hash = md5(barre_outils_css_icones());
$css_icones = produire_fond_statique('css/barre_outils_icones.css', ['hash' => $hash]);
$flux .=
"<link rel='stylesheet' type='text/css' media='all' href='$css' />\n"
."<link rel='stylesheet' type='text/css' media='all' href='$css_icones' />\n";
}
return $flux;
}
Rq : produire_fond_statique
ajoute un timestamp au fichier produit, et il est donc inutile d’appliquer en plus la fonction timestamp
sur le résultat.