Flux d’activité

Flux d’activité de Messages

  1. Sam59


    Hé hé, cela a bien résolu l'un des deux problèmes, celui de l'erreur en bas de page sur la page achat/index.php.

    Il reste celle du menu catégorie (l'arbre dont je parle dans le premier post.

    Il s'agit bien de la fonction noeud_parent_cat() de template.php :

    function parent_noeud_cat($noeud_cat,$aktul_cat,&$actif_cat){

    // Si c'est pas la racine
    if($aktul_cat != 0 && $noeud_cat != 0){
    // Recherche le parent du noeud à tester
    $sql=mysql_query("SELECT id, parent_id FROM peel_categories WHERE id = $aktul_cat");
    // récupère le résultat
    $cat=mysql_fetch_array($sql);
    // Appel récursif jusqu'à la racine
    parent_noeud_cat($noeud_cat,$cat['parent_id'],$actif_cat);
    // Si le noeud testé est le noeud recherché
    if($cat['parent_id']==$noeud_cat){
    // Met le drapeau à 1
    $actif_cat=1;
    }
    }
    }[/codebox]

    Cette fonction est appelée par la fonction construit_menu_arborescent_cat qui elle a toujours été appelée, même avant que je n'affiche les catégories en page d'accueil. Seulement cette fonction possède des paramètres :

    function construit_menu_arborescent_cat(&$sortie_cat, &$selectionne_cat, $parent_cat=0, $indent_cat=-1)

    Et elle même passe des paramètre à parent_noeud_cat :

    parent_noeud_cat($cat['id'],$catid, $actif_cat=0);

    La fonction construit_menu_arborescent est :

    [codebox]function construit_menu_arborescent_cat(&$sortie_cat, &$selectionne_cat, $parent_cat=0, $indent_cat=-1)
    {
    global $wwwroot, $catid;
    $indent_cat +=1;
    if(is_array($catid)) $catid=0;
    // Recherche de tous les noeuds ayant $parent comme noeud parent
    $qid = mysql_query("SELECT id, parent_id, nb, nom_".$_SESSION['langue']." FROM peel_categories WHERE parent_id = $parent_cat AND etat = '1' ORDER BY position");
    // Si la requete a abouti
    if($qid){
    // Pour toutes les entrées
    while($cat = mysql_fetch_array($qid)){
    // Boucle pour ajouter l'indentation (une image vide)
    // Pour aller plus loin on peut gérer des lignes de suite
    for($i=0;$i<$indent_cat;$i++){
    $sortie_cat .= "<img src='$wwwroot/images/mnu_empty.gif' border=0>";
    }
    // Recherche d'enfant pour d&eacute;terminer l'aspect de l'icone (feuille ou dossier)
    $fils_cat = mysql_query("SELECT id, parent_id, nom_".$_SESSION['langue']." FROM peel_categories WHERE parent_id = ".$cat['id']." AND etat = '1' ORDER BY position");
    $div_cat = mysql_num_rows($fils_cat);
    // Si il y a des enfants
    if ($div_cat) {
    // Ajout de l'icone du dossier
    $sortie_cat .= "<img src='$wwwroot/images/triangle_haut_orange.gif' border=0>&nbsp;";
    // Ajout du lien (identique &agrave; construit menu)
    $sortie_cat .= "<a class=menuleft href=$wwwroot/achat/index.php?catid=" . $cat['id'] .">";
    // Test si le noeud est le noeud actif (id), si oui, ajoute du gras (plus visuel)
    if($cat['id']==$catid) $sortie_cat .= "<b>";
    // Ajoute le nom de la cat&eacute;gorie et d&eacute;bute un calque DIV ayant pour ID l'Id de la cat&eacute;gorie
    $sortie_cat .= stripslashes($cat['nom_'.$_SESSION['langue'].'']);

    // if (!empty($cat['nb'])) {$sortie_cat .= " (".$cat['nb'].") "; }

    $sortie_cat .= "</a></b><br /><DIV id=".$cat['id'];
    // Recherche si le noeud fait partie de l'arborescence du noeud actif
    parent_noeud_cat($cat['id'],$catid, $actif_cat=0);
    // Si Oui,
    if(($cat['id'] == $catid) || ($actif_cat == 1)){
    // Rends le calque visible
    $sortie_cat.= " style=\"display:yes\">\n";
    }
    else{
    // Sinon, rends le calque invisible
    // $sortie_cat.= " style=\"display:none\">\n"; sam : affichage direct des sous menus
    $sortie_cat.= " style=\"display:yes\">\n";
    }
    }
    // Sinon, c'est un document
    else{
    // Ajoute l'image du document
    $sortie_cat .= "<img src='$wwwroot/images/puces_texte_footer.gif' border=0>&nbsp;";
    // Ajoute le lien (identique &agrave; construit_menu)
    $sortie_cat .= "<a class=menuleft href=$wwwroot/achat/index.php?catid=" . $cat['id'] .">";
    // Si c'est la feuille active, la met en gras
    if($cat['id']==$catid) $sortie_cat .= "<b>";
    // Ajoute le nom
    $sortie_cat .= stripslashes($cat['nom_'.$_SESSION['langue'].'']);

    // if (!empty($cat['nb'])) {$sortie_cat .= " (".$cat['nb'].") "; }

    $sortie_cat .= "</a></b><br />";
    }
    // Si c'est un noeud (cat&eacute;gorie)
    if($div_cat){
    // Appel r&eacute;cursif pour ajout des enfants
    construit_menu_arborescent_cat($sortie_cat, $selectionne_cat, $cat['id'], $indent_cat);
    // Ferme le calque
    $sortie_cat.="</div>";
    }
    }
    }
    }

    Elle est appelée dans haut.php comme ceci :

    <!-- CATALOGUE PRODUIT -->	
    <table border="0" cellspacing="0" cellpadding="0" width="220" style="border-top:0px solid #EEEEEE;border-left:0px solid #EEEEEE;border-right:0px solid #EEEEEE;padding-top:16px;padding-left:5px;padding-right:5px;padding-bottom:16px;">
    <tr><td class="normal2" width="220">
    <?php
    echo "<div class=\"entete\"><img src=\"$wwwroot/images/fleche.gif\">&nbsp;".CATALOG."</div>";

    if (!isset($_GET['catid'])) { $catid = 0; } else {$catid = $_GET['catid']; }

    $frm['parent'] = array($catid);

    construit_menu_arborescent_cat($categorie_options, $frm['parent']);

    echo "<div style=\"padding:4px\">".$categorie_options."</div>";

    ?>
    </td></tr>
    </table>
    <!-- FIN PRODUIT -->[/codebox]

    Je soupçonne qu'un paramètre soit correct dans le cas où on affiche l'arborescence en page d'accueil, mais pas lorsque qu'on entre dans une catégorie...

    En fait je pense que cette fonction n'était pas appelée jusqu'à présent car je n'utilisais pas l'affichage des catégories en page d'accueil.

  2. Sam59


    Non aucune,

    j'ai juste voulu utiliser l'affichage des catégories en page d'accueil, que je n'utilisais pas jusque là.

    J'ai donc ajouté l'appel à la fonction print_categorie() dans la page index.php car il n'y était pas.

    Dès lors l'image des catégories d'affiche bien en page d'accueil. Lorsque je clique sur l'image de l'une d'entre elles, cela engendre l'affichage de la page achat/index.php, avec les articles de la catégorie.

    Mais dans cette page, j'ai l'erreur en question dans l'arbre des catégories en colonne de gauche. Mais l'arbre est tout de même correctement affiché.

    De plus je viens de constater que j'ai une seconde erreur de ce type en base de page :

    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\achat\index.php on line 142
    [/codebox]

    Les lignes en question sont :

    [codebox]//Boutons pr&eacute;c&eacute;dent et suivant
    if($start)
    {print("<a class=petit href=\"achat/index.php?catid=".$catid."&start=".($start-$nb)."\">Page pr&eacute;c&eacute;dente</a>");}

    $result=mysql_query("SELECT COUNT(*) FROM peel_produits p, peel_produits_categories pc WHERE p.id = pc.produit_id AND pc.categorie_id = $catid AND p.etat = 1");

    $row=mysql_fetch_row($result);

    if($row[0]>($start+$nb))
    {
    if($start)
    {print(" / ");}
    print("<a class=petit href=\"achat/index.php?catid=".$catid."&start=".($start+$nb)."\">Page suivante</a>");
    }

    La ligne 142 est le $row=mysql_fetch_row($result);

    Voila toute l'histoire... :)

  3. paulanna


    dans administrer/produits.php

    repèrer ligne 980 environ

    $select = mysql_query("SELECT id, reference, nom_".$_SESSION['langue']." FROM peel_produits ORDER BY reference ASC");

    et mettre

    $select = mysql_query("SELECT id, reference, nom_".$_SESSION['langue']." FROM peel_produits WHERE etat = '1' ORDER BY nom_".$_SESSION['langue']." ASC");

    c' est comme a du faire willy dans la parite public du site

  4. panne sèche


    quoi tu veux faire ?

    Bonjour,

    Dans le back office y aurait il possibilité que la liste des produits associés s'affiche par ordre alphabétique sans tenir compte de la casse ni de l'accentuation

    (pour l'instant le tri est assez brouillon, car les produits qui commencent par une majuscule , ne se trouvent pas au même endroit que ceux qui commencent par une minuscule)

    et principalement j'aimerais que les articles mis en attente et ceux supprimés ne s'affichent plus dans cette liste.

    Merci pour l'aide.

    PS: côté boutique: Le problème d'affichage des produits associés en attente ou supprimés a été résolu par Mr Willy (encore merci) mais le problème reste entier côté back office

    cordialement

    A. Stradiot

    http://www.corpsetames.eu

  5. Sam59


    Bonjour,

    J'ai un

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\modeles\default\template.php on line 411
    [/codebox]

    La fonction est :

    [codebox]// Fonction r&eacute;cursive pour rechercher si $noeud fait partie de l'arborescence d'un noeud donn&eacute;
    // Utilis&eacute; par construit_menu afin d'ouvrir les DIV necesssaires dans l'arborescence
    function parent_noeud_cat($noeud_cat,$aktul_cat,&$actif_cat){

    // Si c'est pas la racine
    if($aktul_cat != 0 && $noeud_cat != 0){
    // Recherche le parent du noeud &agrave; tester
    $sql=mysql_query("SELECT id, parent_id FROM peel_categories WHERE id = $aktul_cat");
    // r&eacute;cup&egrave;re le r&eacute;sultat
    $cat=mysql_fetch_array($sql);
    // Appel r&eacute;cursif jusqu'&agrave; la racine
    parent_noeud_cat($noeud_cat,$cat['parent_id'],$actif_cat);
    // Si le noeud test&eacute; est le noeud recherch&eacute;
    if($cat['parent_id']==$noeud_cat){
    // Met le drapeau &agrave; 1
    $actif_cat=1;
    }
    }
    }

    Quelqu'un aurait une petite idée ?

  6. Sam59


    Je pense que nous serions tous très friend d'un petit cours de référencement de la part d' eric-lavoisier.

    Cette question nous tiens forcément tous à coeur, et c'est un sujet très vaste et complexe.

    Pour ma part, j'essaie de m'inspirer au mieux des conseils de webrankinfo mais bon.... un peu de tri et un tuto simple qui va à l'essentiel, je n'ose plus l'espérer :P

    Un grand merci d'avance donc à Eric s'il trouve un peu de temps pour nous rédiger cela... :)

    Sam.

  7. Willy


    En fait c'est le type de fichier csv qui n'est pas supporté.

    Dans configuration.inc.php, j'ai ca:

    $registered_types = array(
    
    										"image/gif"							 => ".gif",
    
    										"image/pjpeg"						   => ".jpg, .jpeg",
    
    										"image/jpeg"							=> ".jpg, .jpeg",
    
    										"image/x-png"						   => ".png",
    
    										"image/png"								=> ".png",
    
    										"text/plain"							=> ".html, .php, .txt, .inc, .csv",
    
    										"text/comma-separated-values"			=> ".csv",
    
    										"application/comma-separated-values"	=> ".csv",
    
    										); 
    
    
    $allowed_types = array("image/gif", "image/pjpeg", "image/jpeg", "image/x-png", "image/png","text/comma-separated-values","text/plain","application/comma-separated-values");
    Regarde ce post aussi: http://forum.peel.fr/index.php?showtopic=758&hl=import Pour moi dans ton cas, il faut mettre:
    $registered_types = array(
    
    										"image/gif"							 => ".gif",
    
    										"image/pjpeg"						   => ".jpg, .jpeg",
    
    										"image/jpeg"							=> ".jpg, .jpeg",
    
    										"image/x-png"						   => ".png",
    
    										"image/png"								=> ".png",
    
    										"text/plain"							=> ".html, .php, .txt, .inc, .csv",
    
    										"text/comma-separated-values"			=> ".csv",
    
    										"application/comma-separated-values"	=> ".csv",
    
    										"application/vnd.ms-excel"	=> ".csv"
    
    										); 
    
    
    $allowed_types = array("image/gif", "image/pjpeg", "image/jpeg", "image/x-png", "image/png","text/comma-separated-values","text/plain","application/comma-separated-values", "application/vnd.ms-excel");

    Dites nous si c'est OK

    Willy

  8. panne sèche


    Je dirais vite fait dans la page administrer/produits.php remplacer:

    	$references = mysql_query("
    
    	SELECT reference_id
    
    	FROM peel_produits_references
    
    	WHERE produit_id = '".intval($id)."'
    
    	");
    Par:
    	$references = mysql_query("
    
    	SELECT pr.reference_id
    
    	FROM				 
    
    				peel_produits p, peel_produits_references pr
    
    	WHERE p.id = pr.reference_id AND pr.produit_id = '".intval($id)."'
    
    				AND p.etat = 1  
    
    				ORDER BY LOWER(p.nom_".$_SESSION['langue'].")");

    Sauvez voter code avant de mettre celui là et dites nous.

    Willy

    Bonsoir

    désolé rien ne change

    merci pour votre aide

    Cordialement

    A. stradiot

  9. balam


    Contact mr Ruault alors, car là je ne vois pas...

    Willy

    Merci à tous pour votre patience et votre gentillesse. Je clos ce topic.

    Merci plus particulièrement a Paulanna :) (une sainte) et à Willy pour leurs services.

    Le problème venait d'un accent mal mis sur le mot chèque et la majuscule.

    Mille bravos et mille mercis

    Loué soit les Paulanna et Willy (M. Pruault aussi)

    Balam

  10. Willy


    Si tu as trouvé la page qui contient la fonction qui elle meme affiche les images (OUF j'ais terminé un bout de ma phrase :D ) c'est déja un bon debut.

    Apparement tu as aussi identifié là où l'image est affichée, encore un point :P

    Reste à appliquer mon code.

    Tu mets ça avant l'affichage de l'image:

    $sz = getimagesize($image); //la tu mets l'adresse de ton image
    
    $largeur = $sz[0]; 
    
    $hauteur = $sz[1];
    Dans ou a la place de $image tu mets l'adresse de l'image 1, pas juste le nom :) Tu dois avoir l'adresse de l'image dans le src de la balise img (ca doit être $repertoire_upload."/".$prod['image1']) Donc soit tu fais $image = $repertoire_upload."/".$prod['image1'] Soit $sz = getimagesize($repertoire_upload."/".$prod['image1']); Ensuite tu copies le code dans lequel tu as fixé la taille de l'image a 100*100 et tu mets:
    if($largeur > $hauteur){ // si la largeur est plus grande que la hauteur
    
    // la copie de ton code avec juste width = 100
    
    }
    
    else {
    
    //la copie de ton code avec juste height = 100
    
    }

    Et ca doit rouler.

    Willy

  11. sebix


    J'essaierais dès que j'ai plus de temps de mettre quelques astuces de réf spéciales PEEL. Mais disons que que comme c'est un peu mon gagne pain, je ne vais pas non plus tout reveler :P mais je donnerais quelques tuyaux quand meme !

    je n ai qu une seule chose a dire: merci pour cette aide prcieuse! et si tu as encore quelques astuces je suis prenneur! :)

Twitter Advisto ecommerce

Facebook PEEL Shopping