web-dev-qa-db-fra.com

Comment ajouter un fichier JS / CSS personnalisé, sans modifier le modèle (à partir d'une extension)?

J'écris une extension personnalisée et je voulais ajouter des fichiers JS et CSS spécifiques dans le tableau de bord de l'administrateur (sur chaque page), ainsi que différents fichiers JS/CSS au niveau du serveur frontal ...

J'ai vu beaucoup de réponses, mais toutes parlent de modifications index.php. N'y a-t-il pas une méthode plus simple, comme celle de worpdress, quelque chose comme ceci: phseudo-code:

function AddMyScript(){
    echo '<link rel="stylesheet"..................
    //or $this->AddScript('myCss', 1.01, url......)
}
add_action('wp_head', 'AddMyScript');

aussi, s'il vous plaît ajouter deux mots sur la façon de mettre en œuvre et appeler cela default.php

2
T.Todua

Voici la documentation: https://docs.joomla.org/J3.x:Adding_JavaScript_and_CSS_to_the_page

Si vous souhaitez ajouter différents fichiers css et js au début et à la fin du site, vous devez utiliser un plugin système et tester le client pour lequel il se présente comme suit:

class plgSystemRandomname extends JPlugin
{

   function onBeforeCompileHead()
   {
       $doc = JFactory::getDocument();
       $app = JFactory::getApplication();

       if ($app->isClient('site')){

         // add all yr scripts and stylesheets from the frontend, eg.
         $doc->addScript('/path/to/script.js');

       } elseif ($app->isClient('administrator')) {

         // add all yr js and css for the backend, eg.
         $doc->addScript('/path/to/different_script.js');

      }
   }

}

Voici la documentation pour créer un plugin: https://docs.joomla.org/J3.x:Creating_a_Plugin_for_Joomla

Notez que isClient est entré dans J3.7 je pense.

5
jamesgarrett