insert_head_css

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.

Auteur JLuc, Matthieu Marcillaud Publié le : Mis à jour : 12/03/23

Traductions : English, français