web-dev-qa-db-fra.com

Supprimer le script principal ne fonctionnant pas dans le composant personnalisé

J'utilise ces lignes pour supprimer les scripts d'en-tête de Joomla. Je n'en ai pas besoin:

$doc = JFactory::getDocument();

$dontInclude = array(
    '/media/jui/js/bootstrap.min.js'
);

foreach($doc->_scripts as $key => $script){
    if(in_array($key, $dontInclude)){
        unset($doc->_scripts[$key]);
    }
} 

Tout fonctionne correctement dans toutes les pages, sauf celles qui pointent vers un composant personnalisé. Il n'y a pas de substitution de tête dans mon composant et le cache est désactivé.

J'utilise Joomla 3.3.3

Edit: Si j'imprime l'objet document à partir de mon composant, scripts est un tableau vide ...

Merci d'avance

1
Dayron Gallardo

Vous devriez probablement le faire dans un plug-in système utilisant l'événement onBeforeRender. À ce stade de l'exécution, la page est sur le point d'être affichée. Les scripts doivent donc être en place.

Quelque chose comme ça:

function onBeforeRender() {
  $doc = JFactory::getDocument();

  $dontInclude = array(
    '/media/jui/js/bootstrap.min.js'
  );

  foreach($doc->_scripts as $key => $script){
    if(in_array($key, $dontInclude)){
        unset($doc->_scripts[$key]);
    }
  } 
}
2
Michael