From 71ffbc0fe11b7586fdcd29bda37e76ab4ecc7050 Mon Sep 17 00:00:00 2001 From: nicod Date: Fri, 26 Feb 2021 18:39:49 +0100 Subject: [PATCH] =?UTF-8?q?Charger=20syst=C3=A9matiquement=20css=20et=20js?= =?UTF-8?q?=20sans=20tester=20les=20types=20de=20saisies=20pour=20(notamme?= =?UTF-8?q?nt)=20b=C3=A9n=C3=A9ficier=20du=20compresseur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- paquet.xml | 2 +- saisies_pipelines.php | 118 +++++++++++++++++------------------------- 2 files changed, 48 insertions(+), 72 deletions(-) diff --git a/paquet.xml b/paquet.xml index dfafce09..3268379a 100644 --- a/paquet.xml +++ b/paquet.xml @@ -17,8 +17,8 @@ + - diff --git a/saisies_pipelines.php b/saisies_pipelines.php index 133ce0d6..1612700c 100644 --- a/saisies_pipelines.php +++ b/saisies_pipelines.php @@ -43,86 +43,62 @@ function saisies_header_prive($flux) { } /** - * Ajoute les scripts JS et CSS de saisies dans l'espace public - * - * Ajoute également de quoi gérer le datepicker de la saisie date si - * celle-ci est utilisée dans la page. - * - * @param string $flux - * @return string -**/ -function saisies_affichage_final($flux) { - if ( - $GLOBALS['html'] // si c'est bien du HTML - and ($p = strpos($flux, '')) !== false // et qu'on a au moins une saisie - and strpos($flux, ' quelque part - ) { - // On insère la CSS devant le premier trouvé - if (!$pi = strpos($flux, ' de saisies - } - include_spip('inc/filtres'); - $css = produire_fond_statique('saisies.css'); - $ins_css = "\n\n"; + * Insérer automatiquement les scripts JS et CSS de saisies dans toutes les pages de l'espace public + * @param array $flux + * @return array $flux modifié + **/ +function saisies_insert_head($flux) { - //si on a une saisie de type date, on va charger les css de jquery_ui - if ( - (!defined('_JQUERYUI_CSS_NON') or !boolval(_JQUERYUI_CSS_NON)) - and strpos($flux, 'saisie_date') !==false - ) { - include_spip('jqueryui_pipelines'); - if (function_exists('jqueryui_dependances')) { - $ui_plugins = jqueryui_dependances(array('jquery.ui.datepicker')); - $theme_css = 'jquery.ui.theme'; - $ui_css_dir = 'css'; - // compatibilité SPIP 3.1 et jQuery UI 1.11 - $version = explode('.', $GLOBALS['spip_version_branche']); - if ($version[0] > 3 or ($version[0] == 3 and $version[1] > 0)) { - $theme_css = 'theme'; - $ui_css_dir = 'css/ui'; - } - array_push($ui_plugins, $theme_css); - foreach ($ui_plugins as $ui_plug) { - // compatibilité pour les versions < SPIP 3.2 - if ($version[0] < 3 or ($version[0] == 3 and $version[1] < 2)) { - $ui_plug_css = find_in_path("$ui_css_dir/$ui_plug.css"); - if (strpos($flux, "$ui_css_dir/$ui_plug.css") === false) {// si pas déjà chargé - $ins_css .= "\n\n"; - } - } - } - // compatibilité SPIP 3.2 et jQuery UI 1.12 - if ($version[0] == 3 and $version[1] > 1) { - $ins_css .= "\n\n"; + // ajout des CSS au début du + + include_spip('inc/filtres'); + $css = produire_fond_statique('saisies.css'); + $ins_css = "\n\n"; + // les css de jquery_ui + if (!defined('_JQUERYUI_CSS_NON') or !boolval(_JQUERYUI_CSS_NON)) { + include_spip('jqueryui_pipelines'); + if (function_exists('jqueryui_dependances')) { + $ui_plugins = jqueryui_dependances(array('jquery.ui.datepicker')); + $theme_css = 'jquery.ui.theme'; + $ui_css_dir = 'css'; + // compatibilité SPIP 3.1 et jQuery UI 1.11 + $version = explode('.', $GLOBALS['spip_version_branche']); + if ($version[0] > 3 or ($version[0] == 3 and $version[1] > 0)) { + $theme_css = 'theme'; + $ui_css_dir = 'css/ui'; + } + array_push($ui_plugins, $theme_css); + foreach ($ui_plugins as $ui_plug) { + // compatibilité pour les versions < SPIP 3.2 + if ($version[0] < 3 or ($version[0] == 3 and $version[1] < 2)) { + $ui_plug_css = find_in_path("$ui_css_dir/$ui_plug.css"); + if (strpos($flux, "$ui_css_dir/$ui_plug.css") === false) {// si pas déjà chargé + $ins_css .= "\n\n"; + } } } - } - - //si on a une saisie de type textarea avec maxlength, on va charger un script - if (strpos($flux, 'textarea') !==false && strpos($flux, 'maxlength') !==false) { - // On insère le JS à la fin du - $pos_head = strpos($flux, ' - foreach (array('javascript/saisies.js', 'javascript/saisies_afficher_si.js') as $script) { - $pos_head = strpos($flux, ' 1) { + $ins_css .= "\n\n"; + } } } + $flux = $ins_css . $flux; + // ajout du JS à la fin du + + $js = produire_fond_statique('javascript/textarea-counter/textarea-counter.js'); + $ins_js = "\n\n"; + $ins_js .= afficher_si_definir_fonctions(); + foreach (array('javascript/saisies.js', 'javascript/saisies_afficher_si.js') as $script) { + $js = timestamp(find_in_path($script)); + $ins_js .= "\n\n"; + } + $flux = $flux . $ins_js; + return $flux; } - /** * Déclarer automatiquement les champs d'un formulaire CVT qui déclare des saisies *