Apparemment, je ne peux pas avoir Mootools chargé dans mon composant back-end personnalisé car son impact et sa pire collision, il manipule toutes les méthodes String standard et provoque un ralentissement extrême (merde dans le patch String.test) et/ou se bloque partout. dans mon application Javascript (ibm-js, scripts modernes conformes aux dernières spécifications w3c stables).
J'ai donc filtré tout le Javascript via JFactory :: getDocument () -> _ scripts mais cela semble casser le menu d'administration (du moins, il ne fonctionne plus). J'ai aussi essayé toutes les autres choses trouvées sur Internet mais sans succès.
Est-ce que quelqu'un connaît le moyen officiel de désactiver MooTools dans les composants back-end sans rompre le menu admin?
S'il n'y a pas de moyen propre de désactiver ces scripts, quelles sont les alternatives? Actuellement, je ne vois que iFrame comme solution (document.write (myHtml)). Ou l'écriture d'un modèle d'administrateur vous aiderait-elle aussi?
je vous remercie!
(Joomla-3.4.1 avec des plugins standards comme RS-Firewall, ...)
Mise à jour, cela semble lancer more-tools-core au moins:
JHTML::_( 'behavior.framework', false );
$doc = JFactory::getDocument();
// remove joomla stuff
$doc->_scripts = null;
$doc->_script = null;
$doc->_styleSheets = null;
$myComponent->handleRequest();
pour une raison quelconque, "more-tools-more" est toujours sur la page.
Si vous avez le code suivant n'importe où dans votre composant, essayez de le supprimer:
JHtml::_('behavior.framework');
Sinon, essayez d’utiliser ce qui suit pour supprimer le script du fichier <head>
$doc = JFactory::getDocument();
$head = $doc->getHeadData();
$scripts = $head['scripts'];
unset($scripts['/media/system/js/mootools-core.js']);
unset($scripts['/media/system/js/mootools-more.js']);
$head['scripts'] = $scripts;
$doc->setHeadData( $head );
En ce qui concerne votre commentaire:
Je crois que Mootools est importé via le noyau, pas le modèle, donc changer votre modèle ne changera rien