Retirer le bouton mise à jour sous Prestashop 1.6

Il y’a pas longtemps j’avais déjà parlé du problème des notifications des mises à jour des modules Prestashop. Le problème c’est que sous les modules Prestashop 1.6, on peut vite perdre ses modifications à cause du système intrusif de mise à jour.

Le bouton de la peur !

Dans Prestashop 1.5 c’était différent… dans les modules il y’avait deux boutons… 1 pour configurer, l’autre qui s’appelait « mise à jour ». Dans Prestashop 1.6 c’est pire, à présent dès qu’une mise à jour est disponible, la liste déroulante de la configuration du module se met directement sur « mise à jour »… Du coup sans faire exprès on clique dessus et ça fait une mise à jour… ça modifie les fichiers de base et c’est très contraignant.

Un mauvais choix de mettre dans la liste, la mise à jour en première position.

Corrigeons cela…

Même moi j’ai cliqué sur le bouton sans faire exprès… et ça m’a gonflé… ils devraient mettre au moins un message « Voulez-vous vraiment ? » mais non actuellement ça lance le processus…. Nous allons donc modifier le fichier sous « /administration/themes/default/template/controllers/modules/list.tpl » et je vous laisse donc chercher la section vers la ligne 100 qui contient ceci :

<a class="btn btn-warning" href="{$module->options.update_url|escape:'html':'UTF-8'}">
    <i class="icon-refresh"></i> {l s='Update it!'}
</a>

Et vous remplacez cela par le contenu suivant :

{*
<a class="btn btn-warning" href="{$module->options.update_url|escape:'html':'UTF-8'}">
    <i class="icon-refresh"></i> {l s='Update it!'}
</a>
*}
{* Webbax *}
<a class="btn btn-default" href="index.php?controller=AdminModules&token={$smarty.get.token}&configure={$module->name}&module_name={$module->name}">
        <i class="icon-wrench"></i> {l s='Configure'}
</a>

Bon c’est déjà bien reste encore à ajouter un bout de code vers la ligne 142 juste après :

<ul class="dropdown-menu">

Ajoutez le code suivant :

<li>
    {* Webbax *}
    {if isset($module->version_addons) && $module->version_addons}
    <a class="btn btn-warning" href="{$module->options.update_url|escape:'html':'UTF-8'}">
            <i class="icon-refresh"></i> {l s='Update it!'}
    </a>
    {/if}
<li>

Pour ceux qui n’auraient pas tout compris, vous pouvez télécharger le fichier avec les modifications directement en suivant ce lien.

Et le résultat ?

Bien plus pratique le bouton configurer est directement celui par défaut… même si une mise à jour est disponible… Le bouton mise à jour se retrouve lui en 2ème position ce qui permet tout de même à l’utilisateur de lancer le processus, mais seulement lorsqu’il a envie de le faire.

Ah oui je préfère ça… ça évitera aussi les clics des clients « sans faire exprès » !

Difficile à comprendre

A travers cette option je pense que Prestashop cherche à avoir des boutiques toujours d’actualité… des boutiques qui suivent les évolutions et les mises à jour. Je ne suis pas vraiment convaincu par cette méthode, car les mises à jour effectuent des changements importants sur le module, sans tenir compte des customisations effectuées sur celui-ci. Sur une boutique Prestashop par défaut pourquoi pas… mais sur une boutique en production avec des customisations… ça présente des risques certains.

Bilan

Ce billet n’était pas prévu pour aujourd’hui… mais tout à l’heure j’ai cliqué sur le bouton et je me suis dit… « Rah… non pourquoi j’ai cliqué… ». Vous me direz qu’il faut lire avant de cliquer, mais quand on passe ses journées dans des modules, on clique partout… on navigue rapidement et l’erreur est vite arrivée. Il est sage d’applique un patch du genre avant que le cas se produise chez vous 🙂 !

Notez mon billet, Google va adorer :
1 étoiles - J'aime pas !2 étoiles - Bof !3 étoiles - Bien !4 étoiles - Très bien !5 étoiles - Génial ! (3 votes, moyenne : 4,67 sur 5)
Loading...

5 commentaires sur “Retirer le bouton mise à jour sous Prestashop 1.6”

  1. OK, merci Webbax !
    Idem, je me suis aussi fait avoir à une ou deux reprises.
    Et effectivement l’option « Vérifier automatiquement les mises à jour de modules » de l’admin / préférences ne fonctionne pas.
    Très mauvaise initiative de Prestashop 1.6 en l’occurrence…

  2. Bonjour,

    Je vois ici que vous remplacez le bouton « mettre à jour » par un bouton « configurer ». On aura donc toujours un bouton « configurer » même pour les modules qui n’ont pas de configuration. Et ce bouton risque de rediriger le client vers un page blanche.

  3. Pour éviter le bug de la page blanche avec le lien « Configurer » vous pouvez utiliser le code suivant :

    {* Webbax - 18.04.16 *}
    {if $module->installed && $module->is_configurable}
        <a class="btn btn-default" href="index.php?controller=AdminModules&token={$smarty.get.token}&configure={$module->name}&module_name={$module->name}">
                <i class="icon-wrench"></i> {l s='Configure'}
        </a>
    {else}
        <a class="btn btn-default" href="#">
                <i class="icon-wrench"></i> {l s='Dérouler'}
        </a>
    {/if}
    

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *