comment désinstaller definitivement un template standard Joomla 3.8.2 ?

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • comment désinstaller definitivement un template standard Joomla 3.8.2 ?

    salut a tous,
    un retour et une question en meme temps:
    j'ai tésté la possiblité de desinstaller protostar et beez3.
    Cela fonctionnes.
    Les fichiers des deux templates et les styles associés sont bien supprimmés.
    Mais a la mise a jour vers 3.8.2, les fichiers ont reapparu.
    Les styles etaient toujours supprimés.
    En allant dans extensions > gestion > decouvrir, les deux templates etaient de nouveau disponible.
    Je les aient reinstallés et les styles sont réapparu.
    Ce qui est tout sauf ce que je veux.

    Question, comment eviter de devoir supprimer les fichiers à chaque mise à jour ?
    Si je les ais supprimés, c est pas pour m en servir...
    Dernière édition par lefabdu51 à 21/11/2017, 14h53

  • #2
    Envoyé par lefabdu51 Voir le message
    Question, comment eviter de devoir supprimer les fichiers à chaque mise à jour ?
    Si je les ais supprimés, c est pas pour m en servir...
    Salut Fabrice,
    Très bonne question.
    Je pense que tu n'as pas le choix. Les fichiers se trouvent dans le zip de mise à jour.
    La seule possibilité que je voie serait de faire un plugin avec la liste des dossiers à supprimer dès qu'ils réapparaissent. Reste à trouver l'événement le plus adéquat.
    UP, le plugin universel à découvrir sur https//up.lomart.fr
    bgMax
    , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

    Commentaire


    • #3
      Bonjour,

      Tout à fait d'accord avec Fabrice, c'est un peu lourd de supprimer les templates beez3, protostar, mais aussi les fichiers .txt de la racine qui, non seulement, sont inutiles, mais peuvent aussi être dangereux. AESecure les cache, mais, ils sont toujours là.

      Pascal
      If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

      Commentaire


      • #4
        @lomart: une question pour toi.
        Si tu connais un dev akeeba, ce serait a lui qu'il faudrais poser la question.
        Je pense a leur plugin backup on update.
        Il se lance avant la mise a jour, donc il doit bien y avoirun moyen de le lancer après.
        Et eux doivent le savoir....
        Ou est ce qu il y a moyen de lancer un script cli à la fin de la mise à jour.

        La il y aurais un paramètre nommé "keep_standard_template" ou "update_standard_templates" à ajouter dans les paramètres generaux du composant de mise a jour de Joomla, vu que celles ci ne sont plus installables via extensions > installation.

        et on conditionnes les actions du script à la valeur de celui ci.
        Les valeurs possible du parametre sont: les deux,beez 3 seulement, protostar seulement, aucun.

        La procédure de desinstallation reste la meme c est a dire via l'onglet template.
        Et la gestion des fichiers (copie de ceux ci ou non) se fait via un script cli à la fin de la mise à jour.
        La procédure de reinstallation (en cas de besoin) reste identique (copie des fichiers.et decouverte).
        C'est une autre possibilité.

        Edit: je viens de voir le dossier /administrator/com_postinstall.
        et un dossier /administrator/comjoomlaupdate..
        Je pense que c est la ou j aurais des éléments de réponse.

        Le script en lui meme n est pas le plus complexe à faire.
        On recuperes la valeur du paramètre.
        Si $param = 0
        {
        // les deux doivent etre mis a jour: on ne fait rien
        }
        Si $param = 1
        {
        // seul beez 3 doit etre mis a jour : on supprimes protostar
        }
        si $param =2
        {
        seul protostar doit être mis a jour : on supprimes beez 3
        }
        si $param = 4
        {
        on supprimes les deux
        }

        Pour J4, vu qu'il n y a plus qu'un seul template, cela sera encore plus simple car il n y auras plus que deux cas de figure, soit il est installé, soit il ne l est pas.

        @pmlecomte :
        Dans le script, integrer une gestion des fichiers txt reviendrais à faire un ensemble de boucles conditionnelles supplementaires.
        si .htaccess ou .webconfig existe{
        //on vires les fichiers htacces.txt et webconfig.txt
        }
        Et il faudrais aussi voir pour les fichier git qui ne servent à rien en production.
        Dernière édition par lefabdu51 à 22/11/2017, 10h01

        Commentaire


        • #5
          Salut Fabrice,

          Il faudrait mettre une suggestion sur le site dédié (dont je ne retrouve pas le nom)

          backuponupdate se branche sur l'événement onAfterInitialise

          Je pense à un plugin qui teste la présence d'un ou plusieurs fichiers (définis dans les paramètres du plugin) qui est systématiquement remis (ex: README.txt). S'il existe, il supprime tous les dossiers et fichiers listés dans ses paramètres. Il faut prévoir de conserver la version .txt si la version de production n'existe pas.
          Je le brancherais sur l'événement onExtensionAfterInstall (https://docs.joomla.org/Plugin/Events/fr)

          UP, le plugin universel à découvrir sur https//up.lomart.fr
          bgMax
          , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

          Commentaire


          • #6
            la je suis résté sur la création d'un plugin.
            Je n ais pas encore pu le tester car j 3.8.3 n'est pas encore sortie.
            La suppression des fichiers git n est pas encore codée.
            En premier le fichier xml du plugin et en second, le fichier php correspondant au plugin.
            J'ai deux questions sur ce code :
            La premiere est est ce qu il faut vider un dossier pour utiliser jfolder::delete?
            Et la seconde est est ce que c est la bonne syntaxe PHPpour recuperer les paramètres du plugin ?
            Dernière édition par lefabdu51 à 26/11/2017, 11h11

            Commentaire


            • #7
              le fichier removeunusedfiles.xml
              Code:
              <?xml version="1.0" encoding="utf-8"?>
              <extension version="3.8" type="plugin" group="system">
              <name>Remove unused files</name>
              <creationDate>Creation date</creationDate>
              <author>Your name</author>
              <authorEmail>Your e-mail address</authorEmail>
              <authorUrl>Your website</authorUrl>
              <copyright>Copyright information</copyright>
              <license>GNU/GPL</license>
              <version>0.0.1</version>
              <description>This plugin removes unused files as htaccess.txt,webconfig.txt, the beez3 and Protostar templates files, which are created
              at each joomla update.If you don't use prototstar or Beez 3, you don't need them again if uninstalled.</description>
              <files>
              <filename plugin="removeunusedfiles">removeunusedfiles.php</filename>
              </files>
              <languages>
              <language tag="en-GB">language/en-GB/en-GB.plg_system_removeunusedfiles.ini</language>
              <language tag="fr-FR">language/fr-FR/fr-FR.plg_system_removeunusedfiles.ini</language>
              </languages>
              <config>
              <fields name="params">
              
              <fieldset name="basic">
              
              <field name="remove_beez" type="radio"
              default="0"
              description="REMOVE_BEEZ_DESC"
              label="REMOVE_BEEZ_LABEL"
              >
              <option value="0">JOFF</option>
              <option value="1">JON</option>
              </field>
              <field name="remove_protostar" type="radio"
              default="0"
              description="REMOVE_PROTOSTAR_DESC"
              label="REMOVE_PROTOSTAR_LABEL"
              >
              <option value="0">JOFF</option>
              <option value="1">JON</option>
              </field>
              <field name="remove_txt" type="radio"
              default="0"
              description="REMOVE_TXT_DESC"
              label="REMOVE_TXT_LABEL"
              >
              <option value="0">JOFF</option>
              <option value="1">JON</option>
              </field>
              
              
              <field name="remove_git" type="radio"
              default="0"
              description="JFIELD_PLG_SEARCH_ALL_DESC"
              label="JFIELD_PLG_SEARCH_ALL_LABEL"
              >
              <option value="0">JOFF</option>
              <option value="1">JON</option>
              </field>
              </fieldset>
              </fields>
              </config>

              Commentaire


              • #8
                le fichier removeunusedfiles.php
                Code:
                <?php
                 /**
                  * @version        
                  * [USER="64686"]Copyright[/USER]    Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.
                  * @license        GNU General Public License version 2 or later; see LICENSE.txt
                  */
                
                 defined('JPATH_BASE') or die;
                
                  /**
                   * An example custom profile plugin.
                   *
                   * @package        Joomla.Plugins
                   * @subpackage    user.profile
                   * @version        1.6
                   */
                  class plgSystemRemovunusedfiles extends JPlugin
                  {
                jimport 'joomla.filesystem.file';
                jimport 'joomla.filesystem.folder';
                    public function onExtensionAfterInstall($installer,$id)
                {
                if (($this->params->get('remove_beez') > 0) && (JFolder:exists('/templates/beez3')) {
                JFolder::delete('/templates/beez3');        
                }
                if (($this->params->get('remove_protostar') > 0) && (JFolder:exists('/templates/protostar')) {
                JFolder::delete('/templates/protostar');        
                }
                if ($this->params->get('remove_txt') > 0) {
                if (JFile::exists('.htaccess') || JFile::exists('.webconfig'))
                {
                JFile::delete('htaccess.txt);
                JFile::delete('webconfig.txt');
                }
                if (JFile::exists('README.TXT')
                {
                JFile::delete('README.TXT');
                
                }
                }
                }

                Commentaire


                • #9
                  Les fichiers de langue correspondant :
                  Code:
                  REMOVE_BEEZ_DESC="suppression du template Beez3?"
                  REMOVE_BEEZ_LABEL="suppresion du template Beez3"
                  REMOVE_PROTOSTAR_DESC="Suppression du template Protostar ?"
                  REMOVE_PROTOSTAR_LABEL="Suppression du template Protostar"
                  REMOVE_TXT_DESC="suppression des fichiers htaccess.txt et webconfig.txt ?é
                  REMOVE_TXT_LABEL="suppression de fichiers texte"

                  Commentaire


                  • #10
                    Salut Fabrice,

                    Je n'ai pas testé mais sur le principe cela semble bon.
                    Dans le XML, je mettrais 2 textarea : Fichiers a supprimer & dossiers à supprimer avec par défaut les dossiers beez, protostar, ...
                    Dans le PHP, je ferais une boucle pour supprimer les fichiers et dossiers indiqués. Comme cela, chacun fait ce qu"il veut. En sachant, qu'il n'y aura que des félés comme nous pour s'en servir
                    UP, le plugin universel à découvrir sur https//up.lomart.fr
                    bgMax
                    , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

                    Commentaire


                    • #11
                      ok.les deux textarea a ajouter et dans le fichier php, une boucle sur le contenu des textarea.
                      Comme cela cela permettras aux personnes d'ajouter des fichiers qui reviennent en plus des fichiers standard.
                      Merci pour la relecture.

                      Commentaire


                      • #12
                        Bonjour,

                        J'ai fait quelques tests : pour fonctionner onExtensionAfterInstall doit être dans un plugin de type Extension.

                        Donc, j'ai modifié un peu (ou presque) et cela donne :
                        Fichier removeunusedfiles.xml
                        Code:
                        <?xml version="1.0" encoding="utf-8"?>
                        <extension version="3.8" type="plugin" group="extension" method="upgrade">
                        <name>Remove unused files</name>
                        <creationDate>Creation date</creationDate>
                        <author>Your name</author>
                        <authorEmail>Your e-mail address</authorEmail>
                        <authorUrl>Your website</authorUrl>
                        <copyright>Copyright information</copyright>
                        <license>GNU/GPL</license>
                        <version>0.0.1</version>
                        <description>This plugin removes unused files as htaccess.txt,webconfig.txt, the beez3 and Protostar templates files, which are created
                        at each joomla update.If you don't use prototstar or Beez 3, you don't need them again if uninstalled.</description>
                        <files>
                        <filename plugin="removeunusedfiles">removeunusedfiles.php</filename>
                        </files>
                        <languages>
                        <language tag="fr-FR">language/fr-FR/fr-FR.plg_extension_removeunusedfiles.ini</language>
                        </languages>
                        <config>
                        <fields name="params">
                        
                        <fieldset name="basic">
                        
                        <field name="remove_beez" type="radio"
                        default="0"
                        description="REMOVE_BEEZ_DESC"
                        label="REMOVE_BEEZ_LABEL"
                        >
                        <option value="0">JOFF</option>
                        <option value="1">JON</option>
                        </field>
                        <field name="remove_protostar" type="radio"
                        default="0"
                        description="REMOVE_PROTOSTAR_DESC"
                        label="REMOVE_PROTOSTAR_LABEL"
                        >
                        <option value="0">JOFF</option>
                        <option value="1">JON</option>
                        </field>
                        <field name="remove_txt" type="radio"
                        default="0"
                        description="REMOVE_TXT_DESC"
                        label="REMOVE_TXT_LABEL"
                        >
                        <option value="0">JOFF</option>
                        <option value="1">JON</option>
                        </field>
                        
                        </fieldset>
                        </fields>
                        </config>
                        </extension>
                        fichier fr-FR.plg_extension_removeunusedfiles.ini
                        Code:
                        REMOVE_BEEZ_DESC="suppression du template Beez3?"
                        REMOVE_BEEZ_LABEL="suppresion du template Beez3"
                        REMOVE_PROTOSTAR_DESC="Suppression du template Protostar ?"
                        REMOVE_PROTOSTAR_LABEL="Suppression du template Protostar"
                        REMOVE_TXT_DESC="suppression des fichiers htaccess.txt et webconfig.txt ?"
                        REMOVE_TXT_LABEL="suppression de fichiers texte"
                        fichier removeunusedfiles.php
                        Code:
                        <?php
                         /**
                          * @version        
                          * Copyright    Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.
                          * @license        GNU General Public License version 2 or later; see LICENSE.txt
                          */
                        
                         defined('JPATH_BASE') or die;
                        
                          class plgExtensionRemoveunusedfiles extends JPlugin // <=======attention le nom de la classe incoorect
                          {
                            public function onExtensionAfterInstall($installer,$id)
                            {
                                if (($this->params->get('remove_beez') > 0) && (JFolder::exists(JPATH_ROOT . '/templates/beez3'))) {
                                    JFolder::delete(JPATH_ROOT . '/templates/beez3');        
                                }
                                if (($this->params->get('remove_protostar') > 0) && (JFolder::exists(JPATH_ROOT . '/templates/protostar'))) {
                                    JFolder::delete(JPATH_ROOT . '/templates/protostar');        
                                }
                                if ($this->params->get('remove_txt') > 0) {
                                    if (JFile::exists(JPATH_ROOT . '/.htaccess') || JFile::exists(JPATH_ROOT . '/.webconfig')) {
                                        JFile::delete(JPATH_ROOT . '/htaccess.txt');
                                        JFile::delete(JPATH_ROOT . '/webconfig.txt');
                                    }
                                    if (JFile::exists(JPATH_ROOT . '/README.TXT')) {
                                        JFile::delete(JPATH_ROOT . '/README.TXT');
                                    }
                                }
                            }
                          }
                        remarque: il faut préciser les path sur les delete.

                        Naturellement, il faudrait peu-être taper dans la base pour supprimer correctement les templates, car ils restent affichés même s'ils ont été supprimés.

                        Pascal

                        PS: on peut aussi supprimer le LICENCE.TXT et le robots.txt.dist (si le robots.txt existe)
                        Dernière édition par pmleconte à 27/11/2017, 11h35
                        If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

                        Commentaire


                        • #13
                          En complément, onExtensionAfterInstall est déclenché sur l'installation/mise à jour d'une extension, mais pas sur la mise à jour de Joomla.

                          Pascal
                          If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

                          Commentaire


                          • #14
                            Je n'ai pas trouvé d'événement déclenché par le mise à jour Joomla. Donc, la solution serait peut-être d'ajouter un bouton de nettoyage dans l'admin.

                            Pascal
                            If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

                            Commentaire


                            • #15
                              Salut à vous 2

                              Je n'ai pas trouvé d'événement déclenché par le mise à jour Joomla.
                              On peut le faire sur un onUserLogin avec un test pour savoir si l'on est en backend. Ensuite, il suffit de faire le test sur un fichier

                              Naturellement, il faudrait peu-être taper dans la base pour supprimer correctement les templates, car ils restent affichés même s'ils ont été supprimés.
                              L'idée est d'empêcher la réinstallation de fichiers déjà supprimés. Donc pas d'action BD à faire (sauf si l'on veut supprimer les templates par le plugin)

                              UP, le plugin universel à découvrir sur https//up.lomart.fr
                              bgMax
                              , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X