1

I'm using this lines to remove header scripts of Joomla I don't need it :

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

Everything works fine in all pages except those who point to a custom component. There is no override of head in my component and cache is disabled.

I'm using Joomla 3.3.3

Edit: If I print the document object from my component, scripts is an empty array...

Thanks in advance

6
  • You do realise that unsetting this file will result in a console log error and loss of functionality such as editing an article in the frontend
    – Lodder
    Aug 21, 2014 at 10:07
  • Could you use a plugin such as JQuery easy to exclude the script from specific pages? Plugin details here simplifyyourweb.com/index.php/developers-corner/…
    – jonboy
    Aug 21, 2014 at 10:12
  • @Lodder I know, I just want to replace the current version of Bootstrap. Aug 21, 2014 at 14:36
  • Where are you putting this code? In a component, a plugin, your template? Aug 21, 2014 at 16:53
  • Be sure to use the underscore. It's _scripts and not scripts.
    – Farahmand
    Aug 21, 2014 at 21:43

1 Answer 1

2

You should probably be doing this in a system plugin using the onBeforeRender event. At this point in execution, the page is about to be rendered, so the scripts should be in place.

Something like this:

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.