Flux d’activité

Flux d’activité de Messages


  1. Bonjour,

    Le nombre de champs d'images téléchargeables est limité (20 par défaut) par la configuration PHP upload_max_filesize. Il est donc nécessaire de limiter le nombre de champs par couleur afin de ne pas dépasser cette limite.

    Une correction consiste à afficher un nombre de champ image en fonction du nombre de couleurs. Dans la page administrer/produits.php, il faut modifier la fonction maj_produit. Au début de la fonction, il faut ajouter


    // Le nombre de champs d'images téléchargeable est limité par la configuration PHP upload_max_filesize qui peut être modifiée dans php.ini ou httpd.conf
    // Il est donc nécessaire de limiter le nombre de champs par couleur afin de ne pas dépasser cette limite
    if(ini_get('upload_max_filesize') && !empty($frm['couleurs'])){
    $upload_images_per_color = ceil(min(5, ini_get('upload_max_filesize'))/count($frm['couleurs']));
    } else {
    $upload_images_per_color = 2;
    }
    [/CODE] Il faut également remplacer le bloc de code qui génère les champs images pour les couleurs :
    [CODE]
    /**
    * ******************************* Gestion des images des couleurs ***************************************
    */
    $selectCouleur = "SELECT c.*, pc.default_image, pc.image1, pc.image2, pc.image3, pc.image4, pc.image5, pc.couleur_id as coul
    FROM peel_couleurs c
    INNER JOIN peel_produits_couleurs pc ON pc.couleur_id = c.id AND pc.produit_id = '" . intval(vb($frm['id'])) . "'
    ORDER BY c.position ASC, c.nom_" . $_SESSION['session_langue'] . " ASC";
    $query = query($selectCouleur);
    //Compteur permettant de fournir la default image en fonction de chaque couleurs
    $cmp_default_image = 0;
    while ($nomCouleur = fetch_assoc($query)) {
    $image_found = false;
    for($i = 1;$i <= 5;$i++) {
    if (!empty($nomCouleur["image" . $i])) {
    $image_found = true;
    break;
    }
    }
    echo '
    <tr>
    <td colspan="2" class="label"><br />Fichiers pour la couleur ' . $nomCouleur['nom_' . $_SESSION['session_langue']] . ' (afficher cette couleur par d&#233;faut en front-office <input type="radio" name="default_color_id" ' . frmvalide(vb($frm['default_color_id']) == $nomCouleur['coul']) . ' value="' . $nomCouleur['coul'] . '" />)</td>
    </tr>
    <tr>
    <td colspan="2" class="normal">Fichiers accept&#233;s : images (GIF, PNG et JPEG) et fichiers PDF.</td>
    </tr>
    <tr>
    <td class="label">Num&#233;ro de l\'image ou PDF par d&#233;faut' . BEFORE_TWO_POINTS . ':</td>
    <td class="normal">
    <input name="default_image'.$cmp_default_image.'" value="' . String::str_form_value(vb($nomCouleur['default_image'])) . '" /> Nombre entre 1 et 10
    </td>
    </tr>
    ';
    if ($image_found) {
    for ($i = 1; $i <= 5; $i++) {
    if (!empty($nomCouleur["image" . $i])) {
    if (pathinfo($nomCouleur["image" . $i], PATHINFO_EXTENSION) == 'pdf') {
    $this_image_html = '<img src="' . $GLOBALS['wwwroot_in_admin'] . '/images/logoPDF_small.png" alt="pdf" width="100" height="100" />';
    } else {
    $this_image_html = '<img src="' . $GLOBALS['repertoire_upload'] . '/' . $nomCouleur['image' . $i] . '" alt=""/>';
    }
    echo '
    <tr>
    <td class="label">Image' . BEFORE_TWO_POINTS . ':</td>
    <td class="normal">
    Nom du fichier : ' . $nomCouleur['image' . $i] . '
    <a class="normal" href="' . get_current_url(false) . '?mode=supprfile&amp;id=' . vb($frm['id']) . '&amp;coul=' . $nomCouleur['coul'] . '&amp;file=image' . $i . '&amp;page=' . (!empty($_GET['page']) ? $_GET['page'] : 1) . '">
    <img src="' . $GLOBALS['administrer_url'] . '/images/b_drop.png" width="16" height="16" alt="" />supprimer cette image</a>
    <input type="hidden" name="imagecouleur' . $nomCouleur['coul'] . '_' . $i . '" value="' . String::str_form_value($nomCouleur['image' . $i]) . '" />
    </td>
    </tr>
    <tr>
    <td colspan="2" class="center">' . $this_image_html . '</td>
    </tr>
    ';
    } else {
    echo '
    <tr>
    <td class="label">Image' . BEFORE_TWO_POINTS . ':</td>
    <td class="normal">
    <input style="width: 100%" name="imagecouleur' . $nomCouleur['coul'] . '_' . $i . '" type="file" value="" />
    </td>
    </tr>';
    }
    }
    } else {
    echo '
    <tr>
    <td class="label" id="td_' . $nomCouleur['coul'] . '" colspan="2"><a href="" onclick="addImagesFields(' . $nomCouleur['coul'] . ');return false">Ajouter les champs de t&#233;l&#233;chargement pour cette couleur</a></td>
    </tr>';
    }
    $cmp_default_image++;
    }
    par

    /**
    * ******************************* Gestion des images des couleurs ***************************************
    */
    $selectCouleur = "SELECT c.*, pc.default_image, pc.image1, pc.image2, pc.image3, pc.image4, pc.image5, pc.couleur_id as coul
    FROM peel_couleurs c
    INNER JOIN peel_produits_couleurs pc ON pc.couleur_id = c.id AND pc.produit_id = '" . intval(vb($frm['id'])) . "'
    ORDER BY c.position ASC, c.nom_" . $_SESSION['session_langue'] . " ASC";
    $query = query($selectCouleur);
    //Compteur permettant de fournir la default image en fonction de chaque couleurs
    $cmp_default_image = 0;
    while ($nomCouleur = fetch_assoc($query)) {
    $nomCouleur_array[]=$nomCouleur;
    }
    // Le nombre de champs d'images t&#233;l&#233;chargeable est limit&#233; par la configuration PHP upload_max_filesize qui peut &#234;tre modifi&#233;e dans php.ini ou httpd.conf
    // Il est donc n&#233;cessaire de limiter le nombre de champs par couleur afin de ne pas d&#233;passer cette limite
    if(ini_get('upload_max_filesize') && !empty($nomCouleur_array)){
    $upload_images_per_color = ceil(min(5, ini_get('upload_max_filesize')) / count($nomCouleur_array));
    } else {
    $upload_images_per_color = 2;
    }
    foreach($nomCouleur_array as $this_couleur) {
    $image_found = false;
    for($i = 1;$i <= $upload_images_per_color;$i++) {
    if (!empty($this_couleur["image" . $i])) {
    $image_found = true;
    break;
    }
    }
    echo '
    <tr>
    <td colspan="2" class="label"><br />Fichiers pour la couleur ' . $this_couleur['nom_' . $_SESSION['session_langue']] . ' (afficher cette couleur par d&#233;faut en front-office <input type="radio" name="default_color_id" ' . frmvalide(vb($frm['default_color_id']) == $nomCouleur['coul']) . ' value="' . $nomCouleur['coul'] . '" />)</td>
    </tr>
    <tr>
    <td colspan="2" class="normal">Fichiers accept&#233;s : images (GIF, PNG et JPEG) et fichiers PDF.</td>
    </tr>
    <tr>
    <td class="label">Num&#233;ro de l\'image ou PDF par d&#233;faut' . BEFORE_TWO_POINTS . ':</td>
    <td class="normal">
    <input name="default_image'.$cmp_default_image.'" value="' . String::str_form_value(vb($this_couleur['default_image'])) . '" /> Nombre entre 1 et 10
    </td>
    </tr>
    ';
    if ($image_found) {
    for ($i = 1; $i <= $upload_images_per_color; $i++) {
    if (!empty($this_couleur["image" . $i])) {
    if (pathinfo($this_couleur["image" . $i], PATHINFO_EXTENSION) == 'pdf') {
    $this_image_html = '<img src="' . $GLOBALS['wwwroot_in_admin'] . '/images/logoPDF_small.png" alt="pdf" width="100" height="100" />';
    } else {
    $this_image_html = '<img src="' . $GLOBALS['repertoire_upload'] . '/' . $this_couleur['image' . $i] . '" alt=""/>';
    }
    echo '
    <tr>
    <td class="label">Image' . BEFORE_TWO_POINTS . ':</td>
    <td class="normal">
    Nom du fichier : ' . $this_couleur['image' . $i] . '
    <a class="normal" href="' . get_current_url(false) . '?mode=supprfile&amp;id=' . vb($frm['id']) . '&amp;coul=' . $this_couleur['coul'] . '&amp;file=image' . $i . '&amp;page=' . (!empty($_GET['page']) ? $_GET['page'] : 1) . '">
    <img src="' . $GLOBALS['administrer_url'] . '/images/b_drop.png" width="16" height="16" alt="" />supprimer cette image</a>
    <input type="hidden" name="imagecouleur' . $this_couleur['coul'] . '_' . $i . '" value="' . String::str_form_value($this_couleur['image' . $i]) . '" />
    </td>
    </tr>
    <tr>
    <td colspan="2" class="center">' . $this_image_html . '</td>
    </tr>
    ';
    } else {
    echo '
    <tr>
    <td class="label">Image' . BEFORE_TWO_POINTS . ':</td>
    <td class="normal">
    <input style="width: 100%" name="imagecouleur' . $this_couleur['coul'] . '_' . $i . '" type="file" value="" />
    </td>
    </tr>';
    }
    }
    } else {
    echo '
    <tr>
    <td class="label" id="td_' . $this_couleur['coul'] . '" colspan="2"><a href="" onclick="addImagesFields(' . $this_couleur['coul'] . ',' . $upload_images_per_color.');return false">Ajouter les champs de t&#233;l&#233;chargement pour cette couleur</a></td>
    </tr>';
    }
    $cmp_default_image++;
    }
    [/code] Le second fichier à modifier est lib/js/admin_all_functions.js. La fonction addImagesFields doit être remplacé par
    [CODE]
    function addImagesFields(colorId, addImagesFields) {
    var html = '<table>';
    for(i=1;i<=addImagesFields;i++){
    html+='<tr><td><input type="file" name="imagecouleur'+colorId+'_'+i+'" /></td></tr>';
    }
    html += '</table>';
    document.getElementById('td_'+colorId).innerHTML = html;
    }

  2. chrissmartinique


    bonjour Simon,

    oui, cela ne vient pas de l'image.

    en utilisant la même image pour chacune des couleurs, celle ci ne s'incrémente dans la base que pour les 4 premières,

    pour les autres cela ne fonctionne pas

    pourtant, elle se charge très bien dans le fichier d'upload, mais pas dans la bdd

    et aucun message d'erreur, si on ne contrôle pas le produit en ligne, on ne s'aperçois pas de l'erreur.

    tout semble se passer convenablement

    merci de votre aide

    cdt

  3. shala


    Bonsoir,

    J'ai creer à la racine de ma boutique un dossier "support" qui contient quelques dossier zip que je souhaite laisser à disposition de mes visiteurs.

    Mais je n'arrive pas à configurer le .htacces de mon dossier "support".

    Si je veux me rendre à l'adrresse URL, cela me renvoi une erreur :

    
    Forbidden
    
    You don't have permission to access /support/ on this server.
    
    
    j'ai mis cela dans mon htacces :
    
    Allow from all
    
    Satisfy Any
    
    

    Je me trompe??

    Merci

  4. Simon développeur PEEL


    Bonjour,

    Sur les versions 6, c'est la fonction params_affiche_produit qui gère la requête de séléction des produits à afficher en front office. Dans cette fonction, le morceau de code


    if (isset($_GET['tri'])) {
    if (!in_array($_GET['tri'], array('nom_' . $_SESSION['session_langue'], 'prix'))) {
    $_GET['tri'] = 'nom_' . $_SESSION['session_langue'];
    }
    $sql .= word_real_escape_string($_GET['tri']) . '` ' ;
    } else {
    $sql .= 'position` ' ;
    }
    [/CODE]

    spécifie l'ordre d'affichage. Vous devez modifier [i]position [/i]par le champ qui vous convient (RAND() en l’occurrence)

  5. chrissmartinique


    Bon, j'ai trouvé une méthode, pas très académique, mais qui peut dépanner le temps que simon ou un autre donne la correction du code.

    la voilà:

    lorsque l'on envoie l'image depuis la fiche de création du produit, elle part bien dans le fichier upload, mais ne s'incrémente pas dans la base de données.

    je copie donc son nom dans le fichier upload, et j'édite la base de données, et je colle le nom de l'image.

    voilà , si cela peut aider en attendant la correction du code

    cordialement

  6. berserker


    Bonjour,

    J'ai un problème simple :

    Pour un produit, j'ai 5 couleurs différentes. J'ai associé 3 images pour les 3 premières couleurs mais impossible d'associer une image pour les 2 couleurs suivantes.

    Je fais apparaître les champs de téléchargement, je vais chercher mon image, elle s'affiche dans le champ, je sauvegarde mais quand je reviens sur ma fiche produit l'image n'est pas intégrée.

    Quand je regarde dans le dossier upload par ftp, je m'aperçois que l'image n'apparait pas, elle n'a pas été uploadée !

    Mon question : Pourquoi ? Pourquoi ca marche pour 3 couleurs et pas pour 4 ou 5 ?

    Merci de votre aide.

    Cordialement.

  7. chrissmartinique


    Bonjour Simon,

    oui, j'ai déja mis en place cette technique, et j'ai modifié le texte: "votre barème dégressif Par 3 : xx,xx € TTC / unité" Par : "Le troisième acheté gratuit".

    cependant, les prix ne sont pas toujours divisible par 3, et cela fait des erreurs de prix.

    ?Je posais la question pour savoir si vous aviez déjà développé ce code.

    Je vais donc me plonger dans le code, et essayer de développer ceci tout seul.

    merci encore

  8. Simon développeur PEEL


    Bonjour,

    Vous pouvez configurer les prix à l'unité pour 3 produits achetés pour faire en sorte que la sommes soit équivalente à un produit offert.

    Par exemple, un produit vaut 9 €. Si le prix à l'unité pour 3 produits commandés est égal à 6€, la somme de 3 produits commandé sera 3*6 donc 18€, ce qui revient à 1 produit à 9€ offert.

    Pour rendre configurable le fait d'offrir un produit à partir d'un nombre ajouté au panier, Il s'agit d'un développement qui nécessite de nombreuses modifications dans le code. Je vous invite pour cela à prendre contact avec un conseiller commercial au 01 75 43 67 97 ou par le formulaire de contact http://www.peel.fr/utilisateurs/contact.php.

    Merci

  9. chrissmartinique


    Bonjour,

    me revoilà après une absence assez longue pour cause de santé.

    Est il possible de modifier la gestion des lots, de façon que l'on ne soit pas en prix dégressifs, mais en remise par quantité?

    exemple, "Le troisième acheté gratuit"

    au lieu de " votre barème dégressif

    Par 3 : xx,xx € TTC / unité

    merci de votre aide

    chriss

Twitter Advisto ecommerce

Facebook PEEL Shopping