Simon développeur PEEL

Administrateur PEEL
  • Compteur de contenus

    2 913
  • Inscrit(e) le

  • Dernière visite


Tout ce qui a été posté par Simon développeur PEEL

  1. Simon développeur PEEL a ajouté un message dans un sujet  sous installation archlinux   

    Bonjour,

    la formalisation des objets est compatible avec PHP4, mais du coup ça ne passe pas en strict dans PHP 5.4. Je vous propose de remplacer la ligne de code error_reporting(E_ALL); dans configuration.inc.php ligne 18 par


    if (version_compare(PHP_VERSION, '5.4', '>=')) {
    error_reporting(E_ALL & ~E_STRICT);
    } else {
    error_reporting(E_ALL);
    }
    [/CODE]
    • 0
  2. Simon développeur PEEL a ajouté un message dans un sujet  Si commande égale ? 0 euro   

    Bonjour,

    Vous devez refaire le test '.( $_SESSION['session_caddie']->total > 0 ?'':'disabled="disabled"'). ' quelques lignes plus bas, sur le second input. Le bloc suivant


    } else {
    $output .= '<input ' . (!empty($GLOBALS['site_parameters']['email_moneybookers']) ? 'onclick="document.getElementById(\'payment_method\').style.display=\'none\';"' : '') . ' type="radio" name="payment_technical_code" value="' . String::str_form_value($tab_paiement['technical_code']) . '" ' . frmvalide(vn($selected_payment_technical_code) == $tab_paiement['technical_code'] || num_rows($res_paiement) == 1) . ' />' . String::html_entity_decode_if_needed($tab_paiement['nom_' . $_SESSION['session_langue']]);
    if ($tab_paiement['tarif'] != 0) {
    $output .= BEFORE_TWO_POINTS . ': + ' . fprix($tab_paiement['tarif'], true);
    }
    $output .= '<br />';
    }
    [/CODE] devient [CODE]
    } else {
    $output .= '<input '.( $_SESSION['session_caddie']->total > 0 ?'':'disabled="disabled"'). ' ' . (!empty($GLOBALS['site_parameters']['email_moneybookers']) ? 'onclick="document.getElementById(\'payment_method\').style.display=\'none\';"' : '') . ' type="radio" name="payment_technical_code" value="' . String::str_form_value($tab_paiement['technical_code']) . '" ' . frmvalide(vn($selected_payment_technical_code) == $tab_paiement['technical_code'] || num_rows($res_paiement) == 1) . ' />' . String::html_entity_decode_if_needed($tab_paiement['nom_' . $_SESSION['session_langue']]);
    if ($tab_paiement['tarif'] != 0) {
    $output .= BEFORE_TWO_POINTS . ': + ' . fprix($tab_paiement['tarif'], true);
    }
    $output .= '<br />';
    }

    • 0
  3. Simon développeur PEEL a ajouté un message dans un sujet  Images promotion   

    Bonjour,
    la fonction affiche_prix gère l'affichage du prix partout en front office. Le HTML des modules "A la une" ou "meilleures vente" est généré par la fonction get_product_in_container_html du fichier lib\fonctions\display_product.php.
    • 0
  4. Simon développeur PEEL a ajouté un message dans un sujet  Probléme pour lancer PEEL SHOPPING 6.4   

    Bonjour,

    Pour configurer le serveur local, je vous invite à consulter le forum wamp sur le site http://forum.wampserver.com/list.php?1
    • 0
  5. Simon développeur PEEL a ajouté un message dans un sujet  Images promotion   

    Bonjour,

    Dans la fonction affiche_prix du fichier lib\fonctions\display_product.php, il faut repérer les balises HTML <del>. Vous pouvez placer vos images entre $product_object->get_original_price($with_taxes, $reseller_mode, true) et ces balises.
    Pour faire de même dans le caddie, il faudra répéter l’opération dans la fonction get_caddie_products_summary_table de lib\fonctions\display_caddie.php
    • 0
  6. Simon développeur PEEL a ajouté un message dans un sujet  Affichage des produits dans les marques   

    Bonjour,

    Le paramètre correspondant au nombre de produits par colonnes est le 8ème paramètre de la fonction affiche_produit ($nb_colonnes.) Dans achat/marques.php, vous pouvez modifier le paramétrage de la fonction affiche_produits :
    => affiche_produits($id_marque, null, 'catalogue', $GLOBALS['site_parameters']['nb_produit_page'], 'general', true, 0, 3);
    • 0
  7. Simon développeur PEEL a ajouté un message dans un sujet  alignements produits   

    Bonjour,

    la fonction str_form_value de la classe String permet de formater une chaine de caractère présent dans un attribut HTML :



    function str_form_value($value, $flags = ENT_COMPAT)
    {
    if (function_exists('html_entity_decode') && (version_compare(PHP_VERSION, '5.0.0', '>=') || GENERAL_ENCODING == 'iso-8859-1')) {
    // Le 4&#232; argument de htmlspecialchars appel&#233; $double_encode n'est pas disponible avant PHP 5.2.3
    // Il faut donc appeler htmlentities_decode d'abord pour &#233;viter le double encodage des entit&#233;s HTML
    return htmlspecialchars(String::html_entity_decode($value, ENT_QUOTES, GENERAL_ENCODING), $flags, GENERAL_ENCODING);
    } else {
    // Version simplifi&#233;e si PHP < 4.3
    // ou si PHP >=4.3 et <5 car sinon pas de support de UTF-8
    return str_replace('"', '&quot;', $value);
    }
    }
    [/CODE]

    D'autres fonctions de formatage existe dans la class pour formater une ancre, en fonction des besoins. De plus, le nom de la fonction [i]str_form_value[/i] oblige à être utilisé dans ce contexte.
    • 0
  8. Simon développeur PEEL a ajouté un message dans un sujet  Moteur de recherche   

    Bonjour,

    J'ai fais une erreur, ce n'est pas pc.etat = "1" mais c.etat = "1". L'alias pc correspond à la table peel_produits_categories qui n'a pas de champ etat.
    • 0
  9. Simon développeur PEEL a ajouté un message dans un sujet  Si commande égale ? 0 euro   

    Bonjour,

    Actuellement, le montant du panier est à 0, est le code

    <input '.( $_SESSION['session_caddie']['total'] == 0 ?'disabled="disabled"':'').' type="radio" onclick="document.getElementById(\'payment_method\').style.display=\'block\';" name="payment_technical_code" value="' . String::str_form_value($tab_paiement['technical_code']) . '" ' . frmvalide($selected) . ' />' . String::html_entity_decode_if_needed($tab_paiement['nom_' . $_SESSION['session_langue']]); ne permet pas de griser les boutons radio. Pour comprendre pourquoi le test $_SESSION['session_caddie']['total'] == 0 ne fonctionne pas comme on le voudrait, l'idée est de savoir quelle est la valeur de $_SESSION['session_caddie']['total'] lorsque que le caddie est vide. Mais entre temps, je pense avoir trouvé la solution. Il faut modifier le test '.( $_SESSION['session_caddie']['total'] == 0 ?'disabled="disabled"':'').' pour '.( $_SESSION['session_caddie']->total > 0 ?'':'disabled="disabled"').'

    Pouvez-vous essayer cette version svp ?
    • 0
  10. Simon développeur PEEL a ajouté un message dans un sujet  maintenace   

    Bonjour,
    Le code à modifier ce trouve dans le fichier configuration.inc.php :


    if (!defined('IN_PEEL_ADMIN') && !defined('IN_ACCES_ACCOUNT') && !defined('IN_GET_PASSWORD') && $GLOBALS['site_parameters']['site_suspended'] === 'TRUE' && !a_priv('admin*', false)) {
    echo '<div align="center" style="font-size:14px;font-weight:bold;"><br /><br />' . UPDATE_WEBSITE . '<br /><br />' . THANKS_UNDERSTANDING . '</div>';
    die();
    }
    [/CODE]
    Le message présent dans la fonction getHTMLHead est un message destiné aux administrateurs qui peuvent consulter les pages de la boutique, même suspendue.
    • 0
  11. Simon développeur PEEL a ajouté un message dans un sujet  Probléme pour lancer PEEL SHOPPING 6.4   

    Bonjour,

    Sur quel hébergeur ou serveur local avez-vous installé votre boutique?
    Dans un premier temps, vous pouvez vérifier que le module rewrite d'apache est chargé (sur WAMP, Cliquer sur le menu Apache > modules apache > rewrite_module)
    • 0
  12. Simon développeur PEEL a ajouté un message dans un sujet  Indiquer le suvi des pages ? Goggle   

    Bonjour,

    La fonction show_preview_next du fichier modules\precedent_suivant\fonctions.php doit être modifié pour quelle retourne uniquement le lien, sans HTML. :


    /**
    * show_preview_next()
    * @param integer $product_id
    * @param integer $product_position
    * @param mixed $prev_next
    * @return
    */
    function show_preview_next($product_id, $product_position, $prev_next, $no_html = false)
    {
    $output = '';
    $cond='';
    if (!empty($_GET['catid'])) {
    $current_catid = intval($_GET['catid']);
    } else {
    //On recupere la categorie du produit
    $query_current_catid = query("SELECT categorie_id
    FROM peel_produits_categories
    WHERE produit_id = '" . intval(vn($product_id)) . "'");
    if($result_current_catid = fetch_assoc($query_current_catid)) {
    $current_catid = $result_current_catid['categorie_id'];
    }
    }
    if($GLOBALS['site_parameters']['in_category']==0) {
    // liste des cat&#233;gories de la cat&#233;gories du produit en cours vers la cat&#233;gorie m&#232;re
    $ascending_category_array = get_category_tree_and_itself($current_catid, 'parents');
    // Suppression de la categorie racine afin d'&#233;viter d'avoir l'ensemble des produits remont&#233;s.
    foreach($ascending_category_array as $key => $category) {
    if($category == 0) {
    unset($ascending_category_array[$key]);
    }
    }
    // Recherche des cat&#233;gories fille de chaque cat&#233;gorie trouv&#233;e pr&#233;c&#233;demment + suppression des doublons + supression de la categorie 0
    $descending_category_array = array_unique(get_category_tree_and_itself($ascending_category_array, 'sons'));
    $cond = 'ppc.categorie_id IN(' . implode(',', $descending_category_array) . ')';
    } else {
    $cond = 'ppc.categorie_id="'. intval($current_catid) . '"';
    }
    if($prev_next=='prev') {
    // ATTENTION : dans params_affiche_produits on affiche par d&#233;faut avec pp.position ASC, pp.id DESC
    // Donc les tris sur id et position sont invers&#233;s
    // Par ailleurs, il faut faire attention &#224; la compatibilit&#233; si plusieurs produits ont la m&#234;me position
    $sql ="SELECT ppc.produit_id AS id, ppc.categorie_id as idC, pp.nom_". $_SESSION['session_langue'] . " AS nom, pp.position
    FROM peel_produits pp
    LEFT JOIN peel_produits_categories ppc ON ppc.produit_id = pp.id
    LEFT JOIN peel_categories pc ON ppc.categorie_id = pc.id
    WHERE (pp.position<" . intval(vn($product_position)) . " OR (pp.position=" . intval(vn($product_position)) . " AND pp.id>" . intval($product_id) . "))
    AND pc.etat = 1
    AND pp.etat = 1
    AND pp.on_gift = 0
    AND ".$cond."
    ORDER BY pp.position DESC, pp.id ASC
    LIMIT 1";
    $q_get_previous = query($sql);
    if($r_get_previous = fetch_assoc($q_get_previous)) {
    $previous = $r_get_previous['id'];
    $prev_catid = $r_get_previous['idC'];
    $prev_name= $r_get_previous['nom'];
    }
    if(!empty($previous)){
    if($no_html) {
    $output.= get_product_url($previous, $prev_name, $prev_catid, get_name_category($prev_catid));
    } else {
    $output.= '<td class="td_mod_next_prev">
    <a class="product_prev" href="' . get_product_url($previous, $prev_name, $prev_catid, get_name_category($prev_catid)) . '" title="'. PREV .'">'. PREV .'</a></td>';
    }
    }
    } elseif($prev_next=='next') {
    // ATTENTION : dans params_affiche_produits on affiche par d&#233;faut avec pp.position ASC, pp.id DESC
    // Donc les tris sur id et position sont invers&#233;s
    // Par ailleurs, il faut faire attention &#224; la compatibilit&#233; si plusieurs produits ont la m&#234;me position
    $q_get_next = query("SELECT ppc.produit_id AS id, ppc.categorie_id as idC, pp.nom_". $_SESSION['session_langue'] . " AS nom, pp.position
    FROM peel_produits pp
    LEFT JOIN peel_produits_categories ppc ON ppc.produit_id = pp.id
    LEFT JOIN peel_categories pc ON ppc.categorie_id = pc.id
    WHERE (pp.position>" . intval(vn($product_position)) . " OR (pp.position=" . intval(vn($product_position)) . " AND pp.id<" . intval($product_id) . "))
    AND pc.etat = 1
    AND pp.etat = 1
    AND pp.on_gift = 0
    AND ".$cond."
    ORDER BY pp.position ASC, pp.id DESC
    LIMIT 1");
    if($result_get_next = fetch_assoc($q_get_next)) {
    $next = $result_get_next['id'];
    $next_catid = $result_get_next['idC'];
    $nom_suivant= $result_get_next['nom'];
    }
    if(!empty($next)){
    if($no_html) {
    $output.= get_product_url($next, $nom_suivant, $next_catid, get_name_category($next_catid));
    } else {
    $output.= '<td class="td_mod_next_prev">
    <a class="product_next" href="' . get_product_url($next, $nom_suivant, $next_catid, get_name_category($next_catid)) . '" title="'.NEXT .'">'.NEXT .'</a></td>';
    }
    }
    }
    return $output;
    }
    [/CODE] Ensuite, dans getHTMLHead, il faut ajouter le bloc suivant : [CODE]
    if (is_module_precedent_suivant_active()) {
    if (defined('IN_CATALOGUE_PRODUIT') && !empty($_GET['id'])) {
    $product_object = new Product($_GET['id']);
    $output .= '
    <link rel="canonical" href="'.get_current_url().'&#8221; />';
    $output .= '
    <link rel="prev" href="'.show_preview_next($product_object->id, $product_object->position, 'prev').'" />';
    $output .= '
    <link rel="next" href="'.show_preview_next($product_object->id, $product_object->position, 'next').'" />';
    }
    }

    • 0
  13. Simon développeur PEEL a ajouté un message dans un sujet  Migration vers Peel 6.4   

    Bonjour,

    J'ai ajouté cette requête dans le script de mise à jour sur la page

    Merci.
    • 0
  14. Simon développeur PEEL a ajouté un message dans un sujet  Fckeditor   

    Bonjour,

    Vous pouvez appuyer sur MAJ+Entrée pour faire un simple retour à la ligne, et non pas un nouveau paragraphe.
    • 0
  15. Simon développeur PEEL a ajouté un message dans un sujet  alignements produits   

    Bonjour,

    Le site est en maintenance, je ne peux pas voir les produits.

    .
    => Vous modifiez le bon bloc de code, il faut effectivement régler la taille de ces cellules.
    • 0
  16. Simon développeur PEEL a ajouté un message dans un sujet  Moteur de recherche   

    Bonjour,

    au niveau de la ligne


    WHERE p.etat = "1" AND p.on_gift = "0" AND p.nom_' . $_SESSION['session_langue'] . ' != "" AND ' . $cond . '
    [/CODE]
    • 0
  17. Simon développeur PEEL a ajouté un message dans un sujet  affichage url en langue espagnol   

    Bonjour,

    Les caractères spéciaux sont remplacé par la fonction rewriting_urlencode dans le fichier lib\fonctions\format.php. Vous pouvez supprimer l'appel à cette fonction de remplacement de caractère dans la fonction get_product_url et get_product_category_url du fichier \modules\url_rewriting\rewrite.php pour laisser les caractères accentués dans les liens.

    De manière général, il n'est pas conseillé de mettre des espaces et caractères spéciaux dans les urls.
    • 0
  18. Simon développeur PEEL a ajouté un message dans un sujet  module download   

    Bonjour,

    Contrairement au module présent dans l'offre Premium, le module telechargement permet de gérer la distribution de fichiers de manière générale, et non pas par produit. Si vous êtes intéressé par ce module, je vous invite à prendre contact avec un conseiller commercial au 01 75 43 67 97.
    • 0
  19. Simon développeur PEEL a ajouté un message dans un sujet  fil d'ariane   

    Bonjour,

    Il faut effectivement ajouter l'appel à $product_object->name sur la ligne return $nom . $additional_text. Les dernière lignes de la fonction doivent donc être :


    if ($parent > 0) {
    return affiche_arbre_categorie($parent, ' &gt; ' . $nom . ' ' . $additional_text) . (!empty($product_object->name) ? ' &gt; ' . $product_object->name : '');
    } else {
    return $nom . $additional_text . (!empty($product_object->name) ? ' &gt; ' . $product_object->name : '');
    }
    [/CODE]
    • 0
  20. Simon développeur PEEL a ajouté un message dans un sujet  alignements produits   

    Bonjour,

    Le bloc de code correspondant à l'affichage du prix des produits en ligne dans les catégories est celui-ci :


    if ($params['mode'] == 'line') {
    // Affichage des produits en ligne
    $output .= '
    <table>';
    if ($product_object->is_price_flash(is_reseller_module_active() && is_reseller())) {
    $output .= '
    <tr>
    <td colspan="6" class="col_flash">
    ' . TEXT_FLASH1 . ' ' . get_formatted_duration(strtotime($product_object->flash_end) - time(), false, 'day') . ' ' . TEXT_FLASH2 . '
    </td>
    </tr>
    ';
    }
    $output .= '
    <tr>
    <td class="col_image" style="width:10%;">
    <a title="' . String::str_form_value($product_object->name) . '" href="' . $urlprod . '">' . $this_image . '</a>
    </td>
    <td style="width:45%;">
    <a href="' . $urlprod . '" title="' . String::str_form_value($product_object->name) . '">' . $product_object->name . '</a>
    </td>
    <td style="text-align:center; width:12%;">
    ';
    if (empty($product_object->on_estimate)) {
    $output .= ((vn($GLOBALS['site_parameters']['category_order_on_catalog']) != 1)?$product_object->affiche_prix(display_prices_with_taxes_active(), is_reseller_module_active() && is_reseller(), true, false, null, false, true, 'full_expand_in_container', false):'');
    } else {
    $output .= display_on_estimate_information(true);
    }
    $output .= '
    </td>
    <td style="text-align:center; width:10%;">';
    if ($product_object->on_stock == 1 && is_stock_advanced_module_active()) {
    $output .= $product_object->get_product_stock_state();
    }
    $output .= '
    </td>
    <td class="col_zoom" style="width:10%;">
    ' . $zoom_link . ' <br />
    <p class="col_detail"><a title="' . String::str_form_value($product_object->name) . '" href="' . $urlprod . '">' . $details_text . '</a></p>
    </td>';
    if (vn($GLOBALS['site_parameters']['category_order_on_catalog']) == '1' || $type == 'save_cart') {
    $output .= '
    <td colspan="2" class="fc_add_to_cart">
    <!-- Ajout au panier -->';
    if (!empty($product_object->on_check) && is_module_gift_checks_active()) {
    $output .= affiche_check($product_id, 'cheque', null, true);
    } else {
    if ($type == 'save_cart') {
    $output .= affiche_critere_stock($product_object->id, 'save_cart_details_', null, true, true, vn($prod['save_cart_id']), vn($prod['saved_couleur_id']), vn($prod['saved_taille_id']), vn($prod['saved_id_attribut']), vn($prod['saved_quantity']));
    } elseif ($type == 'search') {
    $output .= affiche_critere_stock($product_object->id, 'catalogue_details_', null, true);
    } else {
    $output .= affiche_critere_stock($product_object->id, 'catalogue_details_', null, true, true);
    }
    }
    $output .= '
    </td>';
    }
    $output .= '
    </tr>';
    if (a_priv('admin_products', false)) {
    $output .= '
    <tr>
    <td colspan="6"><a href="' . $GLOBALS['administrer_url'] . '/produits.php?mode=modif&amp;id=' . $product_object->id . '" class="label">' . MODIFY_PRODUCT . '</a></td>
    </tr>';
    }
    $output .= '
    </table><hr />';
    }
    [/CODE]

    Pouvez-vous fournir une url sur laquelle vous avez ce problème ? Je pourrais être plus précis.

    Merci
    • 0
  21. Simon développeur PEEL a ajouté un message dans un sujet  Paiement moneybookers   

    Bonjour,

    Pouvez-vous donner le code PHP qui génère le formulaire, et la page dans laquelle ce code est exécuté?

    Merci
    • 0
  22. Simon développeur PEEL a ajouté un message dans un sujet  fil d'ariane   

    Bonjour,

    Oui, c'est ça :) !

    Après plus grande réflexion, on peux faire une version peu plus courte en utilisant la classe Product :


    function affiche_arbre_categorie($catid = 0, $additional_text = null, $id_produit = null)
    {
    if (!empty($id_produit)) {
    $product_object = new Product($id_produit);
    }
    $qid = query('SELECT parent_id, nom_' . $_SESSION['session_langue'] . '
    FROM peel_categories
    WHERE id = "' . intval($catid) . '" AND etat = "1"');
    if (num_rows($qid)) {
    list($parent, $nom) = fetch_row($qid);
    $nom = '<a href="' . get_product_category_url($catid, $nom) . '">' . $nom . '</a>';
    } else {
    $parent = 0;
    $nom = '';
    }
    if ($parent > 0) {
    return affiche_arbre_categorie($parent, ' ' . $nom . ' ' . $additional_text) . (!empty($product_object->name) ? ' &gt; ' . $product_object->name : '');
    } else {
    return $nom . $additional_text;
    }
    }
    [/CODE]
    • 0
  23. Simon développeur PEEL a ajouté un message dans un sujet  fil d'ariane   

    Bonjour,

    Il faudrait ajouter un 3ème paramètre à la fonction affiche_arbre_categorie, qui contiendrais l'id du produit. La valeur par défaut du paramètre serait null.
    Si ce paramètre n'est pas vide, il faudra faire une requête pour chercher le nom du produit dans la table peel_produit. Le résultat de la requête doit être ajouté sur cette ligne :
    return affiche_arbre_categorie($parent, ' &gt; ' . $nom . ' ' . $additional_text) . '>' . $nom_du_produit;

    Dans la fonction affiche_ariane de \lib\fonctions\display.php, il faut ajouter l'id du produit en paramètre de la fonction :


    } elseif (defined('IN_CATALOGUE_PRODUIT')) {
    $short_link_text = affiche_arbre_categorie(vn($_GET['catid']),null,vn($_GET['id']));
    [/CODE]
    • 0
  24. Simon développeur PEEL a ajouté un message dans un sujet  Modification URL   

    Bonjour,

    Il faut vérifier la valeur de la variable $wwwroot dans le fichier lib/setup/info.inc.php. Cette variable contient l'URL de base de votre site et est utilisée pour l'ensemble des liens générés sur le site.
    • 0
  25. Simon développeur PEEL a ajouté un message dans un sujet  Editeur de texte fckeditor et ckeditor   

    Bonjour,
    Il est vrai que cette fonction version 6.4 dépend d'autres améliorations faite au même moment dans le logiciel.
    La partie qui nettoie les div invisible laissé par l'éditeur de texte est :


    if(strlen($value)>20 && String::strpos($value, 'myEventWatcherDiv')!==false) {
    // On fait un test sur strlen (sans String::, c'est plus rapide) d'abord pour &#233;viter de faire le test strpos lorsque ce n'est pas utile pour acc&#233;l&#233;rer
    // On nettoie ce qui est laiss&#233; par CKEditor
    $value = str_replace(array('<div id="myEventWatcherDiv" style="display: none;"> </div>', '<div style="display:none;" id="myEventWatcherDiv"> </div>', '<div style="display: none;" id="myEventWatcherDiv"> </div>'), '', $value);
    }
    [/CODE]

    Vous pouvez ajouter ce morceau de code à la fonction existante sur votre version, cela ne devrait pas poser de problème.
    • 0

Twitter Advisto ecommerce

Facebook PEEL Shopping