Modifier les en-têtes JS et CSS via un plugin ?
Bonjour à tous,
J'ai besoin de modifier la liste des JS et des CSS inclus dans la partie head de mon layout.
Donc, j'ai tenté de créer un plugin symfony, avec une classe qui étend la classe "sfPluginConfiguration", avec un simple test d'ajout d'un attribut data-test sur chaque javascript :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
class resourcesModifierPluginConfiguration extends sfPluginConfiguration {
public function configure() {
//$this->dispatcher->connect('view.configure_format', array($this, 'listenToConfigureFormat'));
$this->dispatcher->connect('response.filter_content', array(nuFileConcatenatorPluginConfiguration, 'test'));
}
public static function test(sfEvent $event) {
$javascripts = sfContext::getInstance()->getResponse()->getJavascripts();
// remove all js
foreach ($javascripts as $name => $arr) sfContext::getInstance()->getResponse()->removeJavascript($name);
// Add Javascripts
foreach ($javascripts as $name => $arr) {
sfContext::getInstance()->getResponse()->addJavascript($name, 'last', array('data-test' => 'test value'));
}
return sfContext::getInstance()->getResponse()->getContent();
}
} |
Le code est bien appelé mais la réponse n'est pas modifié, alors que le même code appelé depuis le layout fonctionne très bien :
Code:
1 2 3 4
|
<?php resourcesModifierPluginConfiguration::test(new sfEvent('test.test', 'test.test')); ?>
<?php include_stylesheets() ?>
<?php include_javascripts() ?> |
Ma question : Est-ce possible de modifier les JS et CSS avant le rendu de la page, sans faire de modification intrusive (comme par exemple modifier le layout)
Merci beaucoup pour votre aide !!
Julian