Wyłączyć Mootools dla 3.3?

10

Muszę zaktualizować witrynę Joomla 2.5 do wersji 3.x

Strona korzysta z wtyczki „wyłącz Mootools”

od tego dewelopera union-d.ru/

Czy ktoś z powodzeniem korzysta z tej wtyczki w wersji 3.3 lub wie o wtyczce o podobnej funkcjonalności dla wersji 3.3? Dzięki - programista nie odpowiada na moje pytania ...

Czy ktoś z powodzeniem korzysta z tej wtyczki na stronie 3.x? Lub znasz inną, podobną wtyczkę, która działa na 3.x? Dzięki!

jmks5517
źródło

Odpowiedzi:

6

W razie potrzeby to narzędzie wyłączy Mootools i jest kompatybilne z Joomla 3: http://extensions.joomla.org/extensions/core-enhancements/performance/mootools/22236

W Joomla 3.0 MooTools jest przestarzałe, a jQuery jest domyślną strukturą javascript. Aby dodać biblioteki MooTools Core, musisz dodać:

JHTML::_('behavior.framework');

Zatem zależy od twojego szablonu / rozszerzeń, czy Mootools jest załadowany czy nie.

W konsoli programisty Google Chrome (i prawdopodobnie w Firefoksie Firebug) możesz sprawdzić, czy MooTools jest włączony za pomocą tego małego kodu javascript:

window.MooTools ? alert ("MooTools loaded") : alert("MooTools NOT loaded");
johanpw
źródło
Minęło kilka lat, ale odpowiedź jest nadal aktualna i działa dla Joomla 3.8. *
BastianW
2

Ta wtyczka jest specjalnie dla Joomla 2.5, dlatego może być trochę przestarzały kod podczas korzystania z Joomla 3.x. Osobiście polecam korzystanie z jQuery Easy, która jest bardzo renomowaną wtyczką. Jego główną cechą jest importowanie jQuery na twoją stronę i upewnienie się, że jest zawsze ładowane tylko raz i na górze listy skryptów, ale ma również funkcję wyłączania MooTools tam, gdzie to możliwe.

Lodder
źródło
1

Wtyczka do zarządzania bibliotekami wbudowanymi Joomla. Główne opcje: wyłącz Mootools, wyłącz Jquery, wyłącz Bootstrap https://github.com/vlasenkofedor/joomla_options

Fedor Vlasenko
źródło
To zdecydowanie najlepsze rozwiązanie. Używam go z Joomla 3.6. Niech cię Bóg błogosławi! Dziękuję bardzo! Ta wtyczka jest niesamowita.
Peesen87,
0

Jeśli tworzysz wtyczkę, a onAfterRenderwydarzenie NIE działa, spróbuj użyć zdarzenia, onBeforeCompileHeadjak pokazano poniżej.

public function onBeforeCompileHead() {
    if ($this->app instanceof JApplicationSite) {
        $doc = JFactory::getDocument();
        $search     = array(
            'jui/js/bootstrap.min.js',
            'mootools-core.js',
            'mootools-more.js',
        );
        foreach ($doc->_scripts as $key => $script) {
            foreach ($search as $findme) {
                if (stristr($key, $findme) !== false) {
                    unset($doc->_scripts[$key]);
                }
            }
        }
    }
}
Mohd Abdul Mujib
źródło