web-dev-qa-db-fra.com

Comment obtenir un modèle Joomla 3 pour installer les images dans un emplacement différent, en particulier joomla root / images?

J'ai créé un modèle Joomla 3. Lorsque j'installe le modèle, j'aimerais que les images du modèle soient automatiquement installées dans le joomlaroot/images emplacement. La raison pour laquelle je voudrais faire cela est que plusieurs modèles partagent les mêmes images. Je sais que je peux manuellement placer les images dans le dossier de mon choix, mais je préférerais que ce soit fait automatiquement lorsque j'installe le modèle.

  • Est-il possible d’installer automatiquement un modèle d’images dans le répertoire joomlaroot/images? Si oui, comment puis-je le faire?
  • Si non, existe-t-il d'autres moyens de parvenir à la même chose?
4
TryHarder

En gros, vous pouvez utiliser un script d’installation et créer/copier les fichiers après l’installation. Le problème est que les modèles AFAIK ne déclenchent pas le script.

Je vous suggère de créer un package , puis d’y inclure votre modèle, car le programme d’installation du package doit appeler le script d’installation.

Créez ensuite votre script postflight en l'ajoutant à votre fichier XML:

<scriptfile>script.php</scriptfile>

Et quelque chose comme ça dans le fichier script.php (Non testé):

<?php

defined('_JEXEC') or die('Restricted access');

class pkg_helloWorldInstallerScript {

    function install($parent) {

        jimport('joomla.filesystem.folder');
        jimport('joomla.filesystem.file');

        //change this to the name of the folder you want to create
        $newfolder = 'myfolder';

        if(JFolder::create(JUri::root() . 'images/' . $newfolder)) {        
            //duplicate the line below as many times as you want for each file you want to move
            JFile::move(JUri::root() . 'templates/TEMPLATENAME/images/image.png', JUri::root() . 'images/' . $newfolder);
        }
    }
}    
?>

Code original de @Lodder

3
johanpw