From 48cde2db3ced44aa84fbed10e3e0d62c73de7ffa Mon Sep 17 00:00:00 2001 From: Bertrand GAUTHIER <bertrand.gauthier@unicaen.fr> Date: Fri, 4 Apr 2025 17:04:44 +0200 Subject: [PATCH] =?UTF-8?q?Les=20scripts=20js=20ne=20sont=20plus=20syst?= =?UTF-8?q?=C3=A9matiquement=20inclus=20dans=20<head>=20(trop=20de=20requ?= =?UTF-8?q?=C3=AAtes=20intempestives=20sur=20toutes=20les=20pages)=20mais?= =?UTF-8?q?=20en=20"inline"=20par=20l'aide=20de=20vue=20IdrefPopupTriggerV?= =?UTF-8?q?iewHelper=20si=20besoin.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 ++++ config/module.config.php | 10 ++++---- .../Helper/IdrefPopupTriggerViewHelper.php | 24 +++++++++++++++++++ 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 793b9ba..0f1feaa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ Journal des modifications ========================= +2.2.0 +----- +- Les scripts js ne sont plus systématiquement inclus dans <head> (trop de requêtes intempestives sur toutes les pages) + mais en "inline" par l'aide de vue IdrefPopupTriggerViewHelper si besoin. + 2.1.0 ----- - Suppression de la dépendance avec laminas/laminas-dependency-plugin. diff --git a/config/module.config.php b/config/module.config.php index d5f620a..199628f 100644 --- a/config/module.config.php +++ b/config/module.config.php @@ -89,11 +89,11 @@ return [ * Les chemins ci-dessous sont donc relatifs au dossier racine de l'appli. */ 'public_files' => [ - 'head_scripts' => [ - '099_unicaen-idref_js_1' => '/unicaen/idref/js/formulaire.js', - '099_unicaen-idref_js_2' => '/unicaen/idref/js/subModal.js', - '099_unicaen-idref_js_3' => '/unicaen/idref/js/trigger.js', - ], +// 'head_scripts' => [ +// '099_unicaen-idref_js_1' => '/unicaen/idref/js/formulaire.js', +// '099_unicaen-idref_js_2' => '/unicaen/idref/js/subModal.js', +// '099_unicaen-idref_js_3' => '/unicaen/idref/js/trigger.js', +// ], 'stylesheets' => [ '099_unicaen-idref_css_1' => '/unicaen/idref/css/subModal.css', '099_unicaen-idref_css_2' => '/unicaen/idref/css/trigger.css', diff --git a/src/UnicaenIdref/View/Helper/IdrefPopupTriggerViewHelper.php b/src/UnicaenIdref/View/Helper/IdrefPopupTriggerViewHelper.php index 643d5c1..0d9e39f 100644 --- a/src/UnicaenIdref/View/Helper/IdrefPopupTriggerViewHelper.php +++ b/src/UnicaenIdref/View/Helper/IdrefPopupTriggerViewHelper.php @@ -62,6 +62,8 @@ class IdrefPopupTriggerViewHelper extends AbstractHelper $this->sourceElements = $sourceElements; $this->destinationElement = $destinationElement; + $this->attachInlineScripts(); + return $this; } @@ -81,4 +83,26 @@ class IdrefPopupTriggerViewHelper extends AbstractHelper 'params' => $this->params, ]); } + + /** + * Inscrit les scripts js "inline" nécessaires si ce n'est pas déjà fait. + */ + protected function attachInlineScripts(): void + { + /** @var \Laminas\View\Helper\InlineScript $helper */ + $helper = $this->view->plugin('inlineScript'); + + $prefix = __NAMESPACE__ . '\\'; + + $scripts = [ + 1 => 'unicaen/idref/js/formulaire.js', + 2 => 'unicaen/idref/js/subModal.js', + 3 => 'unicaen/idref/js/trigger.js', + ]; + foreach ($scripts as $i => $script) { + if (!$helper->offsetExists($offset = $prefix . $i)) { + $helper->offsetSetFile($offset, $this->view->basePath($script)); + } + } + } } \ No newline at end of file -- GitLab