Flux d’activité

Flux d’activité de Messages

  1. Lili25


    Merci Jean-Hervé,

    Ton post me sera utile quand j'aurai réussi dans un premier temps à transmettre le prénom dans le caddie.

    Pour le moment :

    J'ai déclaré le module prénom qui s'affiche effectivement bien sur ma fiche produit grâce à la fonction if (is_prenom_module_active()) (actif si, dans la table produit, le produit est concerné par la personnalisation avec le prénom).

    Donc, j'ai bien ma petite zône qui s'affiche, prête à recevoir le prénom que l'on veut.

    Le problème que je n'arrive pas encore à résoudre se produit au moment de l'ajout au caddie. Le produit se place bien dans le caddie, mais le prénom n'est pas ramené pour être associé à la ligne concernée.

    J'ai rajouté ceci dans le fichier caddie_ajout.php (la variable s'appelle prenom_unique pour la distinguer d'une future prenom_double à venir quand j'aurai réussi à implanter celle-là)

    //MODULE PRENOM
    
    
    		if (is_prenom_module_active()) {
    
    
    				$prenom_unique = substr($_POST['prenom_unique']);
    
    
    		}
    Dans ce même fichier (caddie_ajout), j'enregistre la variable sensée être ramenée par POST dans le tableau de SESSION, comme suit :
    $_SESSION['caddie']->ajout($id, $quantite, $couleur_id, $taille_id, $email_check, $liste_attribut, $prenom_unique);
    Enfin, dans class/caddie.php, après avoir initialisé le tableau prenom_unique, j'ai modifié la fonction d'ajout au caddie comme ceci :
    	function ajout($produit_id, $quantite, $couleur_id, $taille_id, $email_check, $liste_attribut, $prenom_unique)
    
    	{
    
    		if (in_array($produit_id, $this->articles) && empty($email_check)) {
    
    			// Si le produit est dans le caddie, et que ce n'est pas un chèque cadeau, alors on va vouloir fusionner les données dans une même ligne
    
    			foreach ($this->articles as $k => $this_produit_id) {
    
    				if ($produit_id == $this_produit_id  &&  $couleur_id == $this->couleurId[$k] &&  $prenom_unique == $this->prenom_unique_id[$k] && $taille_id == $this->tailleId[$k] && $liste_attribut == $this->id_attribut[$k]) {
    
    					$line_found = $k;
    
    					break;
    
    				}
    
    			}
    
    		}
    
    		if (isset($line_found)) {
    
    			// Le produit existait déjà dans le panier dans la bonne configuration de couleur et de taille
    
    			$quantite = $this->quantite[$line_found] + $quantite;
    
    			$this->place($line_found, $produit_id, $quantite, $couleur_id, $taille_id, $email_check, $liste_attribut, $prenom_unique);
    
    		} else {
    
    			// Une nouvelle ligne doit être créée dans le panier
    
    			if (!isset($this->articles[0])) {
    
    				$numero_ligne = 0;
    
    			} else {
    
    				$numero_ligne = max(array_keys($this->articles)) + 1;
    
    			}
    
    			$this->articles[$numero_ligne] = $produit_id;
    
    			// Si on gère les stocks pour ce produit, la valeur $quantite est temporaire avant validation du stock disponible
    
    			$this->quantite[$numero_ligne] = $quantite;
    
    			$this->couleurId[$numero_ligne] = $couleur_id;
    
    			$this->tailleId[$numero_ligne] = $taille_id;
    
    			$this->email_check[$numero_ligne] = $email_check;
    
    			$this->id_attribut[$numero_ligne] = $liste_attribut;
    
    			$this->prenom_unique_id[$numero_ligne] = $prenom_unique;
    
    			if (is_stock_advanced_module_active() && empty($this->commande_id)) {
    
    				// NB : On ne gère les stocks remporaire que si commande_id est vide, sinon les stocks sont gérés directement avec peel_stocks
    
    				// On appelle recalc_article_general car on doit d'abord récupérer la valeur de $this->etat_stock[$numero_ligne]
    
    				$this->recalc_article_general($numero_ligne);
    
    				if($this->etat_stock[$numero_ligne] == 1){
    
    					$this->quantite[$numero_ligne] = reservation_stock_temp($produit_id, $couleur_id, $taille_id, $quantite, $prenom_unique);
    
    				}
    
    			}
    
    		}
    
    	}

    Mais je ne suis pas sûr de moi. A ce stade, ça me parait un peu flou. Je pense ne pas être très loin du but, mais ... :huh:

    Allez, je cherche encore !!! Courage ! :)

    EDIT : A cette heure, toujours aucune solution, il y a un truc qui ne passe pas. Impossible de transmettre le prénom ... comprends rien ... :angry:

  2. Janmi30


    Grrrrr... ce n'est pas là visiblement :

    function affichage_fin_succes()
    
    {
    
    	global $commandeid, $wwwroot, $email_paypal, $site, $support, $dirroot;
    
    
    	send_mail_order_admin($commandeid);
    
    	email_commande($commandeid);
    
    
    	$result = query('SELECT * FROM peel_commandes WHERE id ="' . $commandeid . '"');
    
    	$com = fetch_object($result);

    :angry:

    Question bête : au lieu de "mettre en attente" (pas disponible) les autres paiements que Paypal, je le ai supprimés depuis l'administration... est-ce que ça pourrait venir de là ?!

  3. Janmi30


    Bonjour Janmi,

    Effectivement il vous manque a priori le signe * dans la requête.

    La commande est-elle bien crée dans peel_commandes et peel_commandes_articles ? Au vu de la requête, il semble que oui.

    A mon sens, c'est donc l'affichage du récapitulatif de la commande une fois celle-ci passée, qui plante.

    Le code correspondant se trouve dans :

    modeles/votremodele/tempalte.php, fonction : affichage_fin_succes(), requête :

    $result = query('SELECT * FROM peel_commandes WHERE id ="' . intval($commandeid) . '"');

    C'est probablement ici qu'il vous manque le "*".

    Cordialement,

    MMhhhh... merci beaucoup Jean-hervé... je vérifie cela tout de suite !

    (mais bon... j'ai lancé une recherche de "SELECT FROM" - sans l'astérisque - sur tous mes fichiers et pas trouvé... je vérifie !... :-)

  4. Gilles Boussin


    Bonjour David,

    "Les articles dans les sous rubriques n'apparaissent pas au grès de leurs changement de catégorie."

    ---> Voulez-vous dire que, lorsque l'on crée une rubrique, qu'on y ajoute un article, et qu'ensuite on change l'article de rubrique, il reste dans la rubrique dans laquelle il était initialement? Ou alors que l'article n'apparait plus dans aucune rubrique?

    Cordialement,

  5. Gilles Boussin


    Bonjour David,

    Je viens de vérifier le problème relevé, il est encore présent en PEEL PREMIUM 5.71.

    Je décris ici le fonctionnement du code en 5.71.

    Pour le fil d'ariane pour les articles :

    Le fichier qui gère les articles est : /lire/articles_details.php.

    Dans ce fichier on déclare : define('IN_RUBRIQUE_ARTICLE', true);

    Pour générer le fil d'ariane, haut.php appelle recupere_arbre(), définie dans /lib/fonctions/display.php, qui dans le cas où IN_RUBRIQUE_ARTICLE est défini, appelle elle-même la fonction recupere_arbre_rubrique.

    A mon sens, il faut remplacer, dans recupere_arbre :

    $short_link_text = recupere_arbre_rubrique(vn($GLOBALS['prod']['rubrique_id']));

    par

    $short_link_text = recupere_arbre_rubrique(vn($_GET['rubid']));

    Ce qui corrige et génère proprement le fil d'ariane.

    Je n'ai pas de problème pour le fil d'ariane pour les sous-rubriques en 5.71.

    Bien cordialement,

  6. Gilles Boussin


    Bonjour Janmi,

    Effectivement il vous manque a priori le signe * dans la requête.

    La commande est-elle bien crée dans peel_commandes et peel_commandes_articles ? Au vu de la requête, il semble que oui.

    A mon sens, c'est donc l'affichage du récapitulatif de la commande une fois celle-ci passée, qui plante.

    Le code correspondant se trouve dans :

    modeles/votremodele/tempalte.php, fonction : affichage_fin_succes(), requête :

    $result = query('SELECT * FROM peel_commandes WHERE id ="' . intval($commandeid) . '"');

    C'est probablement ici qu'il vous manque le "*".

    Cordialement,

  7. Gilles Boussin


    Bonjour Llili,

    Quelques infos pour compléter la réponse Reloaded :

    - Dans la table peel_commandes_articles, créez un champ prenom (varchar (32)) (ou plus si besoin est) pour stocker le prénom retenu par l'utilisateur final.

    - Dans cree_commande, modifiez le SQL de l' "INSERT INTO peel_commandes_articles" pour insérer le prénom que vous stockez dans l'objet caddie

    - Enfin, dans le back-office, fichiers administrer/commandes.php et administrer/modeles/commande_details.php, pensez à récupérer la valeur du champ prenom pour l'afficher, ce sera tout de même très pratique !!

    - Le process est globalement le même pour gérer une photo.

    Cordialement,

  8. Lili25


    Bonjour Reloaded :(

    Merci beaucoup pour cette piste. Je vais l'explorer en espérant ne pas trop me perdre et rendre inutilisable ma boutique !!

    Bon heureusement que pour le moment, elle n'est pas publique. J'espère quand même pouvoir m'en sortir d'ici la rentrée.

    Je vais donc me lancer mais, si jamais je n'y arrive pas, si quelqu'un a un peu de son talent à me consacrer pour atteindre mon objectif, je ne serai pas contre !! ;)

    Allez, au boulot !!!

    PS : je vais essayer de faire un compte rendu de mes avancées ici ... ça pourra toujours servir à quelqu'un et ça me servira d'aide mémoire également.

  9. inkonline


    Bonsoir

    Le problème, c'est que je souhaite importer un catalogue fournisseur qui est au format excel et qu'il est plus facile de traiter un format excel qu'un format sql

    La première opération est l'export qui me permet de voir comment est générer le fichier et ensuite l'importation de ce même fichier modifié.

    Il me parait quand même assez logique que cette manip fonctionne car sinon à quoi servirait elle ?

    Salutations

  10. Gilles Boussin


    Bonjour,

    Vous indiquez les n° de version de Phpmyadmin, donc j'imagine que c'est ce que vous utilisez pour importer puis exporter les données, et que vous utilisez "l'export pour Excel 2003".

    L'usage de ce genre de format n'est pas aussi fiable que d'utiliser le SQL, il est susceptible d'avoir des problèmes avec des caractères spéciaux.

    Je vous conseille donc de refaire l'import / export en choississant le format SQL, qui est le seul totalement fiable pour ce genre d'opération.

    NB : Cette procédure de migration de serveur est indépendante de la version de PEEL que vous utilisez.

    Gilles

  11. inkonline


    Bonjour

    Version premium 2.8

    Version PHPMyadmin 3.2.2

    Version Mysql 5.1.39

    Nous avons souhaité faire des test d'export - import base de donnée donc nous avons mis en local sur mon pc

    Version PHPmyadmin 5.3.2

    Version MYsql 5.1.43

    L'export de la base produit se passe correctement, tout est impec (export pour excel 2003)

    Quand on souhaite importer la même table, rien ne se passe , le logiciel nous indique que l'import s'est déroulé avec succès mais il n'y a rien dans la table

    Qlq pourrait il nous aider quant à ce problème ?

    Est ce un pb de version ?

    Le module export -import fonctionne t il sous premium ?

    Un grand merci à ceux qui répondront

    Salutations

  12. Reloaded


    Bonjour,

    la seule solution propre est de modifier la classe caddie et certaines de ses méthodes (ajout,init,place etc) pour ajouter de nouveaux indice au tableau panier. La class caddie actuelle est codée en php4 il n'y a donc ps de notion de public et de private mais il suffit de déclarer une variable $prenom et une variable $message à l'image des autres variables et ensuite de modifier les méthodes ajout,init et place

    	function ajout($produitid, $quantite, $cId, $sId, $email_check, $liste_attribut,$prenom="",$message="") {
    
    		if(!isset($this->articles[0])){
    
    			$id=0;
    
    		}else{
    
    			$id=max(array_keys($this->articles))+1;
    
    		}
    
    		$this->articles[$id] = $produitid;
    
    		$this->quantite[$id] = $quantite;
    
    		$this->couleurId[$id] = $cId;
    
    		$this->tailleId[$id] = $sId;
    
    		$this->email_check[$id] = $email_check;
    
    		$this->id_attribut[$id] = $liste_attribut;
    
    		$this->prenom[$id] = $prenom;
    
    		$this->message[$id] = $message
    
    	}

    ensuite un peu partout tu devras gerer l'affichage de ce qui aura été saisi : pages caddie.php du repertoire modèles + différentes pages étapes de piement et consignation des infos dans la table des commandes/articles etc etc...

  13. Lili25


    Bonjour à tous,

    1 - Etant depuis peu sous peel Premium, je cherche un moyen de proposer au client pour un produit, la personnalisation avec le prénom. (Exemple : bol personnalisé, doudous ...).

    Je ne peux me contenter d'entrer des prénoms à la volée dans la base (ex: 10000 prénoms d'un coup) car la fabrication est proposée même pour des prénoms inconnus ou rares.

    Comment faire ? Existe-t-il un module tout prêt qui permettrait de proposer cette option pour certains produits (et pas les autres) ?

    2 - De même, j'aimerais pouvoir proposer également la personnalisation avec une image à uploader par le client. (option payante)

    3 - Enfin, je souhaite que le client joigne au produit (et non à la commande globale) un petit mot qui, par la suite, sera inséré sur une petite carte envoyée avec le produit. (option payante)

    Piouf !! Ca en fait des modules ça !! J'ai bien trouvé certains moyens de le faire pour le point n° 1 en détectant la présence de l'option "Prénom" dans les attributs du produit et en remplacant le menu déroulant par un champ texte libre qui, par Ajax, va insérer dans la table peel_attributs le prénom saisi par le client. Mais je ne trouve pas ça très propre.

    J'espère que l'un ou l'une d'entre vous a monté un projet identique et que je pourrai profiter de son expérience.

    Merci et à très bientôt les peeloux !! ;)

  14. Janmi30


    Bonjour,

    Lorsque j'arrive sur le dernier écran pour valider une commande (achat_maintenant et fin_commande), j'ai en retour ce message d'erreur

    Une erreur de connexion à la base s'est produite SELECT FROM peel_commandes WHERE id='2'.
    
    
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM peel_commandes WHERE id='2'' at line 1

    Je sais que c'est très vague pour demander de l'aide, mais je ne vois pas où une erreur a pu se glisser.

    Quelqu'un peut-il d'aider ou me donner des pistes ?

    Adresse du site http://www.paradoxmaillots.com/p.php (c'est la page index que j'ai renommée pour mettre le site "hors ligne")

    Version PEEL 5.6

    Merci beaucoup.

  15. ro2kpdp


    Bonjour,

    J'ai remarque depuis de très nombreuses versions de PEEL un petit souci gênant.

    Dans les rubriques (partie blog) le fil d'Ariane fonctionne correctement mais si on créé un article ou une sous rubrique le fil d'Ariane ne suit pas le chemin.

    Il revient à accueil ce qui pour le lecteur est pas ergonomique vraiment.

    Y a t il une solution simple ?

    Ou faut il utiliser et réécrire les fonctions qui est utilisée dans les catégories - les sous catégorie - puis les produits et modifier la base mysql afin de faire une hiérarchie mère - fille comme dans les catégories ?

    Merci de vos idées et réponses.

    David

  16. Gilles Boussin


    Bonjour,

    Le code dont vous parlez qui vérifie si un utilisateur est bien un administrateur pour pouvoir utiliser FCKEditor est une protection contre des failles possibles de FCKEditor.

    C'est une protection parmi d'autres, et nous avons mis dans la dernière version de PEEL de multiples protections, dans la perspective de faire une défense par couches successives.

    Ce concept de couches successives est utilisé notamment dans les centrales nucléaires, pour garantir des protections même si d'autres protections n'ont pas servi à éviter un problème.

    Donc si on retire une protection, c'est moins bien, mais ça ne veut pas dire que c'est totalement inacceptable.

    En l'occurence, FCKEditor peut permettre à un utilisateur de sauvegarder des images. Cela pourrait éventuellement permettre de stocker des fichiers avec extension de script ou d'exécutable pour ensuite les appeler pour déclencher des actions. Une protection par .htaccess existe dans upload/ pour éviter l'appel à du PHP à l'intérieur.

    Tel que FCKEditor est configuré dans PEEL, le contenu sauvegardé va forcément dans upload, donc le risque est circonscrit à ce répertoire.

    Si vous mettez une version de FCKEditor mal configurée qui n'utilise pas obligatoirement upload/ pour les sauvegardes, que cette version permette de sauvegarder une image avec une extension en .php, et que vous n'implémentez pas de restriction à son usage, un hackeur serait susceptible de créer un fichier .php sur votre site pour ensuite l'appeler.

    PEEL contient 3 couches de protection sur ce sujet, je ne peux qu'encourager à garder l'intégration de FCKEditor telle que nous l'avons validée.

    Je vous laisse seul juge de votre propre implémentation, mais la configuration de FCKEditor étant parfois compliquée, nous n'apportons aucun support à des implémentations personnalisées.

    Gilles

  17. Gilles Boussin


    Bonjour,

    * pour la ligne du .htaccess qui ne marche pas :

    # Interdit l'accès à des répertoires sans index

    Options -Indexes

    C'est assez étonnant qu'ils empêchent cela, car c'est une configuration très standard et basique. Comme c'est important de l'avoir pour éviter que quelqu'un liste le contenu de répertoires, nous laissons cette ligne dans le .htaccess des releases de PEEL.

    * Concernant le / au début du chemin sur : require_once('lib/fonctions/modules_handler.php')

    Il s'agit là d'un problème de configuration des chemins sur leur serveur, car le chemin par défaut inclue le chemin du fichier courant, et celui du fichier inclus (à savoir configuration.inc.php).

    Néanmoins il est mieux pour des raisons de compatibilité de rajouter $dirroot pour avoir le chemin complet, la ligne devient donc

    require_once($dirroot . '/lib/fonctions/modules_handler.php');

    => ce sera ainsi dans les prochaines versions de PEEL.

    Gilles

Twitter Advisto ecommerce

Facebook PEEL Shopping