web-dev-qa-db-fra.com

Comment remplacer le fichier Module js dans Joomla?

Je voudrais minifier un fichier js d'un module Joomla. Par exemple, le fichier:

joomla_site/modules/mod_module/tmpl/js/file.js

qui a été copié à l'emplacement suivant:

joomla_site/templates/my_template/html/mod_module/tmpl/js/file.js

Ça a été minifié. J'ai rechargé mon site et il n'y a pas eu de changement. Le site utilise toujours le fichier js non-minifié. Qu'est-ce que je rate?

2
Brandon Fowler

Vous pouvez également le faire en incluant un fichier Javascript dans le pied de page afin qu'il écrase le fichier.

  1. Créez un nouveau fichier appelé footer.php dans / libraries/joomla/document/html/renderer / annuaire:

  2. Dans /libraries/joomla/document/document.php ajouter après

    public $_scripts = array();
    cette
    public $_footer_scripts = array();

  3. Ajouter une méthode addFooterScript () après la méthode addScript ()

    function addFooterScript($url, $type = "text/javascript", $defer = false, $async = false) {
        $this->_footer_scripts[$url]['mime'] = $type;
        $this->_footer_scripts[$url]['defer'] = $defer;
        $this->_footer_scripts[$url]['async'] = $async;
        return $this;
    }
    
  4. Dans index.php dans votre dossier de modèles, ajoutez juste avant la balise
    <jdoc:include type="footer" />

  5. Terminé!
    Maintenant, dans les mises en page du dossier de votre modèle, vous pouvez utiliser le code suivant pour ajouter des fichiers javascript au pied de page:

    $doc =& JFactory::getDocument();
    $doc->addFooterScript('JavaScript_File_Path.js');
    

Pour plus d'instructions, vérifiez ceci - fichiers Javascript inclus dans le pied de page

1
Joomler

En supposant que le module utilise la méthode suivante pour importer le script:

JHtml::_('script', 'path/to/file.js', array(), true);

n'utilise pas $doc->script()

Ensuite, vous devez copier le fichier dans le chemin suivant:

joomla-site/templates/my_template/html/mod_module/file.js

Le chemin ne devrait pas contient tmpl/js/.

1
Lodder

Si c'est votre propre module personnalisé - choisissez une autre solution, mais si ce n'est pas le vôtre - je vous suggère d'utiliser Optimiseur JCH - la version gratuite couvre entièrement vos besoins.

1
Alexandr