Riskbreaker
Utilisateur open source-
Compteur de contenus
31 -
Inscrit(e) le
-
Dernière visite
Activité de Riskbreaker
-
Riskbreaker a ajouté un message dans un sujet Module recherche
Dans ce topic, nous avons traité de cette question, et on y a apporté une réponse (comment casser une recherche en plusieurs variables afin de faire une recherche sur plusieurs champs) :
http://forum.peel.fr/index.php?showtopic=1394
-
0
-
-
Riskbreaker a ajouté un message dans un sujet Présentation de ma boutique
Sympa le design, très propre et très épuré. <_<
Dans la lignée de ce que j'ai pu voir avec ton autre boutique, j'aime beaucoup, même si à mon sens, il manque quelques détails pour une meilleure ergonomie (sur cette boutique, pas l'autre).
Bonne continuation 3DVF !!
-
0
-
-
Riskbreaker a ajouté un message dans un sujet [Moteur de recherche]
Je précise avant de publier le code de la page, que la méthode de recherche affiche les résultats sous forme de tableau et de lignes... C'est donc différent de l'original.
Pour voir comment cela rend, rendez vous ici : http://chateaupartner.com/index.html et faites une recherche avec "michel" par exemple (pas encore rentré les produits définitifs =p).
Ou alors, regardez dans n'importe quelle rubrique comme "meilleures ventes", etc... Tout est affiché de la même manière.
Voici donc ma page recherche.php :
<?
include("../configuration.inc.php");
$DOC_TITLE = "Chateau Partner - Recherche";
include("$repertoire_modele/haut.php");
?>
<table border="0" cellpadding="1" cellspacing="4" width="100%">
<tr>
<td class="titre" colspan="2">
<table cellpadding="0" cellspacing="0" border="0" >
<tr><td class="tetiere" align="center" >Recherche</td></tr>
</table>
<p></p>
<p></p>
Résultat de votre recherche
</tr>
<tr>
<td colspan="2" height="20"><img src="<?=$wwwroot?>/images/blank.gif" height="20" alt="" /></td>
</tr>
<?
if(!isset($start)) {$start=0;}
$recherche=strtolower($motclef); //on passe en minuscule
$mots = str_replace("+", " ", trim($recherche)); //on remplace les + par des espaces
$mots = str_replace("\"", " ", $mots); //idem pour \
$mots = str_replace(",", " ", $mots); //idem pour ,
$mots = str_replace(":", " ", $mots); //idem pour :
$recherche=rawurlencode($recherche); //on encode la recherche
$tab=explode(" " , $mots);
$count=count($tab);
$sql="select * from peel_produits where etat='1' and ( nom like \"%$tab[0]%\" or reference like \"%$tab[0]%\" or millesime like \"%$tab[0]%\" ) ";
for($i=1 ; $i<$count; $i++)
{
$sql.="AND ( nom like \"%$tab[$i]%\" or reference like \"%$tab[$i]%\" or millesime like \"%$tab[$i]%\" )";
}
// On met dans une variable le nombre de vins qu'on veut par page
$nombreDeVinsParPage = 20;
// On récupère le nombre total de vins
$req = mysql_query($sql);
$totalDesVins = mysql_numrows($req);
// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesVins / $nombreDeVinsParPage);
?>
</p>
<?php
// on affiche les vins
if (isset($_GET['page']))
{
$page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}
// On calcule le numéro du premier vin qu'on prend pour le LIMIT de MySQL
$premierVinAafficher = ($page - 1) * $nombreDeVinsParPage;
$reponse = mysql_query( "$sql ORDER BY nom LIMIT $premierVinAafficher , $nombreDeVinsParPage") or die(mysql_error());
// fin de la requete
if (mysql_num_rows($reponse) == 0) //compteur de resultats
{
echo "<tr><td colspan=\"2\" class=\"normal\">Nous n'avons pas trouvé de résultats incluant le mot clé <b>". stripslashes($_GET['recherche']) ."</b>.<p></p><b>Suggestions :</b><br /><li type=\"square\"> Vérifiez l’orthographe du mot clé.<br /><li type=\"square\"> Essayez d'autres mots.<br /><li type=square> Utilisez des mots plus généraux.<p></p><a href=\"$wwwroot/catalogue.php\" class=\"normal\"><b>Cliquez ici</b></a> pour consulter directement notre catalogue.</td></tr>";
}
else
{
?>
<tr bgcolor="#eeeeee">
<td class="label">Appellation</td>
<td class="label">Château</td>
<td class="label">Millésime</td>
<td class="label">Prix € TTC</td>
</tr>
<?
$o=0;
while($sortie=mysql_fetch_array($reponse))
{
echo " <tr>
<td class=\"normal\">$sortie[reference]</td>
<td class=\"normal\">";
?>
<a href="<?echo $wwwroot?>/achat/produit-details-<?=$sortie['id'] ?>-<?=$catid?>.htm"><?echo stripslashes($sortie['nom']) ?>
<?
echo " </a></td>
<td class=\"normal\">$sortie[millesime]</td>
<td class=\"normal\">$sortie[prix] €</td>
</tr>";
} // fin de boucle
echo "<tr><td>";
// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo ' - <a href="?motclef='.$_GET[motclef].'&page=' . $i . '">' . $i . '</a>';
}
echo "</tr></td>";
}
?>
</td></tr>
</table>
<?
include("$repertoire_modele/bas.php");
?>
[/codebox]
J'espère que vous vous y retrouverez ... ;)
-
0
-
-
Riskbreaker a ajouté un message dans un sujet [Moteur de recherche]
Exact, je m'étais trompé dans la 2e partie à changer. J'ai modifié mon post initial, mais il faudrait tester pour être sûr (je ne peux pas, car j'ai changé trop de choses pour pouvoir le faire...).
Donc je récapitule ce qu'il faudrait tester :
Remplacer :
Par :
Tenez moi au courant, au pire des cas, je vous donnerai ma page recherche.php qui fonctionne sans erreur (en fait, j'ai modifié le code pour l'affichage des liens 'page précédente' et 'page suivante').
-
0
-
-
Riskbreaker a ajouté un sujet dans PEEL SHOPPING : logiciel open source de boutique en ligne
Module de recherche sur les clientsBonjour,
Depuis quelques jours j'essaie d'integrer à la partie admin dans la rubrique "utilisateurs" un petit module de recherche permettant d'afficher les clients en fonction de plusieurs critères de recherche (comme le nom, le prénom, quelques caractéristiques du produit, la catégorie, etc...)
L'interêt est pour la newsletter : pouvoir récupérer les noms de clients susceptibles d'être interressés par telle ou telle offre.
J'ai donc essayé dintroduire un petit module comme pour la page "administrer/produits.php"
La requête affiche bien les clients qui ont acheté un produit, mais ne prend pas en compte les critères de recherche...
Si une âme chartible pouvait m'aider à résoudre ce petit problème....
Voici le petit module de recherche et sa requête. (je vous passe le code du formulaire qui est très simple à faire) :
Alors voilà, je ne comprends pas qu'il ne prenne pas en compte mes critères et qu'il m'affiche toujours toute la liste des clients ayant passé une commande....
- 1 réponse
- 1 916 vues
-
Riskbreaker a ajouté un message dans un sujet dans fonction.php, lors de reception de mail de commande
Bonjour,
J'ai appliqué ton morceau de code jcdhl et il marche très bien. Seulement moi aussi, je voudrais afficher les coordonnées de l'acheteur dans le mail.
Toutes les coordonnées s'affichent correctement sauf l'adresse de livraison et le mode de paiement.
Logique puisque ces deux données ne font pas partie des deux tables utilisées dans la requete SQL mais sont dans la table peel_commande.
J'ai donc essayé de bidouiller pour joindre les 3 tables pour afficher toutes les données que je voulais.
Seulement ça ne marche pas :( et je ne comprends pas comment faire pour joindre les 3 tables sans provoquer un gros chamboulement dans l'affichage du mail.
Si vous pouviez m'aider..., Ce ne serait pas de refut ;) .
Voici ma requete SQL FAUSSE, que jai modifiée en tentant de trouver :
SELECT p.id ,p.reference ,p.pack ,c.client_info2 ,c.paiement ,oi.nom_produit ,oi.promotion ,p.prix AS curr_prix ,oi.prix AS purchase_prix ,oi.quantite ,oi.prix * oi.quantite AS total FROM peel_commandes_articles oi, peel_commandes c LEFT JOIN peel_produits p ON (oi.produit_id = p.id AND oi.commande_id = c.id) WHERE commande_id = '$commandeid'
-
0
-
-
Riskbreaker a ajouté un message dans un sujet Renommer les images
Oui clair, merci à vous Daxey ;)
-
0
-
-
Riskbreaker a ajouté un message dans un sujet Renommer les images
Oui. Voilà, je précise que j'ai un peu changé le système et que maintenant, on peut uploader 4 images portant les noms : monimage_1.jpg, monimage_2.jpg, monimage_3.jpg et monimage_4.jpg.
Dans lib/fonctions/fonctions.php :
Dans administrer/produits.php :
et un peu plus loin, toujours dans administrer/produits.php :
-
0
-
-
Riskbreaker a ajouté un message dans un sujet Renommer les images
Oui, ça fonctionne, merci Daxey (désolé, je n'avais pas testé avant ce matin, trop pris dans la configuration du moteur de recherche en ajax ;) ).
Comme dans mon cas, c'est une boutique de vins, je n'aurais besoin que d'une seule image par produit, donc le problème des images multiples ne se pose pas.
C'est chouette, j'aurai bien toutes mes images comme : monvin.jpg
Merci Daxey encore ;)
-
0
-
-
Riskbreaker a ajouté un sujet dans PEEL SHOPPING : logiciel open source de boutique en ligne
[Moteur de recherche]Bonjour,
J'avais remarqué que lorsque deux mots clefs sont insérés dans le champ de recherche de haut.php, ces deux mots doivent obligatoirement figurer dans le même champ d'une table pour être appelés.
Se posait alors un gros problème.
Exemple :
vous voulez ajouter 3 produits : voiture rouge, voiture bleue et voiture verte.
Le terme "voiture" figurant dans le champ "nom" et la couleur dans un champ "couleur" que vous auriez créé auparavant.
Une recherche avec le terme voiture vous aurait affiché les 3 réponses possibles alors qu'une recherche comme "voiture rouge" ne vous aurait renvoyé aucun résultat.
J'ai donc travaillé un peu sur ce problème, et je vous donne ici la solution :
Dans recherche.php,
remplacez :
Par :
et
Par
L'astuce se déroule ainsi :
1 - on met en minuscule les termes entrés dans le formulaire
2 - on remplace tous les caractères '+', '\', ',' et ':' par un espace.
3 - on place les différents mots dans un tableau grâce à la fonction "explode".
4 - Pour chaque terme entré, on regarde s'il se situe dans les champs "reference" ou "nom"
5 - on renvoie la requête.
Voilà, en espérant vous avoir été utile ;)
- 7 réponses
- 5 670 vues
-
Riskbreaker a ajouté un message dans un sujet Renommer les images
Je ne comprends pas très bien.
Le système actuel renomme les fichiers de la sorte justement : "100707_145243_PEEL_TwTgkh.jpg". Ca ne pose pas de problème au recensement ? C'est dans cette optique que je voulais justement appeler mes images avec des noms français explicites.
Si vous pouvez m'eclaircir sur le sujet, ce ne serait pas de refus ^^
-
0
-
-
Riskbreaker a ajouté un message dans un sujet Renommer les images
ici : $the_new_file_name = $nom . "_" .$mdp.$extension;
Au moment de renommer le fichier donc. En fait pour essayer d'être plus clair, à la place de $nom j'aimerais récupérer la variable que l'on a entré dans la ligne "nom du produit" de la page administrer/produits.php. Normalement elle se retrouve bien sous la variable $nom.
Mais ça ne marche pas.
Exemple, je voudrais entrer un nouveau produit dans ma boutique.
Ce produit s'appelle par exemple voiture. Ce nom est donc stocké dans la variable $nom.
Et bien je voudrais réutiliser cette variable dans la fonction "upload" pour pouvoir renommer mes fichiers images (propre au produit en question donc) : voiture_01, voiture_02, voiture_03, etc...
Voilà ;)
-
0
-
-
Riskbreaker a ajouté un message dans un sujet Renommer les images
Oui, c'est pour ça que je laisse la variable $mdp à la fin du nom.
Juste que je n'arrive pas à récuperer mon nom de produit ;)
-
0
-
-
Riskbreaker a ajouté un sujet dans PEEL SHOPPING : logiciel open source de boutique en ligne
Renommer les imagesBonjour,
Mon petit problème du jour est de pouvoir renommer les images en fonction du nom du produit.
Donc pour exemple : je voudrais avoir comme nom d' image "mon_produit_01.jpg" au lieu de "100707_145243_PEEL_TwTgkh.jpg".
J'aimerais donc récupérer la variable $nom figurant dans le formulaire d'ajout de produit et l'injecter dans la fonction upload.
Seulement je n'y arrive pas... J'ai tenté quelques modif' mais aucune ne semble marcher véritablement.
Voici le code de la fonction :
function upload($the_file) { global $the_path; $the_file_tmp = $the_file['tmp_name']; $the_file_name = $the_file['name']; $error = validate_upload($the_file); // Teste la validité du document $extension = substr($the_file_name, strrpos($the_file_name, ".")); $dateheure = strftime("%d%m%y_%H%M%S"); $mdp = MDP(); $the_new_file_name = $nom . "_" .$mdp.$extension; [b]<-- Ici, j'ai tenté d'insérer quelques variables comme $nom ou $frm['nom'] mais ça ne semble pas marcher :([/b] if ($error) { return $error; } else { # cool, we can continue if (!move_uploaded_file($the_file_tmp, $the_path . $the_new_file_name)) { //form("\n<b>Quelques choses ne fonctionnent pas : vérifier le chemin de la variable $path et les permissions du répertoire /upload (il doit être en CHMOD777</b>"); } else { chmod($the_path . $the_new_file_name, 0777); return $the_new_file_name; } } }
La question est : comment récupérer le nom de ma variable $nom pour l'injecter dans cette fonction ?
Si quelqu'un a une idée..
Merciiii ;)
- 18 réponses
- 7 276 vues
-
Riskbreaker a ajouté un sujet dans PEEL SHOPPING : logiciel open source de boutique en ligne
Problème dans administrer/produits.phpBonjour,
J'ai encore un problème sur la version peel 2.9.3.
Le formulaire de recherche de la page administrer/produits.php me renvoie tout le temps TOUS les produits. Il ne prend plus en compte les différents critères de recherche...
Pourtant, j'ai comparé la page de la version 3.0 qui marche très bien avec la mienne, jai corrigé les quelques défauts décrits dans le post it de M.Ruault, mais rien n'y fait.
Cependant je tiens à dire que j'ai modifié quelques variables... Le champ où l'on écrivait la référence du produit, je l'ai remplacé par le nom. Normalement, cela devrait marcher...
Si une bonne âme charitable peut m'aider, j'ai passé toute la journée d'hier dessus en vain ;)
Je vous mets ma fonction affiche_liste_produit, c'est forcément de là que vient le problème non ? ;)
function affiche_liste_produits($start, $frm) { global $wwwroot; global $categorie_options; ?> <table border="0" cellpadding="0" cellspacing="2" width="740"> <tr> <td class="normal" colspan="7"> <form method="get" action="<?php echo $_SERVER['PHP_SELF']?>?start=0&mode=recherche"> <table border="0" cellpadding="0" cellspacing="2" width="740"> <tr><td colspan="2" class="entete">Choisir vos critères de recherche</td></tr> <tr> <td class="normal"><b>Etat du produit :</b> <br /> <span class="normal"> <input type="radio" name="etat" value="NULL" checked /><i>peu importe</i> <input type="radio" name="etat" value="1" /><i>En ligne</i> <input type="radio" name="etat" value="0" /><i>En attente</i> </span> </td> <td class="normal"><b>Catégories</b><br /> <select size="1" name="categorie" class="formulaire1"> <option value="NULL">Toutes les catégories</option> <?php if (!isset($categorie_id)) { $categorie_id = 0; } $frm['categories'] = array($categorie_id); construit_select_cat($categorie_options, $frm['categorie_id']); echo $categorie_options; ?> </select> </td> </tr> <tr> <td class="normal" valign="top"> <b>Le produit est-il en page d'accueil ?</b><br /> <span class="normal"> <input type="radio" name="homepage" value="NULL" checked /><i>peu importe</i> <input type="radio" name="homepage" value="1" /><i>oui</i> <input type="radio" name="homepage" value="0" /><i>non</i> </span> </td> </tr> <tr> <td class="normal" valign="top"><b>Référence du produit :</b> <input type="text" name="reference" size="15" class="formulaire1" value="" /> </td> </tr> <tr><td colspan="2" height="5" class="label"><img src="<?php echo $wwwroot?>/images/blank.gif" height="5" alt="" /></td></tr> <tr> <td align="center" colspan="2"><input class="bouton" type="submit" value="Rechercher" class="formulaire1" name="action" /> </td> </tr> </table> </form> </td></tr> <tr> <td class="entete" colspan="7">Liste des produits</td> </tr> <tr> <td colspan="7"> <a class="normal" href="<?php echo $_SERVER['PHP_SELF']?>?mode=ajout">[Ajouter un produit]</a> </td> </tr> <?php $nb = 30; $where = ""; if (isset($frm['etat'])) {if ($frm['etat'] != "NULL") {$where .= " AND p.etat = '".$frm['etat']."'";}} if (isset($frm['nom'])) {if (!empty($frm['nom'])) {$where .= " AND p.nom = '".$frm['nom']."'";}} if (isset($frm['nbparpage'])) {if (!empty($frm['nbparpage'])) {$nb = $frm['nbparpage'];}}//nombre d'enregistrement par page if (isset($frm['homepage'])) {if ($frm['homepage'] != "NULL") {$where .= " AND p.on_special = '".$frm['homepage']."'";}} if (isset($frm['categorie']) && !empty($frm['categorie'])) { if ($frm['categorie'] != "NULL") {$where .= " AND c.id = '".$frm['categorie']."'";} $sql = "SELECT p.id, p.reference, p.nom, p.description, p.prix, p.etat, p.date_maj FROM peel_produits p, peel_produits_categories pc, peel_categories c WHERE p.id = pc.produit_id AND c.id = pc.categorie_id AND 1 ".$where." ORDER BY p.id ASC LIMIT $start, $nb"; $sql_count = "SELECT COUNT(*) FROM peel_produits p, peel_produits_categories pc, peel_categories c WHERE p.id = pc.produit_id AND c.id = pc.categorie_id AND 1 ".$where." ORDER BY p.id ASC"; } else { $sql = "SELECT p.id, p.reference, p.nom, p.description, p.prix, p.etat, p.date_maj FROM peel_produits p WHERE 1 ".$where." ORDER BY p.id DESC LIMIT $start, $nb"; $sql_count = "SELECT COUNT(*) FROM peel_produits p WHERE 1 ".$where." ORDER BY p.id DESC"; } $result=mysql_query($sql) or DIE('Une erreur de connexion à la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR()); if (mysql_num_rows($result) == 0) { echo "<tr><td class=\"normal\"><b>Aucun produit enregistré dans la base.</b></td></tr>"; } else { ?> <tr bgcolor="#6699ff"> <td class="menu">Action</td> <td class="menu">Catégorie</td> <td class="menu">Nom</td> <td class="menu">Prix € T.T.C</td> <td class="menu">Etat</td> <td class="menu" align="center">Création / Mise à jour</td> </tr> <?php $i = 0; while ($ligne = mysql_fetch_array($result)) { ?> <tr bgcolor="<?php echo ($i % 2 == 0 ? '#F4F4F4' : '#ffffff' );?>"> <td class="normal" align="center"> <a onClick="java script:return confirm('Êtes-vous sûr de vouloir supprimer le produit <?php echo addslashes($ligne['nom']) ?> ?');" class="normal" title="Supprimer <?php echo $ligne['nom'] ?>" href="<?php echo $_SERVER['PHP_SELF']?>?mode=suppr&id=<?php echo $ligne['id'] ?>"> <img src=<?php echo $wwwroot?>/images/poubelle.gif border=0></a></td> <td class="normal" align="center"> <?php $sqlCAT = "SELECT id, nom FROM peel_categories c, peel_produits_categories pc WHERE pc.produit_id = ".$ligne['id']." AND c.id = pc.categorie_id"; $resCAT = mysql_query($sqlCAT); if (mysql_num_rows($resCAT) > 0) { while ($cat = mysql_fetch_array($resCAT)) { echo html_entity_decode($cat['nom'])."<br />"; } } else { echo "<font color=\"red\"><b>n.c</b></font>"; } ?> </td> <td class="normal" align="center"><a class="normal" title="Modifier ce produit" href="<?php echo $_SERVER['PHP_SELF']?>?mode=modif&id=<?php echo $ligne['id'] ?>"><?php echo stripslashes($ligne['nom'])?></a></td> <td class="normal" align="center"><?php echo $ligne['prix'] ?> € T.T.C</td> <td align="center" class="normal"><?php if (empty($ligne['etat'])) {echo "<img src=\"".$wwwroot."/administrer/images/puce-blanche.gif\" alt=\"\" />";} else {echo "<img src=\"".$wwwroot."/administrer/images/puce-verte.gif\" alt=\"\" />";} ?></td> <td align="center" class="label"><?php if (empty($ligne['on_stock'])) { echo "n.a"; } else { echo ($ligne['stock'] <= 0) ? "<font color=\"red\">".$ligne['stock']."</font>" : $ligne['stock'];} ?></td> <td class="normal" align="center"><?php echo date("d-m-Y", strtotime($ligne['date_maj'])) ?></td> </tr> <tr><td align="center" class="normal" colspan="7"> <?php $i++; } } //Boutons précédent et suivant if($start) { print("<a class=\"normal\" href=\"".$_SERVER['PHP_SELF']."?start=".($start-$nb)."&categorie=".vb($frm['categorie'])."\">page précédent</a>");} $result=mysql_query($sql_count); $row=mysql_fetch_row($result); if($row[0]>($start+$nb)) { if($start) {print(" / ");} print("<a class=\"normal\" href=\"".$_SERVER['PHP_SELF']."?start=".($start+$nb)."&categorie=".vb($frm['categorie'])."\">page suivante</a>"); } print("<br />"); //Affichage des pages if($row[0]>$nb) // le nombre d'enreg. est > au nb de lignes d'affichage ? for($index=0;($index*$nb)<$row[0];$index++) // oui alors on affiche les numéros de pages { ?> <a class="normal" href="<?php echo $_SERVER['PHP_SELF']."?start=".$index*$nb; ?>&categorie=<?php echo vb($frm['categorie'])?>"><?php echo $index+1; ?></a> <?php } echo "</td></tr></table>"; } function valide_form_produit(&$frm, &$erreurs) { $erreurs = array(); $msg = array(); if (empty($frm['nom'])) { $erreurs['nom'] = true; $msg['nom'] = " Vous devez insérer un nom de produit."; } return $msg; }
- 0 réponse
- 1 268 vues