web-dev-qa-db-fra.com

Moyen propre de désactiver MooTools dans mon composant principal ou dans mes solutions de contournement?

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.

4
stackoverclan

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

2
Lodder