Flux d’activité

Flux d’activité de Messages

  1. kimono


    Bonjour,

    L'envoi automatique de mails en anglais ne fonctionne plus pour l'avis d'expédition. Le client reçoit le français mais pas l'anglais. Dans la gestion des modèles d'email, send_avis_expedition est bien coché (bouton en vert). Si je supprime le français, pas de message. Les messages en anglais ne fonctionnent pas. Je n'ai pas vérifié pour les autres messages automatique mais je suppose qu'il en est de même. L'anglais est aussi bien coché dans la rubrique langue puisque le site est à moitié en anglais. J'ai cherché partout la faille, je ne comprends pas. J'utilise PEEL version 9.2.1 en premium.

  2. ant0ny


    Je confirme que j'ai plus eu d'inscription ou de contact via formulaire par des robots depuis cette modification.
    J'ai bien eu des inscription d'utilisateurs réel (oui j'ai quand même vérifier que on ne bloquer pas toutes les inscriptions)

    Mais ça fait bizarre maintenant j'ai l'impression que je reçois plus les mail tellement c'est calme lol j'était dernièrement a environ 250 mails via le formulaire sur le mois donc presque une 10ene chaque jours...

  3. ant0ny


    Apres tout mon dimanche a regarder et chercher des infos (que je ne trouve que pour WP etc...) et qui ne ressemblent pas a se qui est utilisé sur peel, je perd espoir :( 
    je fait l'appel, je fait la fonction mais je vois pas comment la liaison est faite entre les deux, je doit louper quelque chose...

    J'ai aussi changer mon fichier fonction.php par bonjour.php dans le dossier bonjour mais ça ne change rien... J'ai l'impression que c'est totalement ignoré.
    Je vois qu'il y a des fonctions pour installer le module sur le script mais comment ça pourrais le faire, on doit lui dire quelque part ou alors faut aussi un autre fichier d'installation...

    Si je n'y arrive pas d'ici 2-3 jours alors j'abandonnerai et coderai tout en dur dans le code source car a ce train la, je risque de ne jamais rien faire...

    Merci pour votre aide ;)

  4. ant0ny


    Bonjour, 

    Voulant apporter beaucoup de modification mais ne souhaitant pas a chaque mise a jour remettre en dur le tout, je regarde pour créer des modules en utilisant les hooks.

    Malheureusement j'apprend sur la tas. J'ai suivi ce sujet: https://forum.peel.fr/topic/8372-fonctionnement-des-modules-à-partir-de-peel-8/ et https://forum.peel.fr/topic/8371-fonctionnement-des-hooks-sur-peel-à-partir-de-la-version-8/ mais je galère et n'arrive a rien.

    Le but etant pour le moment de faire un simple module qui pourrait simplement afficher un "bonjour" voir afficher une valeur. Je voulais que se soit au dessus de la liste des commandes du coups j'ai regarder dans fonctions_admin.php qui gére l'affichage de la liste sur admin_commande_liste.tpl et j'ai trouver un endoit avec un hook:

    		$tpl_results = call_module_hook('affiche_liste_commandes_admin', $tpl_results, 'array', true);
    		$tpl->assign('results', $tpl_results);

    Mais celui-ci envoi un tableau au tpl j'ai donc créer juste au dessus cette ligne:

    call_module_hook('hook_test_affiche_liste_commandes_admin',vn($Links->nbRecord));

    logiquement ça appel hook_test_affiche_liste_commandes_admin et lui envoi le nombre de commande.

     

    Pour créer un module, dans le dossier des modules j'ai créer un dossier "bonjour" dans lequel j'ai créer un fichier fonctions.php dans lequel j'ai ceci:

    <?php
    /**
     *
     * @brief Exemple de module : dossier monmodule/ contenant un fichier Monmodule.php ayant pour contenu la classe ci-dessous
     * @package PEEL
     * @author PEEL <contact@peel.fr>
     * @copyright Advisto SAS 51 bd Strasbourg 75010 Paris https://www.peel.fr/
     * @version $Id: xxx $
     * @access public
     */
    class bonjour extends Module
    {
        /**
         * Constructor
         *
         */
        public function __construct()
        {
            $this->name_by_lang = array('en' => 'Hello', 'fr' => 'Bonjour');
            $this->description_by_lang = 'afficher simplement bonjour';
            $this->technical_code = 'bonjour';
            $this->activation_variable = 'module_bonjour';
            $this->version = '8.0';
            $this->vendor = 'Ant0ny';
            $this->peel_versions_compatibility_infos = array('min' => '8.0', 'max' => null);
            $this->dependencies = null;
    
            parent::__construct();
        }
    
        /**
         * Vérifie l'installation du module
         */
        static public function check_install()
        {
            $listTables = listTables();
            return in_array('peel_bonjour', $listTables);
        }
        
        /**
         * Gère les opérations liées au module
         */
        public function execute($mode = null)
        {
            if($mode == 'install') {
                query("
    CREATE TABLE IF NOT EXISTS `peel_bonjour` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `bonjourchamp` varchar(255) NOT NULL DEFAULT '',
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    ");
                set_configuration_variable(array('technical_code' => 'modules_lang_folders_array', 'string' => array_merge_recursive($GLOBALS['site_parameters']['modules_lang_folders_array'], array('bonjour' => '/modules/bonjour/lang/')), 'type' => 'array', 'site_id' => 0, 'origin' => $this->technical_code), true);
                $GLOBALS['site_parameters']['modules_front_office_functions_files_array']['bonjour'] = '/modules/bonjour/fonction.php';
                set_configuration_variable(array('technical_code' => 'modules_front_office_functions_files_array', 'string' => $GLOBALS['site_parameters']['modules_front_office_functions_files_array'], 'type' => 'array', 'origin' => 'sites.php', 'site_id' => 0), true);
            } elseif($mode == 'uninstall') {
                query("DROP TABLE `peel_bonjour`");
                unset($GLOBALS['site_parameters']['modules_lang_folders_array']['bonjour']);
                set_configuration_variable(array('technical_code' => 'modules_lang_folders_array', 'string' => $GLOBALS['site_parameters']['modules_lang_folders_array'], 'type' => 'array', 'site_id' => 0, 'origin' => $this->technical_code), true);
                unset($GLOBALS['site_parameters']['modules_front_office_functions_files_array']['bonjour']);
                set_configuration_variable(array('technical_code' => 'modules_front_office_functions_files_array', 'string' => $GLOBALS['site_parameters']['modules_front_office_functions_files_array'], 'type' => 'array', 'origin' => 'sites.php', 'site_id' => 0), true);
            }
        }
    
        /**
         * Fonction de hook, qui renverra un contenu dépendant du hook concerné
         *
         * @param array $params
         * @return
         */
        static public function hook_test_affiche_liste_commandes_admin($params) {
    echo 'Bonjour - Hello avec params='.$params;
    	return "<br>TEST BONJOUR<br>";
        }
    
     
    
        /**
         * quelconque()
         *
         * @param string $param1
         * @param string $param2
         * @return
         */
       // public function quelconque($param1, $param2)
       // {
       // }
    }
    ?>

    J'ai repris cela depuis le sujet indiqué plus haut et adapter.

    j'ai aussi créer une variable sur le site comme suite:
    Origine :modules
    Code technique :module_bonjour
    Type :integer
    Votre contenu :1

    Je pense que cette création se fait logiquement via un fichier installation mais pour le moment j'essaie que ça fonctionne avant de faire des installations automatiques etc...

    Actuellement j'ai rien du tout... alors que si je met simplement au dessus de l'appel un echo j'ai le texte tout en haut de la page affiché quand même (même si après logiquement faudrait l'envoyé au tpl mais du coups faudrai quand meme modifier le tpl?)
    J'ai vu que l'exemple crée et supprime une table (pas utile dans mon cas mais j'ai laisse histoire de pas trop modifier l'exemple).

    Et quand on trouve ceci dans le code:

    call_module_hook('product_details_show',xxx);

    c'est un appel des hooks qui peuvent avoir plusieurs nom du moment que ça comporte product_details_show dedans? comme 
     

    function last_views_hook_product_details_show($params) {

    mais ça pourrais etre aussi quleque chose de nouveau comme

     

    function test_bonjour_hook_product_details_show($params) {

    ?

    Merci pour votre aide et surtout a Simon ;)

  5. ant0ny


    Ca semble fonctionnel et sans erreur maintenant.

    Par contre c'est quoi celle ligne bleu qui passe dans le texte? J'ai pas vu ça dans la version demo.
    mini_210213034957124642.png

    J'ai vu que le stock temporaire était directement mis a jour lors de la mise en panier, se qui est un bon point par rapport a la version 7.2 ou c'était mis a jour uniquement sur la page panier donc pendant ce temps c'était la foire.

    Quand je vois le site de base je me rend compte que je vais avoir pas mal de boulot. Pour les hooks j'ai taper un oeil on dirai un peut comme une fonction, j'aurai surement besoin d'aide pour comprendre le mécanisme. Y a t-il un exemple simple quelque part? Si je comprend bien on doit créer un fichier avec les info qui devront être incluse mais ou mettre le fichier, quel nom doit-il avoir, les variable de la page de base peuvent être utiliser directement dans notre page hooks ou faut les passer en paramètre un peut comme les fonctions? J'ai déjà regarder sur quelques site mais c'est confus dans ma tête, ici je vais le faire concrètement donc ça devrai être mieux. Comme je doit faire beaucoup de modification sur le site, se serai bien de faire comme ça pour que se soit plus "portable" sur les prochaines versions et pas devoir a chaque fois replonger dans le code. Maintenant je pense pas que l'on puisse tout faire avec, par exemple je suis pas sur que se soit possible le modifier la couleur de fond des ligne de commandes par rapport au statut car dans le code de base c'est fixé mais peut-être que je me trompe, je suis loin d'être un pro du code, je ne fait que y toucher...

    Merci a tout cas pour l'aide reçu et les informations ;)

  6. ant0ny


    Copie des fichier puis erreur 500. Seule la page de login fonctionne, je me connecte et erreur 500.
    Je suis ensuite aller manuellement sur /administrer/ ou j'ai eu la page et le message de mise a jour.

    Version détectée : 7.2.1

    PEEL PHP : 9.3.0

    Logiquement je suis en 7.2.0... Je valide, on verra :)

    ×MAJ de la base de données exécutée : ancienne version = 7.2.1 - nouvelle version = 8.0.0
    ×MAJ de la base de données exécutée : ancienne version = 8.0.0 - nouvelle version = 8.0.1
    ×MAJ de la base de données exécutée : ancienne version = 8.0.1 - nouvelle version = 8.0.2
    ×MAJ de la base de données exécutée : ancienne version = 8.0.2 - nouvelle version = 8.0.3
    ×MAJ de la base de données exécutée : ancienne version = 8.0.3 - nouvelle version = 8.0.4
    ×MAJ de la base de données exécutée : ancienne version = 8.0.4 - nouvelle version = 8.0.5
    ×MAJ de la base de données exécutée : ancienne version = 8.0.5 - nouvelle version = 9.0.0
    ×MAJ de la base de données exécutée : ancienne version = 9.0.0 - nouvelle version = 9.1.0
    ×MAJ de la base de données exécutée : ancienne version = 9.1.0 - nouvelle version = 9.1.1
    ×MAJ de la base de données exécutée : ancienne version = 9.1.1 - nouvelle version = 9.2.0
    ×MAJ de la base de données exécutée : ancienne version = 9.2.0 - nouvelle version = 9.2.1
    ×MAJ de la base de données exécutée : ancienne version = 9.2.1 - nouvelle version = 9.2.2
    ×MAJ de la base de données exécutée : ancienne version = 9.2.2 - nouvelle version = 9.3.0

    Une fois la migration effectuée, il faut se déconnecter puis se reconnecter pour rafraichir votre session utilisateur.

     

    Déconnection.... 
    HTTP ERROR 500
    HTTP ERROR 500

    Je sais plus rien faire... Plus aucune page ne fonctionne, j'ai ERROR 500 partout...

    C'est mal parti pour cette mise a jour vu que la c'est un test sur un serveur avec un site pratiquement vierge, sans modification, juste 4-5 article et 2-3 client enregistré et le modele peel7 de base. J'ai peur pour le passage de mon site réel. En plus erreur 500 et on a pas plus d'information....

    Peut-être mettre a jour la version de PHP, je vais regarder de ce coté la...

    NON, aucun changement en mettant en PHP 7.3...

    Je pense que j'ai trouvé suite au log, j'ai vu modeles/peel9
    pourtant j'avais fait ceci:

    changez dans la configuration générale de votre site la valeur de "Répertoire de charte graphique utilisé :" en peel7 et non pas votre répertoire personnalisé. Ainsi, lors de la mise à jour du code, ce répertoire sera mis à jour et le code PHP sera compatible avec la nouvelle version pour vous permettre d'utiliser votre site immédiatement.

    Du coups il pointer sur peel7 (ancien fichier) et non pas sur peel9 (nouveau). On devrai surement nommer ce dossier peel au moins pour les mise a jour ça envoi sur le bon non? Bon je continue de tester tout ca :) 

  7. ant0ny


    Bonjour Simon,

    Merci pour ces explications, j'avais jamais fait attention que dans les langues il était possible de les désactivé, je m'attendais a une croix pour supprimer celle-ci mais c'est la petite boule verte qui passe a l'orange (je connais pas la raison du orange mais c'était toujours présent) puis on peut la passer sur gris et la c'est désactivé.

    Je me lance pour faire mes premier test de migration de 7.2 a 9.3 sur un autre hébergement avant d'attaquer mes modif et la migration réel :)

    Bonne journée :)

  8. Simon développeur PEEL


    Bonjour,

    Lors de la mise à jour de la base de données par le script update.php, les champs ou les valeurs ajoutées par vous ne poseront pas de problème. Vous pouvez voir les requêtes SQL exécutées dans ce cas dans le fichier administrer/update.php, ces requêtes SQL sont stocké dans la variable $sql_update_array.
    Le script de migration ne supprime aucun champs, si des tables ont été ajoutées elle ne seront pas modifiées par le script de mise à jour.
    Concernant les langues vous pouvez les désactiver depuis l'administration des langues en back office

  9. ant0ny


    Bonjour, 

    J'ai acheter la version 9.3 + module ogone il y a maintenant 1 mois et je commence a avoir du temps pour passer de la version 7.2.0 a la 9.3 mais avant toute chose j'ai regarder se qui était indiqué ici: https://forum.peel.fr/topic/8373-tutorial-migration-de-toute-version-peel-shopping-vers-93/

    je vais donc suivre cela mais voulais avant tout cela apporter sur la nouvelle version les modification que j'avais sur la version 7.2.0, je vais faire une installation sur un autre serveur, y faire les modification et test et une fois que tout sera bon alors je ferai la mise a niveau puis je remplacerai par les fichier de la v9.3 modifier. 

    Par contre j'ai une question, j'ai vu que le fichier update détecte la version que nous avons et ensuite en fonction de cela, apporte des modifications sur la base. si on a ajouter des champs, cela peut-il poser un soucis dans les modifications? lors de la détection je suppose que oui mais lors de la modification, cela pourrait supprimer ces champs? Je suppose que si on a ajouter des tables, celle-ci ne seront pas affecté par cette modification?

    Sur la version 7.2.0 actuel j'avais installer 3 langue (FR,NL,EN) et je ne souhaiterai mettre que le FR avec la nouvelle version, une idée de comment je pourrait faire? une nouvelle installation avec juste FR et dans la base le reste des langue serait ignoré? 

    Merci pour ces informations :)

     

  10. ant0ny


    Bonjour, je me suis dernièrement pencher sur le sujet car en effet j'ai aussi beaucoup d'inscription "spam" et beaucoup de mail de contact via le formulaire type "spam" le tout surement automatiquement.

    Je suis en version 7.2.0 et je vais prochainement passer a la dernière version si j'arrive a passer toutes mes données entre ces versions.

    Bref, je penser mettre une sécurité en plus ou faire des changement de celle-ci mais cela aura aussi un impacte sur les utilisateurs réel et il faut le dire, remplir les captcha c'est chiant.

    Je me suis donc tourner sur le fait que le formulaire étant rempli automatiquement, cela doit prendre moins de 1 seconde donc j'ai simplement désactivé le bouton et apres x secondes le bouton est actif, cela devrai empêcher pas mal de spam a ce niveau (c'est fait depuis a peine 24h donc je ne peut pas encore le confirmer réellement mais il me semble que se soit beaucoup mieux).

    La première chose que j'avais faite c'est de n'autoriser le formulaire contact uniquement aux client connecté donc inscrit, dans /www/utilisateurs/contact.php J'ai ajouter ceci apres $GLOBALS['DOC_TITLE'] = $GLOBALS['STR_CONTACT_US'];:

    if (!est_identifie()) {
    	$_SESSION['session_redirect_after_login'] = get_current_url(true);
    	redirect_and_die($GLOBALS['wwwroot'] . '/membre.php');
    }

    Si vous voulez garder le formulaire pour tous alors ne pas faire cela.

    Ensuite je me suis pencher sur les inscription et dans /www/modeles/mon_modele/smarty/user_register_form.tpl presque tout en bas avant {$js_password_control} j'ai mis:

    <script language="JavaScript" type="text/javascript">
     {literal}
    (function() {
      var id_sub = "sub"; // id du bouton submit à désactiver
      var str_fin = "Ouvrir un compte"; // texte du bouton une fois actif
      var pre = "Il reste "; // chaine à insérer avant le compte
      var post = " secondes avant de pouvoir ouvrir un compte..."; // chaine à insérer après le compte
      var sub;
      window.onload=function() {
        sub = document.getElementById(id_sub);
        rebours(10);
      };
      function rebours(n) {
        if(sub.disabled) {
          if(n == 0) {
            sub.value = str_fin;
            sub.disabled = false;
          } else  {
          sub.value = pre+n+post;
          }
          setTimeout(function() {
            rebours(n-1);
          },1000);
        }
      }
    })();
     {/literal}
    </script>

    cela permettra d'activer le bouton apres 10 secondes, vous pouvez modifier cela en changeant rebours(10);
    Mais il faut aussi mettre un ID au bouton et désactivé celui-ci d'origine donc on modifie la ligne du bouton:

    <p class="center">{$token}<input class="btn btn-primary" type="submit" value="{$submit_text|str_form_value}" /></p>

    A changer par:

    <p class="center">{$token}<input id="sub" class="btn btn-primary" type="submit" value="{$submit_text|str_form_value}" disabled/></p>

    on a dont mis un id="sub" et mis disabled pour qu'il soit désactivé.

    Ensuite je me suis rendu compte que un robot deja inscrit avais reussi a remplir le formulaire contact, j'ai donc fait la meme chose sur la formulaire contact donc dans /www/modeles/mon_modele/smarty/contact_form.tpl presque tout en bas, au dessus de {if !$skip_introduction_text}</div>{/if} j'ai mis:

    <script language="JavaScript" type="text/javascript">
     {literal}
    (function() {
      var id_sub = "sub"; // id du bouton submit à désactiver
      var str_fin = "Envoyer"; // texte du bouton une fois actif
      var pre = "Il reste "; // chaine à insérer avant le compte
      var post = " secondes avant de pouvoir envoyer..."; // chaine à insérer après le compte
      var sub;
      window.onload=function() {
        sub = document.getElementById(id_sub);
        rebours(10);
      };
      function rebours(n) {
        if(sub.disabled) {
          if(n == 0) {
            sub.value = str_fin;
            sub.disabled = false;
          } else  {
          sub.value = pre+n+post;
          }
          setTimeout(function() {
            rebours(n-1);
          },1000);
        }
      }
    })();
     {/literal}
    </script>

    et quelque lignes au dessus j'ai aussi ajouté un ID sur le bouton et mis disabled comme ceci:

    <td>{$token}<div style="text-align:center; margin-top: 10px; margin-bottom: 10px;"><input id="sub" type="submit" class="btn btn-primary btn-lg" value="{$STR_SEND|str_form_value}" disabled/></div></td>

     

    Je vais voir dans les prochains jours si ça fonctionne, je devrai etre rapidement fixé vu le nombre reçu chaque jours en temps normal.

    Je sais pas si c'est optimisé mais ça fonctionne sur ma version 7.2.0 et on touche pratiquement pas au code d'origine.

    Si ça peut vous aider et en aider d'autres c'est top ;)

     

    Bonne journée.

  11. Simon développeur PEEL


    Bonjour,

    Vous pouvez effectivement changer le captcha utilisé dans le formulaire, par exemple en utilisant reCAPTCHA. Cela nécessite un développement spécifique sur votre site.

    La méthode la plus simple est d'utiliser la méthode du "pot de miel" que nous avons mis en place sur la version 9.3 de PEEL. Vous pouvez lire les topics https://forum.peel.fr/topic/16481-mail-frauduleux/ et https://forum.peel.fr/topic/15961-inscription-frauduleuse/ qui traitent du sujet.

  12. Simon développeur PEEL


    Bonjour,

    Vous avez créé le compte depuis le front-office ?

    Pour s'assurer que la fonctionnalité d'envoi d'email fonctionne, vous pouvez faire un test de recouvrement de mot de passe, ou utiliser le formulaire de contact de votre site et consulter votre boite email.
    Vous pouvez également consulter les logs d'email du serveur pour voir si les emails sont correctement envoyés par le serveur.

     

    PS : j'ai supprimé le sujet que vous aviez créé dans la rubrique, "Café du ecommerce : discussion générale" puisque celui ci faisait doublons.

  13. ked


    Bonjour,

    J'ai la version peel premium 7.1.0 et comme surement pas mal de monde je reçoit bcp de spam via le formulaire de contact. Le code captcha est surement plus a jour pour les robot et peut donc etre facilement cracké.

    Sans installer forcement une nouvelle version de peel (car j'ai fait pas mal de changement ds le code(enfin une agence), peut-on simplement mettre a jour le captcha du formulaire de contact afin de réduire les spam ou les eradiquer?

    En vous remerciant

     

  14. ant0ny


    Bonjour, 

    Merci Simon pour cette oriantation, c'est surement ce parametre qui etait a l'origine, j'ai passer sur individuel mais du coups il me manque des elements dans les articles....

    J'ai Rubrique "formation en ligne" niveau 1
    Dedans j'ai 3 rubriques donc en niveau 2 
    Et dans ces 3 rubriques de niveau 2 j'ai des articles.

    Du coups quand je suis dans la rubrique de niveau 1, je ne vois pas les liens vers les rubriques de niveau 2 mais j'ai bien les articles dans les rubrique de niveau 2 et niveau 1.

    Enfin c'est pas bien grave, la modification faite du coups touche uniquement aux produits mais pas aux articles et leurs rubriques donc je vais laisser en global mais c'est bien ce parametre.

    De toute façon je vais passer sur la dernière version et je ferai tous mes tests sur la dernière version ainsi que mes modifications, si je rencontre un soucis ou quelque chose de bizarre je le remonterai.

    Merci pour l'info.

     


  15. Bonjour M. Denamur,

    Nous vous remercions pour votre message.

    Effectivement un certain nombre des fonctionnalités que vous mentionnez sont intéressantes pour le ecommerce.

    En fonction des besoins exprimés par nos clients nous effectuons régulièrement des développements sur des site PEEL Shopping. A partir de ces développements réalisés pour nos clients, nous enrichissons notre CMS au fur et à mesure des sorties de nouvelles versions si ces développements sont considérés comme relevant de besoins généraux. En parallèle nous fiabilisons en continu PEEL Shopping pour en faire un outil à jour techniquement et performant. Nous continuerons ces évolutions fonctionnelles et techniques pour permettre à notre communauté de bénéficier d'un logiciel open-source gratuit et efficace.

    Concernant les modules : depuis la version 8 nous avons implémenté des hooks qui permettent aux modules d'agir à différents endroits du code sans avoir à ajouter des lignes. Vous pouvez consulter la page https://forum.peel.fr/topic/8371-fonctionnement-des-hooks-sur-peel-à-partir-de-la-version-8/ pour en savoir plus.
    Mais pour des modules plus spécifiques il faudra effectivement soit ajouter de nouveaux hooks, soit modifier directement le code de base de PEEL Shopping.

    En ce qui concerne votre souhait de bénéficier d'un module PEEL Premium et Ogone, vous pouvez faire votre achat en ligne sur www.peel.fr ou en contactant mon collègue M. Pinot au 01 75 43 62 92.

    Cordialement,

Twitter Advisto ecommerce

Facebook PEEL Shopping