it-swarm-eu.dev

Rimuovere lo script head non funzionante nel componente personalizzato

Sto usando queste righe per rimuovere gli script di header di Joomla, non ne ho bisogno:

$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]);
    }
} 

Tutto funziona bene in tutte le pagine tranne quelle che indicano un componente personalizzato. Non c'è override di head nel mio componente e la cache è disabilitata.

Sto usando Joomla 3.3.3

Modifica: Se stampo l'oggetto documento dal mio componente, gli script sono un array vuoto ...

Grazie in anticipo

1
Dayron Gallardo

Probabilmente dovresti farlo in un plugin di sistema usando l'evento onBeforeRender. A questo punto dell'esecuzione, la pagina sta per essere renderizzata, quindi gli script dovrebbero essere a posto.

Qualcosa come questo:

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