Gilles Boussin

Administrateur PEEL
  • Content count

    14,010
  • Joined

  • Last visited


Posts posted by Gilles Boussin


  1. Bonsoir,

    Sur une version récente il faut :

    - soit changer la variable wwwroot dans l'administration des variables de configuration, avant de déplacer vos fichiers.

    - soit changer la variable wwwroot dans phpmyadmin avant ou après déplacement

    - soit supprimer cette variable et reposer sur la détection automatique, qui peut ne pas fonctionner sur certains hébergements

    et sur une ancienne version, il faut modifier la variable wwwroot dans lib/setup/info.inc.php


  2. Bonjour,

    * Pour votre information, le calcul fait est le suivant :

    $product_object->get_final_price(get_current_user_promotion_percentage(), $with_taxes, $reseller_mode) * 1000 / intval($product_object->poids)

    avec un poids en grammes dans $product_object->poids

    et la fonction fprix pour l'affichage fait un number_format en PHP à 2 décimales, sachant que number_format fait l'arrondi en plus du formattage.

    Donc :

    - vous prenez le prix affiché (avec ou sans TVA, suivant votre boutique

    - vous divisiez par le poids en kilo (= grammes divisé par mille)

    - vous arrondissez à 2 chiffres après la virgule

    Ce fonctionnement est inchangé depuis plusieurs années. Si vous avez une plus vieille version, je ne sais pas comment est fait le calcul dans votre version, en tous cas si ça ne fonctionne pas ainsi vous pouvez chercher "poids" dans le code pour trouver la formule utilisée.

    * Avec votre exemple chiffré, si je corrige en prenant un prix au kilo de 21,95 et non pas 24,95 puisque j'imagine que vous vous êtes trompé dessus, les chiffres sont les suivants :

    3.95/180*1000=21.9444444 => arrondi, ça donne 21.94 et non pas 21.95 contrairement à ce que vous indiquez.

    Gilles


  3. Bonjour,

    Sur plusieurs années il y a eu forcément pas mal de modifications sur ce module, mais ce problème était le principal de cette version à ma connaissance. Il y a tout de même cet email d'alerte qui permet de trouver ce qui se passe et de réagir.

    Systempay n'était pas très utilisé avant cette version, c'est suite au passage forcé d'ATOS vers Systempay pour certaines banques populaires qui a amélioré fortement le nombre d'utilisateurs, et par la même de retours sur l'utilisation du module.

    Concernant votre client et un passage en 7.X, le responsive design apporte une valeur d'usage pour ses propres clients qui peut être rapidement rentable.

    Bonne année 2015 !


  4. Bonjour,

    Sur votre version qui n'est pas toute récente, il y avait un problème dans ce module sur la gestion du format du montant effectivement.

    Vous avez deux problèmes différents :

    - dans le fichier modules/systempay/ipn.php, le test est bon, mais simplement dans l'envoi d'email d'alerte il y a un formattage qui rajoute l'espace que vous avez remarqué. Ceci n'a donc aucune conséquence, vous pouvez lire 105000 centimes, comparés à 100 centimes payés.

    - le vrai problème est que le client a payé 100 centimes, c'est-à-dire 1 EUR, du fait que l'envoi du formulaire à la banque a eu un problème au niveau de la gestion du millier.

    Vous pouvez constater cela dans l'interface de gestion systempay, dans laquelle vous pouvez annuler la transaction pour votre client, pour lui envoyer ensuite le formulaire de paiement via votre administration, après la correction ci-dessous.

    Pour corriger l'appel à systempay pour demander un paiement supérieur à 1000 EUR dans une version inférieure à 6.4.2 (avant 2012), changez dans le fichier lib/fonctions/order.php

    la ligne suivante (vers 1177, cherchez "getSystempayForm" pour la trouver) :

    $output .= '<div align="center">' . getSystempayForm($order_id, $_SESSION['session_langue'], fprix($amount_to_pay, false, $com->devise, true, $com->currency_rate, false, true, '.'), $_SESSION['session_devise']['code'], $com->email, 1, '', $com->adresse_bill, $com->zip_bill, $com->ville_bill, $com->pays_bill) . '</div>';

    par :

    $output .= '<div align=center">' . getSystempayForm($order_id, $_SESSION['session_langue], fprix($amount_to_pay, false, $com->devise, true, $com->currency_rate, false, false), $_SESSION['session_devise']['code'], $com->email, 1, '', $com->adresse_bill, $com->zip_bill, $com->ville_bill, $com->pays_bill) . '</div>';

    En vous souhaitant un bon réveillon,

    Gilles


  5. Bonsoir,

    Si votre site fonctionne lorsque vous supprimez des fichiers de librairies de fonctions tel que display_article, c'est lié à une mise en cache par votre serveur, et non pas parce que ces fichiers ne servent pas.

    Si vous modifiez les lignes que j'indiquais dans lib/fonctions/display_article.php ça modifiera ce que vous souhaitez.

    Gilles


  6. Bonjour,

    Sur les versions récentes la fonction qui gère cela et fait certaines vérifications est : is_user_tva_intracom_for_no_vat()

    Vous pouvez reprendre le fonctionnement sur la dernière version du code téléchargeable, et éventuellement le compléter à votre guise.

    Gilles


  7. Bonjour,

    Deux solutions :

    - Vous pouvez dans l'administration remplir les variables position pour indiquer l'ordre

    - Dans lib/fonctions/display.php ligne 203 vous pouvez mettre à la place de la ligne déjà existant avec ORDER BY :

    ORDER BY r.position ASC, r.id DESC";

    et ligne 268 :

    ORDER BY p.position ASC, p.id DESC";

    Dans la prochaine version, ce sera mis par défaut.

    Gilles


  8. Bonjour,

    Si vous n'avez pas touché au code de votre site, je peux m'occuper de corriger votre configuration : communiquez moi vos accès admin par message privé ou à contact@peel.fr

    Si vous avez modifié votre code, appelez nous au 01 75 43 67 97 entre 9h30 et 18h et nous étudierons avec vous les alternatives.

    Gilles


  9. L'entête est une accumulation de fonctionnalités, qui doivent par ailleurs s'agencer correctement suivant la largeur de l'écran.

    Elle est donc générée automatiquement avec des modules qui s'activent ou non, etc. Si vous souhaitez changer la structure, il faut toucher au template Smarty haut.tpl ce qui nécessite des compétences d'intégrateur graphique.


  10. Bonjour,

    Ceci vous permet de faire des messages qui ne s'affichent que tant qu'ils ne sont pas validés, et dont le résultat est stocké dans un cookie sur le navigateur de votre visiteur.

    Une fois validé, pour le faire réapparaître il faut supprimer le cookie ou changer de navigateur.

    Vous pouvez par ailleurs éditer cette zone HTML administrable dans l'administration.

    Gilles


  11. Bonjour,

    L'installation de PEEL pour la connexion à la base de données utilise des nomenclatures standards. Dans le cadre de la définition du serveur :

    - soit le port à utiliser est le 3306, ce qui est la norme : il n'y a alors rien à spécifier

    => le serveur à rentrer est donc le nom de la machine, sans aucune mention de socket ou de port

    - soit votre hébergeur vous donne un socket ou un port particulier, auquel cas il est censé vous préciser que les connexions à préciser pour les logiciels sont sous la forme serveur:XXXX (que ce soit port ou socket à préciser)

    => exemple : si votre port est 33333, et que le nom de serveur est "hoster_server_mysql" alors vous indiquez à l'endroit du serveur : hoster_server_mysql:33333

    Gilles


  12. Pour contourner ce problème, vous pouvez remplacer la ligne 3789 du fichier lib/fonctions/fonctions.php par la ligne suivante (à éditer avec par exemple Notepad++) :

    $output .= "\n\n\n" . $js_content;

    et supprimez la ligne 3735 :

    require_once($GLOBALS['dirroot'] . '/lib/class/JShrink.php');

    Suivant votre version, vous aurez peut-être d'autres problèmes, mais en tous cas celui-là sera contourné sans conséquence majeure pour votre site hormis une optimisation inactivée sur les javascripts.

    Gilles


  13. Bonsoir,

    La ligne concernée est :

    $output .= "\n\n\n" . (\JShrink\Minifier::minify($js_content));

    Manifestement vous utilisez une version de PHP <= 5.2.X qui n'est plus supportée depuis maintenant 4 ans : http://php.net/eol.php

    L'usage du namespace Shrink nécessite PHP 5.3. Voyez avec SIVIT quelle version vous avez et comment avoir une version plus récente >= 5.3.

    Cordialement,

    Gilles


  14. if(!empty($frm['session_utilisateur']['nom_famille']))

    {

    $output .= '<h1>' . String::html_entity_decode_if_needed($_SESSION['session_utilisateur']['nom_famille']) . '</h1>';  

    }

    else

    {

    $output .= '<h1>' . String::html_entity_decode_if_needed($_SESSION['session_utilisateur']['societe']) . '</h1>';  

    }

     

    Mais dans les 2 cas champ nom_famille rempli ou vide il m'affiche tout le temps societe et jamais nom de famille

    Vous avez changé societe en nom_famille dans votre test, donc forcément là il faut laisser !empty. Faites un var_dump($_SESSION['session_utilisateur']['nom_famille'], $_SESSION['session_utilisateur']['societe']) pour voir vos données. Si vous n'avez pas l'ahbitude de programmer, regardez des tutoriaux sur internet sur comment déboguer.

     

    NB : Je n'avais pas vu, mais vous testez sur $frm et ensuite vous affichez des données de $_SESSION => remettez en cohérence votre test : $_SESSION dans le test


  15. Bonjour,

     

    Effectivement sur des versions récentes, un petit suffixe est rajouté dans le nom de fichier automatiquement pour garder le nom par ailleurs sans avoir de problème de collision de fichier.

     

    Dans votre version :

     

        \modules\banner\administrer\banner.php (2 hits)
            Line 50:                 $image = upload($_FILES['image'], false, 'image_or_swf', $GLOBALS['image_max_width'], $GLOBALS['image_max_height']);
            Line 62:                 $image = upload($_FILES['image'], false, 'image_or_swf', $GLOBALS['image_max_width'], $GLOBALS['image_max_height']);
    
    

     

    Vous n'avez qu'à changer le second argument de false à true pour chacune de ces deux lignes, et ça forcera le changement de nom, puisque upload a pour définition :

    function upload($the_file, $rename_file = true, $file_kind = null, $image_max_width = null, $image_max_height = null, $path = null, $new_file_name_without_extension = null)
    

    Gilles


  16. Bonjour,

     

    Tout d'abord je remarque que vous avez modifié ce template Smarty pour vos besoins, et ma réponse restera dans le cadre général.

    Vous avez les modes de paiement disponibles qui sont appelés successivement avec création d'une petite table permettant de présenter le bouton radio à sélectionner d'une part, et d'éventuelles explications complémentaires d'autre part dans une cellule à côté.

     

    Si vous voulez présenter en colonne, sur une version >= 7.1 qui est sur la base de Bootstrap, vous pouvez par exemple :


    - créer des <div class="col-sm-4"> .... </div> à la place des table / tr / td    (voyez sur getbootstrap.com pour la gestion des col-xx-xx)

    - gérez les explications complémentaires sans créer de cellule particulière

    - créez un <div class="row"> ... </div> en tant que parent du contenu venant de la fonction qui liste les moyens de paiement

     

    Ceci n'est pas évident si c'est la première fois que vous travaillez sur Bootstrap, je vous invite à faire des essais plus simples d'abord pour bien en maîtriser le fonctionner, sur la base de tutoriaux par exemples.

     

    Je ne pense pas personnellement qu'une présentation en colonne de manière générique soit très adaptée, en revanche ça rendra bien si vous adaptez très spécifiquement à votre cas.

     

    Gilles

     

Twitter Advisto ecommerce

Facebook PEEL Shopping