Chargement en cours compresseur_fonctions.php +2 −0 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -37,6 +37,7 @@ $GLOBALS['spip_matrice']['compresseur_embarquer_images_css'] = 'inc/compresseur_ * - Chemin vers un fichier ayant le contenu minifié (si source est un fichier) */ function minifier($source, $format = null) { $contenu = null; $maybe_file = false; if ( strpos($source, "\n") === false Chargement en cours Chargement en cours @@ -181,6 +182,7 @@ function compacte_head($flux) { * URL du fichier sinon (la source) */ function filtre_embarque_fichier($src, $base = '', $maxsize = 4096) { $contenu = null; static $mime = []; if (strpos($src, '?') !== false) { Chargement en cours inc/compresseur.php +5 −2 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -37,6 +37,7 @@ if (!defined('_ECRIRE_INC_VERSION')) { * Code HTML de la balise <script> */ function compresseur_ecrire_balise_js_dist(&$flux, $pos, $src, $comments = '') { $jQl = null; $src = timestamp($src); // option chargement JS async par jQl if (defined('_JS_ASYNC_LOAD') and !test_espace_prive()) { Chargement en cours Chargement en cours @@ -206,13 +207,13 @@ function compacte_head_files($flux, $format) { include_spip('inc/compresseur_concatener'); include_spip('inc/compresseur_minifier'); if ( list($src, $comms) = concatener_fichiers($files, $format, $callbacks) [$src, $comms] = concatener_fichiers($files, $format, $callbacks) and $src ) { $compacte_ecrire_balise = charger_fonction("compresseur_ecrire_balise_$format", ''); $files = array_keys($files); // retrouver la position du premier fichier compacte $pos = strpos($flux, reset($files)); $pos = strpos($flux, (string) reset($files)); // supprimer tous les fichiers compactes du flux $flux = str_replace($files, '', $flux); // inserer la balise (deleguer a la fonction, en lui donnant le necessaire) Chargement en cours Chargement en cours @@ -255,6 +256,7 @@ function compresseur_liste_fonctions_prepare_css() { * @return bool|int|null|string */ function &compresseur_callback_prepare_css(&$css, $is_inline = false, $fonctions = null) { $contenu = []; if ($is_inline) { return compresseur_callback_prepare_css_inline($css, $is_inline); } Chargement en cours Chargement en cours @@ -434,6 +436,7 @@ function css_resolve_atimport($contenu, $url_base, $filename) { * @return bool|string */ function css_regroup_atimport($nom_tmp, $nom) { $contenu = null; lire_fichier($nom_tmp, $contenu); if (!$contenu or strpos($contenu, '@import') === false) { return false; Chargement en cours inc/compresseur_concatener.php +7 −7 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -49,8 +49,8 @@ function concatener_fichiers($files, $format = 'js', $callbacks = []) { $files = [$files]; } if (count($files)) { $callback_min = isset($callbacks['each_min']) ? $callbacks['each_min'] : 'concatener_callback_identite'; $callback_pre = isset($callbacks['each_pre']) ? $callbacks['each_pre'] : ''; $callback_min = $callbacks['each_min'] ?? 'concatener_callback_identite'; $callback_pre = $callbacks['each_pre'] ?? ''; $url_base = self('&'); // on trie la liste de files pour calculer le nom Chargement en cours @@ -58,7 +58,7 @@ function concatener_fichiers($files, $format = 'js', $callbacks = []) { // si on renome une url a la volee pour enlever le var_mode=recalcul // mais attention, il faut garder l'ordre initial pour la minification elle meme ! $dir = sous_repertoire(_DIR_VAR, 'cache-' . $format); list($nom_fichier, $lastmodified) = concatener_nom_fichier_concat($dir, $files, $callbacks, $format); [$nom_fichier, $lastmodified] = concatener_nom_fichier_concat($dir, $files, $callbacks, $format); if ( (defined('_VAR_MODE') and _VAR_MODE == 'recalcul') or !file_exists($nom_fichier) Chargement en cours Chargement en cours @@ -129,14 +129,14 @@ function concatener_fichiers($files, $format = 'js', $callbacks = []) { // donc jamais utile if ($files2) { $files = $files2; list($nom_fichier, $lastmodified) = concatener_nom_fichier_concat($dir, $files, $callbacks, $format); [$nom_fichier, $lastmodified] = concatener_nom_fichier_concat($dir, $files, $callbacks, $format); } $nom_fichier_tmp = $nom_fichier; $final_callback = (isset($callbacks['all_min']) ? $callbacks['all_min'] : false); $final_callback = ($callbacks['all_min'] ?? false); if ($final_callback) { unset($callbacks['all_min']); list($nom_fichier_tmp, $lastmodified) = concatener_nom_fichier_concat($dir, $files, $callbacks, $format); [$nom_fichier_tmp, $lastmodified] = concatener_nom_fichier_concat($dir, $files, $callbacks, $format); } // ecrire ecrire_fichier_calcule_si_modifie($nom_fichier_tmp, $concatenation); Chargement en cours Chargement en cours @@ -186,7 +186,7 @@ function concatener_nom_fichier_concat($dir, $files, $callbacks, $format) { } $file_wo_timestamp[] = $file; } $nom_fichier_concat = $dir . md5(json_encode($file_wo_timestamp) . json_encode($callbacks)) . ".$format"; $nom_fichier_concat = $dir . md5(json_encode($file_wo_timestamp, JSON_THROW_ON_ERROR) . json_encode($callbacks, JSON_THROW_ON_ERROR)) . ".$format"; return [$nom_fichier_concat, $lastmodified]; } Chargement en cours inc/compresseur_embarquer.php +2 −4 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -38,7 +38,7 @@ if (!defined('_ECRIRE_INC_VERSION')) { **/ function compresseur_embarquer_images_css($contenu, $source, $source_file = null) { #$path = suivre_lien(url_absolue($source),'./'); $base = ($source_file ? $source_file : $source); $base = ($source_file ?: $source); $base = ((substr($base, -1) == '/') ? $base : (dirname($base) . '/')); $filtre_embarque_fichier = chercher_filtre('filtre_embarque_fichier'); if (!defined('_CSS_EMBARQUE_FICHIER_MAX_SIZE')) { Chargement en cours @@ -47,9 +47,7 @@ function compresseur_embarquer_images_css($contenu, $source, $source_file = null return preg_replace_callback( ",url\s*\(\s*['\"]?([^'\"/][^:]*[.](png|gif|jpg))['\"]?\s*\),Uims", function ($x) use ($filtre_embarque_fichier, $base) { return 'url("' . $filtre_embarque_fichier($x[1], $base, _CSS_EMBARQUE_FICHIER_MAX_SIZE) . '")'; }, fn($x) => 'url("' . $filtre_embarque_fichier($x[1], $base, _CSS_EMBARQUE_FICHIER_MAX_SIZE) . '")', $contenu ); } Chargement en cours tests/compacte_css.php +9 −9 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -23,10 +23,10 @@ $ok = true; include_spip('inc/compresseur_minifier'); include_spip('inc/filtres'); lire_fichier(dirname(__FILE__) . '/css/source.css', $css_code); lire_fichier(__DIR__ . '/css/source.css', $css_code); // test du compacteur simple lire_fichier(dirname(__FILE__) . '/css/expected.css', $expected); lire_fichier(__DIR__ . '/css/expected.css', $expected); $compacte = minifier_css($css_code); if (rtrim($compacte) != rtrim($expected)) { Chargement en cours @@ -42,14 +42,14 @@ if (rtrim($compacte) != rtrim($expected)) { $ok = false; } lire_fichier(dirname(__FILE__) . '/css/expected_more.css', $expected); lire_fichier(__DIR__ . '/css/expected_more.css', $expected); $compacte = minifier_css($css_code, array()); if (rtrim($compacte) != rtrim($expected)) { erreur('minifier_css(array())', $compacte, $expected); $ok = false; } lire_fichier(dirname(__FILE__) . '/css/expected_more_screen.css', $expected); lire_fichier(__DIR__ . '/css/expected_more_screen.css', $expected); $compacte = minifier_css($css_code, 'screen'); if (rtrim($compacte) != rtrim($expected)) { erreur("minifier_css('screen')", $compacte, $expected); Chargement en cours @@ -62,24 +62,24 @@ if (rtrim($compacte) != rtrim($expected)) { $ok = false; } lire_fichier(dirname(__FILE__) . '/css/expected_highest_screen.css', $expected); lire_fichier(__DIR__ . '/css/expected_highest_screen.css', $expected); $compacte = minifier_css($css_code, array('media' => 'screen', 'template' => 'highest')); if (rtrim($compacte) != rtrim($expected)) { erreur("minifier_css(array('media'=>'screen','template'=>'highest'))", $compacte, $expected); $ok = false; } lire_fichier(dirname(__FILE__) . '/css/source_simple.css', $css_code); lire_fichier(__DIR__ . '/css/source_simple.css', $css_code); lire_fichier(dirname(__FILE__) . '/css/expected_simple.css', $expected); lire_fichier(__DIR__ . '/css/expected_simple.css', $expected); $compacte = minifier_css($css_code, 'screen'); if (rtrim($compacte) != rtrim($expected)) { erreur("minifier_css('screen')", $compacte, $expected); $ok = false; } lire_fichier(dirname(__FILE__) . '/css/expected_url_abs.css', $expected); lire_fichier(dirname(__FILE__) . '/css/source_url_abs.css', $source); lire_fichier(__DIR__ . '/css/expected_url_abs.css', $expected); lire_fichier(__DIR__ . '/css/source_url_abs.css', $source); $compacte = urls_absolues_css($source, 'http://example.org/squelettes/source.css'); if (rtrim($compacte) != rtrim($expected)) { erreur('urls_absolues_css()', $compacte, $expected); Chargement en cours Chargement en cours
compresseur_fonctions.php +2 −0 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -37,6 +37,7 @@ $GLOBALS['spip_matrice']['compresseur_embarquer_images_css'] = 'inc/compresseur_ * - Chemin vers un fichier ayant le contenu minifié (si source est un fichier) */ function minifier($source, $format = null) { $contenu = null; $maybe_file = false; if ( strpos($source, "\n") === false Chargement en cours Chargement en cours @@ -181,6 +182,7 @@ function compacte_head($flux) { * URL du fichier sinon (la source) */ function filtre_embarque_fichier($src, $base = '', $maxsize = 4096) { $contenu = null; static $mime = []; if (strpos($src, '?') !== false) { Chargement en cours
inc/compresseur.php +5 −2 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -37,6 +37,7 @@ if (!defined('_ECRIRE_INC_VERSION')) { * Code HTML de la balise <script> */ function compresseur_ecrire_balise_js_dist(&$flux, $pos, $src, $comments = '') { $jQl = null; $src = timestamp($src); // option chargement JS async par jQl if (defined('_JS_ASYNC_LOAD') and !test_espace_prive()) { Chargement en cours Chargement en cours @@ -206,13 +207,13 @@ function compacte_head_files($flux, $format) { include_spip('inc/compresseur_concatener'); include_spip('inc/compresseur_minifier'); if ( list($src, $comms) = concatener_fichiers($files, $format, $callbacks) [$src, $comms] = concatener_fichiers($files, $format, $callbacks) and $src ) { $compacte_ecrire_balise = charger_fonction("compresseur_ecrire_balise_$format", ''); $files = array_keys($files); // retrouver la position du premier fichier compacte $pos = strpos($flux, reset($files)); $pos = strpos($flux, (string) reset($files)); // supprimer tous les fichiers compactes du flux $flux = str_replace($files, '', $flux); // inserer la balise (deleguer a la fonction, en lui donnant le necessaire) Chargement en cours Chargement en cours @@ -255,6 +256,7 @@ function compresseur_liste_fonctions_prepare_css() { * @return bool|int|null|string */ function &compresseur_callback_prepare_css(&$css, $is_inline = false, $fonctions = null) { $contenu = []; if ($is_inline) { return compresseur_callback_prepare_css_inline($css, $is_inline); } Chargement en cours Chargement en cours @@ -434,6 +436,7 @@ function css_resolve_atimport($contenu, $url_base, $filename) { * @return bool|string */ function css_regroup_atimport($nom_tmp, $nom) { $contenu = null; lire_fichier($nom_tmp, $contenu); if (!$contenu or strpos($contenu, '@import') === false) { return false; Chargement en cours
inc/compresseur_concatener.php +7 −7 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -49,8 +49,8 @@ function concatener_fichiers($files, $format = 'js', $callbacks = []) { $files = [$files]; } if (count($files)) { $callback_min = isset($callbacks['each_min']) ? $callbacks['each_min'] : 'concatener_callback_identite'; $callback_pre = isset($callbacks['each_pre']) ? $callbacks['each_pre'] : ''; $callback_min = $callbacks['each_min'] ?? 'concatener_callback_identite'; $callback_pre = $callbacks['each_pre'] ?? ''; $url_base = self('&'); // on trie la liste de files pour calculer le nom Chargement en cours @@ -58,7 +58,7 @@ function concatener_fichiers($files, $format = 'js', $callbacks = []) { // si on renome une url a la volee pour enlever le var_mode=recalcul // mais attention, il faut garder l'ordre initial pour la minification elle meme ! $dir = sous_repertoire(_DIR_VAR, 'cache-' . $format); list($nom_fichier, $lastmodified) = concatener_nom_fichier_concat($dir, $files, $callbacks, $format); [$nom_fichier, $lastmodified] = concatener_nom_fichier_concat($dir, $files, $callbacks, $format); if ( (defined('_VAR_MODE') and _VAR_MODE == 'recalcul') or !file_exists($nom_fichier) Chargement en cours Chargement en cours @@ -129,14 +129,14 @@ function concatener_fichiers($files, $format = 'js', $callbacks = []) { // donc jamais utile if ($files2) { $files = $files2; list($nom_fichier, $lastmodified) = concatener_nom_fichier_concat($dir, $files, $callbacks, $format); [$nom_fichier, $lastmodified] = concatener_nom_fichier_concat($dir, $files, $callbacks, $format); } $nom_fichier_tmp = $nom_fichier; $final_callback = (isset($callbacks['all_min']) ? $callbacks['all_min'] : false); $final_callback = ($callbacks['all_min'] ?? false); if ($final_callback) { unset($callbacks['all_min']); list($nom_fichier_tmp, $lastmodified) = concatener_nom_fichier_concat($dir, $files, $callbacks, $format); [$nom_fichier_tmp, $lastmodified] = concatener_nom_fichier_concat($dir, $files, $callbacks, $format); } // ecrire ecrire_fichier_calcule_si_modifie($nom_fichier_tmp, $concatenation); Chargement en cours Chargement en cours @@ -186,7 +186,7 @@ function concatener_nom_fichier_concat($dir, $files, $callbacks, $format) { } $file_wo_timestamp[] = $file; } $nom_fichier_concat = $dir . md5(json_encode($file_wo_timestamp) . json_encode($callbacks)) . ".$format"; $nom_fichier_concat = $dir . md5(json_encode($file_wo_timestamp, JSON_THROW_ON_ERROR) . json_encode($callbacks, JSON_THROW_ON_ERROR)) . ".$format"; return [$nom_fichier_concat, $lastmodified]; } Chargement en cours
inc/compresseur_embarquer.php +2 −4 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -38,7 +38,7 @@ if (!defined('_ECRIRE_INC_VERSION')) { **/ function compresseur_embarquer_images_css($contenu, $source, $source_file = null) { #$path = suivre_lien(url_absolue($source),'./'); $base = ($source_file ? $source_file : $source); $base = ($source_file ?: $source); $base = ((substr($base, -1) == '/') ? $base : (dirname($base) . '/')); $filtre_embarque_fichier = chercher_filtre('filtre_embarque_fichier'); if (!defined('_CSS_EMBARQUE_FICHIER_MAX_SIZE')) { Chargement en cours @@ -47,9 +47,7 @@ function compresseur_embarquer_images_css($contenu, $source, $source_file = null return preg_replace_callback( ",url\s*\(\s*['\"]?([^'\"/][^:]*[.](png|gif|jpg))['\"]?\s*\),Uims", function ($x) use ($filtre_embarque_fichier, $base) { return 'url("' . $filtre_embarque_fichier($x[1], $base, _CSS_EMBARQUE_FICHIER_MAX_SIZE) . '")'; }, fn($x) => 'url("' . $filtre_embarque_fichier($x[1], $base, _CSS_EMBARQUE_FICHIER_MAX_SIZE) . '")', $contenu ); } Chargement en cours
tests/compacte_css.php +9 −9 Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff Chargement en cours @@ -23,10 +23,10 @@ $ok = true; include_spip('inc/compresseur_minifier'); include_spip('inc/filtres'); lire_fichier(dirname(__FILE__) . '/css/source.css', $css_code); lire_fichier(__DIR__ . '/css/source.css', $css_code); // test du compacteur simple lire_fichier(dirname(__FILE__) . '/css/expected.css', $expected); lire_fichier(__DIR__ . '/css/expected.css', $expected); $compacte = minifier_css($css_code); if (rtrim($compacte) != rtrim($expected)) { Chargement en cours @@ -42,14 +42,14 @@ if (rtrim($compacte) != rtrim($expected)) { $ok = false; } lire_fichier(dirname(__FILE__) . '/css/expected_more.css', $expected); lire_fichier(__DIR__ . '/css/expected_more.css', $expected); $compacte = minifier_css($css_code, array()); if (rtrim($compacte) != rtrim($expected)) { erreur('minifier_css(array())', $compacte, $expected); $ok = false; } lire_fichier(dirname(__FILE__) . '/css/expected_more_screen.css', $expected); lire_fichier(__DIR__ . '/css/expected_more_screen.css', $expected); $compacte = minifier_css($css_code, 'screen'); if (rtrim($compacte) != rtrim($expected)) { erreur("minifier_css('screen')", $compacte, $expected); Chargement en cours @@ -62,24 +62,24 @@ if (rtrim($compacte) != rtrim($expected)) { $ok = false; } lire_fichier(dirname(__FILE__) . '/css/expected_highest_screen.css', $expected); lire_fichier(__DIR__ . '/css/expected_highest_screen.css', $expected); $compacte = minifier_css($css_code, array('media' => 'screen', 'template' => 'highest')); if (rtrim($compacte) != rtrim($expected)) { erreur("minifier_css(array('media'=>'screen','template'=>'highest'))", $compacte, $expected); $ok = false; } lire_fichier(dirname(__FILE__) . '/css/source_simple.css', $css_code); lire_fichier(__DIR__ . '/css/source_simple.css', $css_code); lire_fichier(dirname(__FILE__) . '/css/expected_simple.css', $expected); lire_fichier(__DIR__ . '/css/expected_simple.css', $expected); $compacte = minifier_css($css_code, 'screen'); if (rtrim($compacte) != rtrim($expected)) { erreur("minifier_css('screen')", $compacte, $expected); $ok = false; } lire_fichier(dirname(__FILE__) . '/css/expected_url_abs.css', $expected); lire_fichier(dirname(__FILE__) . '/css/source_url_abs.css', $source); lire_fichier(__DIR__ . '/css/expected_url_abs.css', $expected); lire_fichier(__DIR__ . '/css/source_url_abs.css', $source); $compacte = urls_absolues_css($source, 'http://example.org/squelettes/source.css'); if (rtrim($compacte) != rtrim($expected)) { erreur('urls_absolues_css()', $compacte, $expected); Chargement en cours