manuel-d-utilisation-thelia


manuel-d-utilisation-thelia

 

guide d'utilisation de Thelia <br />plate forme e-commercer opensource

2 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA SOMMAIRE 1 / Introduction??????????????????????????. 2 / Fonctionnalités de l?Administration????????????????? 3 / Fonctionnalités pour le client???????????????????.. 4 / Fonctionnalités du produit????????????????????.. 5 / Gestion des caractéristiques???????????????????? 6 / Gestion des déclinaisons ????????????????????? 7 / Gestion de contenu ??????????????????????? 8 / Promotions ??????????????????????????. 9 / Fonctionnalité de paiement????????????????????. 10 / Fonctionnalités des frais d?expédition ???????????????. 11 / Référencement????????????????????????.. 12 / Installer et Configurer Thelia ( Prérequis ) ?????????????.. 12.a. Installation à partir d'un outil de type EasyPHP, WAMP????? 12.b. Installation directe chez l'hébergeur ????????????... 12.c. Définition de la base de données ?????????????? 13 / Paramètres : tentative de tutoriel général sur la configuration de thelia??... 14 / Administration De Thelia ???????????????????? 14.a.Configuration ?????????????????????.. 14.b.Catalogue ??????????????????????? 14.c .Produits ???????????????????????.. 14.d.Livraisons ??????????????????????? 14.e.Paiement ???????????????????????.. 14.f.Ajout de plugins ????????????????????... 14.g.Modification des pages ?????????????????? 15 / Les Templates : Faire ses propres templates ????????????? 1. Le template par défaut ??????????????????? a.Compte client ???????????????????? b.Navigation ?????????????????????. c.La commande ???????????????????? d.Paiement ?????????????????????? e.Web ???????????????????????... f.Fichiers orphelins ??????????????????.. g.Liste des modèles en inclusion du Template par défaut ???... h.Comprendre le fonctionnement des templates ???????. 2. Les variables du couples php/html ??????????????. 3. Mon menu de navigation ?????????????????? 16 / Ajax ????????????????????????????.. 17 / Intégration de code php dans un squelette Thelia ??????????? 18 / Boucles et balises ???????????????????????. 1. Premiere ????????????????????????.. 2.Afficher un produit ????????????????????.. 3.Intégration au code HTML ?????????????????.. 4.Affichage d'une page catalogue ???????????????? 5.Ajouter au panier ?????????????????????.. 6.Le panier ????????????????????????... 7.Contenu du panier ?????????????????????. PAGE 5 PAGE 5 PAGE 5 PAGE 6 PAGE 6 PAGE 6 PAGE 6 PAGE 6 PAGE 6 PAGE 6 PAGE 7 PAGE 7 PAGE 7 PAGE 8 PAGE 9 PAGE 9 PAGE 10 PAGE 10 PAGE 10 PAGE 10 PAGE 13 PAGE 14 PAGE 15 PAGE 15 PAGE 15 PAGE 15 PAGE 16 PAGE 17 PAGE 17 PAGE 18 PAGE 18 PAGE 18 PAGE 18 PAGE 19 PAGE 19 PAGE 21 PAGE 22 PAGE 23 PAGE 24 PAGE 25 PAGE 26 PAGE 27 PAGE 27 PAGE 28 PAGE 29 PAGE 29 3 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 16 / Gestion des déclinaisons ????????????????????.. 1.Sur la page produits ????????????????????.. 2.Dans le panier ??????????????????????... 3.Moteur de recherche ????????????????????. 4.Page recherche ??????????????????????.. 17 / Les boucles ?????????????????????????... 1.Les boucles simples ????????????????????.. 2.La boucle ACCESSOIRE ?????????????????? 3.La boucle ADRESSE ???????????????????? 4.La boucle CARACDISP ??????????????????... 5.La boucle CARACTERISTIQUE ??????????????? 6.La boucle CARACVAL ??????????????????... 7.La boucle CHEMIN ????????????????????.. 8.La boucle CLIENT ????????????????????... 9.La boucle COMMANDE ?????????????????? 10.La boucle CONTENU ??????????????????? 11.La boucle DECLIDISP ?????????????????? 12.La boucle DECLINAISON ????????????????? 13.La boucle DECVAL ??????????????????? 14.La boucle DEVISE ???????????????????? 15.La boucle DOCUMENT ?????????????????? 16.La boucle DOSSIER ???????????????????.. 17.La boucle IMAGE ????????????????????. 18.La boucle PAGE ????????????????????? 19.La boucle PAIEMENT ??????????????????... 20.La boucle PANIER ???????????????????? 21.La boucle PAYS ????????????????????? 22.La boucle PRODUIT ??????????????????? 23.La boucle QUANTITE ??????????????????.. 24.La boucle RUBRIQUE ??????????????????.. 25.La boucle RSS ?????????????????????? 26.La boucle STOCK ????????????????????.. 27.La boucle TRANSPORT ?????????????????? 28.La boucle VENTEPROD ?????????????????? 29.Les boucles conditionnelles ????????????????? 18 / Les substitutions simples ????????????????????. 1.Substitutions globales ???????????????????.. 2.Substitutions « variables » ?????????????????? 3.Substitutions « panier » ??????????????????? 4.Substitutions « produits » ?????????????????? 5.Substitutions « rubrique » ?????????????????? 6.Substitutions « message » ?????????????????? 7.Substitutions « commande » ????????????????? 8.Substitutions « adresse » ??????????????????.. 9.Substitutions « client » ??????????????????? 10.Substitutions « caractéristique » ??????????????? 11.Substitutions « image » ??????????????????... 12.Substitutions « dossier » ??????????????????. PAGE 30 PAGE 31 PAGE 32 PAGE 32 PAGE 32 PAGE 33 PAGE 33 PAGE 34 PAGE 34 PAGE 35 PAGE 36 PAGE 36 PAGE 37 PAGE 37 PAGE 38 PAGE 39 PAGE 41 PAGE 42 PAGE 42 PAGE 42 PAGE 43 PAGE 44 PAGE 45 PAGE 46 PAGE 48 PAGE 48 PAGE 49 PAGE 50 PAGE 53 PAGE 54 PAGE 55 PAGE 56 PAGE 56 PAGE 57 PAGE 57 PAGE 58 PAGE 58 PAGE 59 PAGE 59 PAGE 60 PAGE 60 PAGE 61 PAGE 61 PAGE 61 PAGE 61 PAGE 62 PAGE 62 PAGE 63 4 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 13.Substitutions « contenu » ?????????????????? 14.Substitutions « declinaison » ????????????????.. 15.Substitutions « page » ???????????????????. 16.Substitutions « parrain » ??????????????????. 19 / Fonctionnement de l'interface d'administration ???????????... 1.Connexion ???????????????????????? 2.Gestion du catalogue ???????????????????? Les produits ??????????????????.. Les caractéristiques ???????????????.. Les déclinaisons ????????????????.. 3.Gestion des zones ?????????????????????. 4.Gestion des messages ???????????????????... 5.Gestion des plugins : Installer un Plugin ????????????.. 6.Sécuriser l'administration ??????????????????. 7.Les plugins classiques ???????????????????.. 8.Les plugins transports ???????????????????... 9.Les plugins paiements ???????????????????.. 10.Ajouts dans l'interface d'administration ???????????? 10.a.Interface d'administration "de base" ????????????? 10.b.Etendre la gestion des plug-ins à toute l'interface d'administration ? PAGE 63 PAGE 63 PAGE 63 PAGE 63 PAGE 64 PAGE 64 PAGE 64 PAGE 64 PAGE 64 PAGE 64 PAGE 64 PAGE 65 PAGE 65 PAGE 65 PAGE 66 PAGE 70 PAGE 71 PAGE 72 PAGE 72 PAGE 72 5 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 1 / Introduction THELIA est un logiciel évolutif de Commerce Electronique. Thelia a pour avantage, par rapport à des logiciels comme OS-Commerce d?être entièrement personnalisable et paramétrable par notre équipe ou par des webagency. Les pages construites peuvent s?ouvrir dans Dreamweaver par exemple sans que le code ou la mise en page soit déstructurés. Cela permet à des webdesigners ou des intégrateurs de travailler les squelettes de bases sans pour autant développer des lignes de code. Pour cela le système de squelette (cher à SPIP par exemple) a été utilisé et le code est séparé de la mise en page. THELIA ne se contente pas d?être simple d?utilisation pour les webdesigners, THELIA est avant tout un système de commerce électronique complet qui bénéficie jour après jour des recherches d?Octolys et des contributeurs du projet. 2 / Fonctionnalités de l?Administration De nombreuses contributions permettent d'ajouter de nouvelles fonctionnalités à THELIA. Celles-ci ne sont pas listées ci-dessous. ? Nombre de produits et de catégories illimitées ? Ajouter/supprimer/éditer les catégories, produits, fabricants, clients ? Supporte le téléchargement de fichiers ? Sécurisation de l?Administration avec un nom d?utilisateur et un mot de passe ? Contact avec les clients soit par mail ? Factures PDF ? Administration multi langue ? Support les multi devises ? Mise à jour automatique du taux de change via l?administration ? Section des choix d?affichage dans la liste des produits ? Supporte les bannières statiques et dynamiques avec statistiques 3 / Fonctionnalités pour le client ? Toutes les commandes sont stockées dans la base de données pour une meilleure rapidité et de recherche ? Les clients peuvent voir leur historique de commandes et les statuts de suivi de commande (PDF automatique) ? Gestion du panier ? Recherche rapide et approfondie des produits ? Sécurisation des transactions via les banques, paiement en 3X sans frais... ? Les produits pour chaque catégorie peuvent être montrés ou enlevés ? Ergonomie et suivi de la navigation 6 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 4 / Fonctionnalités du produit ? Description en HTML ? Affichage automatisé des promotions ? Contrôle des produits en stock ou hors stock qui peuvent être montrés ou pas 5 / Gestion des caractéristiques ? Relation dynamique des attributs produits ? Recherche possible sur ces nouveaux attributs 6 / Gestion des déclinaisons : ? Déclinaison possible d?une même référence produit ( Ex : Tshirt taille M, L, XL ... ) ? Permet la personnalisation d?un produit 7 / Gestion de contenu : ? Possibilité de créer des pages d?information avec un editeur HTML avancé ( conditions générales de vente, ... ) 8 / Promotions : ? Création de promotions ( type pourcentage, somme fixe ) ? Activation/désactivation ? Codes promo illimités 9 / Fonctionnalité de paiement : ? Accepte de nombreuses solutions de paiement hors ligne (chèque, contre remboursement ....) ? Accepte de nombreuses solutions de paiement en ligne (spplus caisse epargne, paybox, credit mutuel, cic, bluepaid, E-transactions du Crédit Agricole, CyberPlus de la Banque Populaire, Sogenactif de la société Générale, Mercanet de BNP-Paribas , CyberPaiement de la banque populaire Lorraine ..) ? Possibilité de sélectionner une ou plusieurs méthodes de paiement 10 / Fonctionnalités des frais d?expédition : ? Poids, prix, destination ? Fonctionnement basé sur la gratuité des frais d?expédition en fonction de la destination, poids ? Possibilité de sélectionner une ou plusieurs méthodes 7 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 11 / Référencement : ? URL rewriting ? Gestion des shopbots 12 / Installer et Configurer Thelia ( Prérequis ) : Thelia repose sur un serveur PHP4/MySQL classique. L'application est censée fonctionner normalement sur PHP5 (certains plugins nécessitent toutefois un serveur php5). L'idéal est bien entendu d'utiliser une installation "LAMP" (Linux/Apache/MySQL/PHP), néanmoins vous pouvez utiliser tout type d'environnement, en particulier pour vos tests : EasyPHP, WAMP, XAMPP, MAMP... Un PHPMyAdmin est également le bienvenu pour maintenir la base. Une alternative consiste à installer Thelia directement chez un hébergeur. Cette façon de faire est tout à fait valable, d'autant plus qu'elle correspond à l'installation finale que vous aurez lorsque vous ouvrirez votre site d'e-Commerce au public. Toutefois, elle a pour inconvénient de devoir systématiquement utiliser un outil style ftp pour mettre à jour vos pages. C'est pourquoi, pour vos premiers essais et aussi pour faciliter l'installation, nous vous conseillons de commencer par installer localement Thelia. Attention : La configuration la plus basse pour faire tourner THELIA : php4, MySQL 4.x la librairie gd (pour la gestion des images jpeg, gif et png) est aussi nécessaire (voir ici comment installer et activer l'extension GD de PHP) 12.a. Installation à partir d'un outil de type EasyPHP, WAMP... : Commencez par vous procurer un pack "tout en un" qui installera sur votre machine Apache, PHP, MySQL qui sont les bases de Thelia. Pas de panique, ces packs sont extrêmement simples à installer, et prennent relativement peu de place sur votre ordinateur. Il existe de nombreuses déclinaisons de ce concept : ? Pour Windows : EasyPHP, Wampserver, Xampp ? Pour Mac : MAMP ? Pour Linux, la situation est un peu particulière, puisque toutes les distributions intègrent un Apache, un MySQL... Vous pouvez toutefois utiliser une version Linux de XAMPP pour faciliter la configuration du tout. Si ce n'est déjà fait, téléchargez Thelia sur www.thelia.fr. Vous obtiendrez un fichier compressé qui contient un répertoire du type "thelia_1.2". Les chiffres qui suivent "thelia_" peuvent varier en fonction de la version téléchargée. Repérez l'emplacement de votre serveur Apache. Dans le cas d'un essai sur un EasyPHP/WAMP..., cet emplacement se caractérise par un répertoire nommé /www ou /htdocs que vous trouverez à des chemins style : 8 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA ? c:\wamp\www ? c:\Program Files\Apache Group\www ? etc... Copiez ensuite le répertoire Thelia dans cet emplacement. A des fins pratiques, vous pouvez renommez le répertoire ainsi copié afin qu'il représente votre projet. Quelques exemples : ? essai1 ? monsite ? ecommerce ? ou tout simplement : "thelia" ;) Attention: jamais d'espace dans le nom des répertoires et fichiers. Celà vous handicaperait grandement dans le cas d'un hébergement final sous Unix. Par la suite, vous allez utiliser une adresse de type "http://localhost/monsite/" pour accéder à votre Thelia. Certaines versions d'Apache sont configurées pour utiliser un autre port réseau que le port standard de HTTP (80). Dans ce cas, il faut préciser ce numéro de port dans l'URL : http://localhost:8888/monsite/, par exemple. Attention: Quand vous décompressez le fichier .zip sur le serveur de la famille Unix (Linux...), les droits seront mal positionnés et vous n'aurez pas accès à l'interface du site. Il va falloir probablement changer les droits avec quelque-chose comme 755 pour les dossiers et 644 pour les fichiers. Donc si vous êtes en local ou avec un accès ssh: cd /le_chemin_de_mon_dossier_thelia find -type d -exec chmod 755 {} \; find -type f -exec chmod 644 {} \; Bien sûr, adaptez ça à votre cas. 12.b. Installation directe chez l'hébergeur : Commencez à vous entraîner à utiliser un logiciel FTP pour transférer divers fichiers sur votre espace d'hébergement. Pour cela, vous aurez besoin de l'adresse, du login, et du mot de passe fournis par l'hébergeur. Renommez le répertoire Thelia que vous venez de décompresser. Quelques exemples : ? essai1 ? monsite ? ecommerce ? ou tout simplement : "thelia" Transférez ensuite l'intégralité du répertoire dans votre espace d'hébergement. Pour toute la suite de ce tutorial, il ne faudra pas utiliser une adresse style http://localhost/..., mais http://monhebergeur/... Reportez vous à la documentation fournie par l'hébergeur pour connaître l'adresse exacte à utiliser. 9 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 12.c. Définition de la base de données : Selon les cas, il faudra créer la base, ou en utiliser une existante. Pour créer la base de données, vous pouvez utiliser l'outil PHPMyAdmin, largement diffusé avec des distributions de type LAMP. Cet outil est le plus souvent accessible avec une adresse de type http://localhost/phpmyadmin/. Le champ "Create new database" est le plus souvent accessible dès la page d'accueil de PHPMyAdmin. Dans certains cas, il vous faudra également créer un compte utilisateur MySQL. Ce compte devra disposer de toutes les autorisations classiques (lecture, écriture...) vers la base Thelia. Sous PHPMyAdmin, celà se passe via le lien "Privilèges" du menu principal. Cependant, le compte "standard" ('root' sans mot de passe, ou 'root' avec en mot de passe 'root' est tout à fait acceptable dans le cas d'une utilisation en local. Dans le cas d'un hébergement distant, la question ne se pose pas : la plupart du temps, l'hébergeur aura pris soin de créer la base pour vous, et le compte qui va avec. Dans tous les cas, vous obtiendrez au final les quatres informations suivantes qui vous seront indispensables pour utiliser Thelia : ? Le nom du serveur de la base de données (localhost pour un hébergement local) ? Le nom de la base ? Le login de connexion ? Le mot de passe associé. Attention: Thelia semble ne pas apprécier les caractères spéciaux pour les mots de passe. Restez donc classique sinon vous allez rester bloqué dès le début de l'installation au moment de la connexion à la base MySql. Thelia intégre maintenant un programme d'installation, qui va automatiser la plupart des tâches. Pour lancer ce programme, ouvrez votre navigateur, et tapez une adresse de type (on suppose que le répertoire de thelia s'appelle "thelia") : http://localhost/thelia/install/ pour une installation locale ou http://monhebergeur/thelia/install/ pour une installation distante. 13 / Paramètres : tentative de tutoriel général sur la configuration de thelia : [NOTE / Je vais évoquer les Boucle Thelia et certains paramètres commençant par # appelés Substitution, je vous renvoie aux parties de ce wiki les concernant pour de plus amples informations sur leur utilisations] Si cela n'a pas déjà été fait déplacez tout les fichiers contenu dans le sous répertoire Template de thelia vers le répertoire racine de thelia pour avoir un aperçu des possibilités et des changement de configuration que vous pourrez effectuer. 10 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 14 / ADMINISTRATION DE THELIA : Une fois l'installation complète, rendez vous dans la partie admin de thelia (le back office) loguez vous à l'aide des identifiant et mot de passe choisis pendant l'installation. Oh le joli panneau d'administration que voila ! 14.a. CONFIGURATION Pour commencer je vous conseille d'aller faire un tour dans la configuration (dans le menu à gauche) pour vérifier ou modifier les paramètres que vous avez rentré. Ils seront pris en compte pour votre site. ? emailcontact : email principal du site ? nomsite : qui correspond au titre des pages du site (dans meta.html par exemple) appelé ainsi :#VARIABLE(nomsite) ? urlsite qui indique l'url exacte (de préférence) où se trouvent les fichiers thelia, [par exemple si vous avez installé votre site sur un serveur dans un dossier nommé thelia (lui même contenant les sous répertoires de thelia "admin","classes" etc.) vous devez indiquer dans urlsite http://www.votrenomdedomaine.com/thelia/ . Ce chemin est utilisé notamment dans la boucle de paiement par #URLPAYER et peut être source d'erreur si il est mal renseigné.] N'oubliez pas de cliquer sur le bouton modifier>>| après chaque modification d'une ligne. je laisse la suite des paramètres de configuration à votre appréciation... 14.b. CATALOGUE Bien nous voila configuré et le site renseigné sur qui est le chef ! Youpi ! On va pouvoir mettre un produit en vente ! on est la pour ça après tout !) Alors zou direction la Gestion du catalogue, ici nous allons pouvoir ajouter : ? Les produits et leurs ? caracteristiques ainsi que les ? declinaisons associées. Allons donc nous promener du coté des : 14.c. Produits il y a la Liste des Rubriques qui nous permettent de classer les produits par grandes catégories en cliquant sur +Ajouter une rubrique (nous y revenons de suite) et la Liste des Produits qui nous permet de visualiser les produits qui ne sont dans aucune rubrique. Si vous ne souhaitez pas utiliser les rubriques (dans le cas ou vous avez très peu de produits), cliquez sur +Ajouter un produit dès cette page. Sinon cliquons sur : 11 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA +Ajouter une rubrique On doit ici lui choisir au moins un TITRE [qui sera designé dans thelia par #TITRE dans la boucle THELIA_RUBRIQUE] et éventuellement un CHAPO, [#CHAPO] , sorte de sous-titre de la rubrique, une DESCRIPTION, [#DESCRIPTION] , qui peux comporter un court texte de présentation de la catégorie un LIEN, [???] Nous pouvons aussi décider si elle est "en ligne" (c.a.d visible/accessible depuis le site) ou pas, en cochant la case en bas de page. Une fois les champs souhaités renseignés valider les modifications. Une fois la rubrique enregistrée nous pouvons lui attribuer des IMAGES et des DOCUMENTS et lui associer les caractéristiques et les déclinaisons dont nous avons parlé plus haut, mais il faudra aller les créer de la même manière avant de les utiliser. Nous pouvons aussi Gérer les contenus associés. [cela correspond au contenus crées dans la Gestion des contenus, que nous aborderons plus dans la section >>CONTENU, très semblable a celle des rubriques et produits] Bon et alors on le rajoute ce produit ? OUI ! Retournons donc dans la section Produit de la Gestion du catalogue, nous y voyons apparaitre la rubrique que nous venons de créer, super ! On clique sur : ? Poursuivre>>| si on veut aller ajouter quelque chose dans la rubrique. ? Modifier>>| pour modifier la rubrique telle que nous l'avons crée. ? Supprimer>>| no coment. Nous voulons ajouter quelque chose dans cette rubrique alors choisissons >>|Poursuivre [Notez que vous pouvez ajouter des sous rubriques (et même des sous-sous-rubriques...) a une rubrique pour classer encore plus précisément vos produits, en cliquant a chaque fois sur +Ajouter une rubrique depuis la rubrique dans laquelle vous souhaitez les créer] Nous allons pour la démonstration nous arrêter a cette première rubrique pour y ajouter notre premier produit en cliquant sur : +Ajouter un produit dans la liste (bien vide pour le moment) de nos produits. 12 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA Voila qui ressemble a ce que nous avons déjà vu dans la création d'une rubrique avec des paramètres en + et la possibilité d'insérer du code html. ? REFERENCE : la référence que vous attribuez au produit pour votre gestion. ? TITRE DU PRODUIT : ? CHAPO : ? DESCRIPTION DU PRODUIT : description plus poussée du produit au format html possible. ? PRIX : le prix normal du produit (Notez que les centimes sont séparés par un point et non pas une virgule) [ceci est un bug non?] ? PRIX PROMO : le prix du produit qui sera affiché lorsque la case "en promo" est cochée ? TVA : à préciser si différent (elle est prise en compte lors de l'édition de la facture .pdf) ? ECO TAXE : si nécessaire ? NOUVEAUTE : a cocher si l'on souhaite pouvoir faire apparaitre le produits sur une page n'affichant que les nouveautés (quelque soit leur rubrique) par exemple ? GARANTIE : si utile (précision apparaissant dans la facture .pdf finale) ? EN PROMO : a cocher si l'on veut utiliser le prix promo cité plus haut, ainsi que pour les mêmes raisons que la case nouveauté. ? EN REAPPRO : quand il n'y en a plus, utile pour ne pas les faire apparaitre temporairement sur le site ? EN LIGNE : doit être cochée pour que le produit apparaisse dans le catalogue en ligne sur le site ? APPARTENANCE : utile si l'on s'est trompé de rubrique ou si l'on veut le déplacer dans une autre rubrique/sous rubrique. ? POIDS : pris en compte dans le calcul des frais d'expédition (par colissimo par défaut, voir [[>>LIVRAISONS]] ? STOCK : nombre de produits en stock (affiché normalement par #QUANTITE dans la boucle THELIA_PRODUIT) Il décroit automatiquement a chaque commande. et une liste de ? CARACTERISTIQUES : disponible si vous les avez crées par le menu caractéristique de la gestion du catalogue. Une fois ces premiers paramètres renseignés on clique sur : Valider les modifications afin de faire apparaitre : ? Photos : pour ajouter des images à vos produits. [Pour les utiliser il faut créer une boucle produit qui contiendra une boucle image, cf le template thelia les pages produit.html et rubrique.html] 13 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA ? Accessoires : vous permet de définir un autre produit de votre catalogue comme accessoire du produit présent par une recherche. ? Contenus associés : Comme pour la rubrique cela vous permet d'associer une page crée dans Gestion des contenus à ce produit. ? Documents: Comme pour la Rubrique. Une fois ces derniers éléments précisés pensez a re-Valider les modifications >>| Vous pouvez a présent naviguer sur votre site et y trouver au moins une rubrique contenant un produit. SUPER ! Maintenant que nous avons déclaré un produit en stock nous allons voir comment s'en débarrasser ! 14.d. LIVRAISONS Allons jeter un ?il à la Gestion des livraisons donc 2 sous menus : >>Gestion des transports ici nous voyons 3 catégories : ? place, qui correspond a un retrait des marchandises directement a votre magasin. ? colissimo, qui affichera les tarifs d'expéditions colissimo en fonction du poids de la commande. ? forfait, correspondant a un cout de livraison forfaitaire ajouté a la commande. Afin d'utiliser ces modes de livraison dans thelia il va falloir leur attribuer une zone en cliquant sur le crayons en face du mode que l'on souhaite modifier puis en choisissant une zone dans la liste a l'aide du menu déroulant dans modifier un transport et enfin en cliquant sur ajouter>> la zone ayant été ajoutée a la liste de droite on clique sur valider et voila... nous devrions à présent pouvoir utiliser un moyen de livraison des produits. [Vous recommencez l'opération autant de fois qu'il est nécessaire pour l'adapter a vos besoins] et si vous souhaitez voir plus en détail à quoi correspondent ces zones de livraisons rendez vous alors dans la >>Gestion des zones qui nous propose : ? liste des zones de livraisons existante, ? modifier ces zones en leur ajoutant ou enlevant des pays, ? 'ajouter une nouvelle zone [un nouvel ensemble de pays qui s'ajoutera a la liste et pourra être utilisée dans la gestion des transports décrite plus haut.] 14 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA Pour modifier une zone on clique sur le petit crayon qui lui fait face, les détails de la zone s'affichent dans modifier une zone et de la nous pouvons changer le nom de la zone, ajouter ou enlever des pays. [enfin moi je ne peux qu'enlever des pays la liste des pays dispo ne s'affichant pas et je n'ai toujours pas très bien compris à quoi sert le champ "forfait" dans les zones puisqu'il est déjà défini dans les modes de livraisons] 14.e. PAIEMENT maintenant que nous pouvons livrer des articles nous allons gérer la facturation. direction la Gestion du paiement ici nous pouvons gérer les : ? codes de promotion, code de réduction valable sur le site d'un montant fixe ou en pourcentage. ? *devises, devises acceptées sur le site ? ? *mode de paiement, activer divers modes de règlements sécurisés. Nous allons essentiellement nous intéresser à la partie : >>Gestion des modes de paiement sont proposés ici le chèque, le virement, paybox et les différents types de transactions sécurisées utilisés par les banques. [Afin d'utiliser ces derniers il faut mettre en place un contrat de vente a distance (VAD) avec votre banque, elle vous communiquera les infos nécessaires à la configuration du paiement en ligne.] Il me semble que virement est activé par défaut. Afin de pouvoir utiliser les modes de paiements proposés vous devez d'abord les activer. Après les avoir activés ils seront disponible dans la page "choix du mode de paiement" de votre site au moment de finaliser la commande. [Si vous obtenez une erreur 404 a ce stade vérifiez votre paramètre "urlsite"] Vous pourrez en modifier l'aspect dans les fichiers .html correspondants (voir le template thelia) cheque.html et virement.html (ainsi que les petits .php qui vont avec) se trouvent dans le template avec les autres tandis que les fichiers des autres modes de paiement ainsi que leurs configurations sont accessibles dans client/plugins/ . 15 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 14.f. Ajout de plugins De nombreux plugins sont disponibles pour Thelia, pour en ajouter un à votre boutique, vous devez copier le répertoire contenant votre plugin dans le répertoire /client/plugins/ de votre site. 14.g. Modification des pages : Vous devez absolument mettre les mains dans le code, et aller éditer les pages html qui sont contenue dans le dossier template (et que vous avez copiées à la racine de votre installation). ? index.html -> pour mettre en page votre page d'accueil ? cheque.html -> pour définir la politique concernant les chèques ? virement.html -> pour les virements Derniers petits conseils, ? n'hésitez pas a tester les différentes options de personnalisation décrites ici et d'en vérifier les effets dans le site template. ? persévérez! 15 / Les Templates : Faire ses propres templates : 1. Le template par défaut Copier le contenu du dossier template à la racine de votre site (cf : Configuration -> urlsite) Les fichiers php Les pages sont appelés par des fichiers php (/!\ le nom de ces fichiers ne peut être changé). Ces fichiers contiennent le nom du modèle (squelette) de la page (ex : $fond="accueil.html"), Les paramètres optionnels et l'appel au moteur de template. ? Le nom des fichiers php du site est modifiable sauf pour : ? - index.php ? - connexion.php ? - formulerr.php ? - compte_modifiererr.php ? - transport.php ? - paiement.php ou commande.php /!\ Thelia v1.3.2 : Attention le template de base a été modifié et #URLPAIEMENT pointe maintenant vers commande.php au lieu de paiement.php Si vous mettez à jour votre THELIA et que vous ne souhaitez pas simplifier votre cinématique de paiement, remplacez simplement #URLPAIEMENT dans votre commande2.html par paiement.php 16 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA L'ensemble des fichiers php appelle un unique modèle (squelette). Les modèles ou squelettes .html Les squelettes sont modifiables, mais leur rôle doit être bien défini. Pensez soit à utiliser le processus de vente du Template par défaut, soit définissez en un avant toute création d'un nouveau Template. Un squelette peut appeler d'autres squelette sur le principe de l'inclusion (ex : #INCLURE "entete.html"). Le nom du squelette est modifiable, ce qui peut vous permettre de tester plusieurs squelettes. Les actions, boucles et balises Liste des boucles et balises disponibles : Les boucles, Les substitutions simples Liste des actions disponibles : A faire Il est possible de définir des actions à effectuer, comme se connecter, ajouter un produit au panier, etc... sans avoir à ajouter de code PHP dans le template. Pour cela consulter : Les plugins classiques Liste des fichiers php du Template par défaut Les squelette (.html) portent le même nom que les fichiers php à l'exception de la page index.php qui appelle le squelette index_page.html a. Compte client : - Création d'un compte client : creercompte.php - Erreur de saisie du formulaire de création de compte client : formulerr.php?errform=1 - Valide la création du compte client (Félicitations, vous venez de terminer la création de votre compte !) : nouveau.php - Connexion au compte client : connexion.php - Déconnexion du compte client : .....?action=deconnexion - Mot de passe client perdu : mdpoublie.php - Consultation du compte client : moncompte.php - Modification du compte client : compte_modifier.php 17 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA - Erreur de saisie lors de la modification du compte client : compte_modifiererr.php?errform=1 - Création des adresses de livraisons : livraison_adresse.php - Formulaire de modification des adresses de livraison : livraison_modifier.php?adresse=xxx (id adresse) - Enregistrement des modifications d'une adresses de livraison : ...?action=modifierlivraison&adresse=xxx&... - Suivi/historique des commandes client : commande_visualiser.php - Détail d'une commande client : commande_detail.php b. Navigation : - Page d'accueil du site : index.php - Liste les produits d'une rubrique/sous-rubrique : rubrique.php?id_rubrique=xxx - Fiche d'un produit (id_rubrique sert à l'affichage de la hiérarchie du catalogue) : produit.php?ref=xxx&id_rubrique=xxx - Image grand format du produit : imgpop.php - Liste des articles d'un dossier (/!\ Le template par défaut n'affiche pas la hiérarchie des dossiers): dossier.php?id_dossier=xxx - Page d'un article (contenu): contenu.php?id_contenu=xxx c. La commande : - Consultation du panier : panier.php - Ajouter un produit au panier : .....?action=ajouter&ref=xxx - Supprimer un produit du panier : .....?action=supprimer&article=xxx - Validation des adresses de facturation et de livraison : adresse.php - Sélectionner une adresse de livraison : .....?action=modadresse&adresse=xxx (id adresse) - Liste les choix du mode de livraison : transport.php - Sélectionner le mode de livraison : .....?action=transport&id=xxx (id transport) 18 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA - Récapitulatif de la commande en cours (J'ai lu et j'accepte les conditions générales de vente) : commande.php - Validation d'un code promotionnel : .....?action=codepromo&code=xxx - Récapitulatif de la commande en cours avec Remise promotionnelle : commander2.php - Liste des choix du mode de paiement : paiement.php - Sélectionner le mode de paiement : ...?action=paiement&type_paiement=xxx (id paiement) d. Paiement : Pour les paiement par CB nous aborderons la question dans un autre rubrique. En effet nous sortons ici des templates. - paiement par chèque : cheque.php - paiement par virement : virement.php - Page de retour de confirmation de paiement par CB : merci.php - Page de retour de refus de paiement par CB : regret.php e. Web : - Flux RSS : rss.php f. Fichiers orphelins : - compte.php pas de squelette pour cette page ? g. Liste des modèles en inclusion du Template par défaut : Les modèles (squelettes) en inclusion sont des pages .html appelées par la balise #INCLURE "mon_inclusion.html". Ils sont généralement utilisés lorsque certains éléments reviennent sur plusieurs pages, par exemple l'entête des pages, le pied de page, le menu de navigation, ... - Les métas communs à toutes les pages : meta.html - Entête communes à toutes las pages (titre du site, connexion, panier) : entete.html - Menu de navigation (catalogue, contenu) : menu.html - Pied de pages communs à toutes les pages : pied.html 19 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA - Signature Thelia (propulsé par Thelia) : signature.html h. Comprendre le fonctionnement des templates : Exemple du fichier index.php <?php $fond="index_page.html"; $pageret=1; include("fonctions/moteur.php"); ?> L'élément principal à connaitre quand l'on débute dans la modification graphique (image, html, css) d'un site basé sur Thelia est $fond. Entre guillemets vous trouverez le nom de la page qui sera appelée, là ou se situe votre squelette de présentation de votre site et les boucles Thelia qui y seront interprétées. 2. Les variables du couples php/html : Les fichiers de type gabarit sont organisés sur la base d'un couple de fichiers homonymes, par exemple machin.php et machin.html. Cette organisation permet, en particulier, le passage de quelques variables qui interviennent dans le processus. Toutes les options non présentes dans le fichier php sont désactivées par défaut (valeur 0) et sont activées en leur attribuant la valeur 1. Exemple <?php $fond="adresse.html"; $securise=1; $pageret=1; include("fonctions/moteur.php"); ?> Enregistre l'URL d'une Page. Cette adresse peut être récupérée grace à la balise #URLPAGERET. Chaque fois que cette option est présente dans le fichier php, l'url de la page courante écrase l'ancienne valeur. Par défaut la page de retour est la page index.php Cette option est fort pratique pour revenir sur une page après la soumission d'un formulaire. Par exemple si je modifie mon compte sur quelle page dois-je revenir ? Et bien sur #URLPAGERET (<form action="#URLPAGERET">). $pageret=1; Le client doit être indentifié pour accéder à cette page. S'il ne l'est pas il est automatiquement redirigé sur la page connexion.php, par défaut toute les pages sont accessibles. $securise=1; 20 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA Le panier ne doit pas être vide pour accéder cette page. Si le panier est vide il sera impossible d'accéder à cette page et l'utilisateur sera alors renvoyé vers la page index.php. $panier=1; Le mode de livraison doit être choisi pour accéder à cette page. Si aucun mode de livraison n'a été choisi il sera impossible d'accéder à cette page et l'utilisateur sera renvoyé vers la page transport.php. $transport=1; Interpreter le code PHP dans le squelette (page html). Le code php inclus dans le squelette sera interprété apres les boucles et balises de Thelia. Pour en savoir plus consulter la page PhP $parsephp=1; Vider le panier et la commande en cours. Cette option est à mettre si la commande à bien été validée, dans le cas contraire le client serait obliger de sélectionner les produits dans le catalogue; $reset=1; Force la langue d'affichage : $lang=""; Force à remplir le tel fixe et/ou portable sur le formulaire d'inscription : $obligetelfixe=0; $obligetelport=0; Appel fichier externe Si on veut par exemple utiliser le fichier "menu.html" dans le fichier "index_page.html" du squelette, il suffit d'écrire : #INCLURE "menu.html" On peut ainsi découper chaque élément de la boutique en fichier de squelette, ça facilite ensuite la modification et les corrections : on n'a plus besoin de modifier sur chacune des pages du squelette mais simplement dans un seul fichier. 21 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 3. Mon menu de navigation : Objectif avoué : faire un menu de navigation différent de celui existant dans le template par défaut. Ce qu'il fait aujourd'hui : Affichage des rubriques à la racine du catalogue avec leurs sous- rubriques directes. Ces dernières sont présentées avec un style différent si l'utilisateur navigue dans une de ces catégories. Les contenus (articles) sont listés sans affichage de l'arborescence des dossiers. Ce que nous voulons faire : Affichage des rubriques sur trois niveaux (1/rubrique > 2/sous- rubrique > 3/sous-sous-rubrique). Les sous-rubiques de niveau 3 ne devant être affichée que si la rubrique de niveau 2 est la rubrique courante (celle en cours de consultation par l'utilisateur), et bien sûr, si ces rubriques contiennent des produits. Et pour que tout cela soit jolie on appliquera un style différent aux sous-rubriques courantes et non courantes. En clair un menu déroulant pour les sous-rubriques généré par le squelette ce qui devrait ressembler à : rubrique 1 (courante) rubrique 1 rubrique 1 sous-rubrique 1 sous-rubrique 1 (courante) sous-rubrique 1 sous-sous-rubrique 2 sous-sous-rubrique 2 (courante) Commençons avec le fichier menu.html à la racine du site (copie du dossier template) et ne gardons que ceci du fichier : <!-- menu général--> <div id="menuGeneral"> <dl id="menu"> <!-- Rubriques non vide à la Racine du catalogue classée par ordre de classement --> <THELIA_MENU_RUBRIQUES type="RUBRIQUE" parent="0" profondeur="1" classement="manuel"> <dt><a href="#URL">#TITRE</a></dt> <dd class="ssmenu"> <ul> <!-- sous rubriques --> <THELIA_BLOC_SOUS_MENU type="RUBRIQUE" parent="#ID" classement="manuel"> <!-- ici tout est à faire --> </THELIA_BLOC_SOUS_MENU> <li class="invisibleW3C"> </li> </ul> </dd> </THELIA_MENU_RUBRIQUES> <!-- Contenu des dossiers et de leurs sous dossiers de premier niveau --> <THELIA_MENU_CONTENU type="CONTENU" parent="0" profondeur="1" classement="manuel"> <dt><a href="#URL">#TITRE</a></dt> 22 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA </THELIA_MENU_CONTENU> </dl> </div> Modifions cette ligne : <THELIA_MENU_RUBRIQUES type="RUBRIQUE" parent="0" profondeur="1" classement="manuel"> par : <THELIA_MENU_RUBRIQUES type="RUBRIQUE" parent="0" pasvide="1" classement="manuel"> Nous avons remplacer profondeur="1" (à ma connaissance n'est pas fonctionnel) par pasvide="1" qui n'affichera que les rubriques avec au moins un produit dans la rubrique ou ses sous-rubriques. Si vous testez le fichier tel quel, vous verrez apparaître la liste des rubriques à la racine du catalogue (parent="0"), ayant au mois un produit (pasvide="1"), classées par ordre de classement manuel (classement="manuel"). Maintenant nous allons afficher les sous- rubriques. Trois cas de figure se présentent : - Aucune sous-rubrique et sous-sous-rubrique n'est courante. - Une sous-rubrique est courante. - Une sous-sous-rubrique est courante. Nous allons faire en premier aucune sous-rubriques et sous-sous-rubriques ne sont courantes. 16 / Ajax : Il est toujours agréable de pouvoir donner des effets à ses pages Web, Jquery est aujourd'hui une des librairies les plus utilisées sur le Web (et sans doute bientôt dans thelia directement. Voici un exemple d'utilisation, mais il en existe de nombreux autres... tout d'abord, nous devons appeler Jquery, (pour que celui ci soit intégré dans toutes vos pages, utilisez meta.html) et thickbox pour les effets graphiques d'affichage des images exemple de contenu du fichier meta.html <meta http-equiv="Content-Type" content="text/html; charset= utf-8" /> <link rel="alternate" type="application/rss+xml" title="Flux #VARIABLE(nomsite)" href="rss.php?ref=#PRODUIT_REF&id_rubrique=#RUBRIQUE_ID" /> <title>#VARIABLE(nomsite)</title> <link href="styles.css" rel="stylesheet" type="text/css" /> <link href="thickbox.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="jquery.js"></script> 23 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA <script type="text/javascript" src="thickbox.js"></script> Vous appellez la page meta.html dans vos pages par la commande Thelia "INCLURE" exemple : #INCLURE "meta.html" exemple d'intégration dans la page produit.html (remarquez l'appel à la classe thickbox) : <THELIA_PROD type="PRODUIT" ref="#PRODUIT_REF"> <div class = "ListeProduitsPetits"> <THELIA_img type="IMAGE" num="1" produit="#ID" largeur="250"> <a href="#FICHIER" title="#PRODTITRE" class="thickbox"> <img src="#IMAGE" alt="#PRODTITRE en carton" title="#PRODTITRE " border="0" id="photozoom" /></a> </THELIA_img> <div class="ficheProduit"> <div class="prixProduit"> #PRIX ? </div> <a href="panier.php?action=ajouter&ref=#REF" class="LIEN_commander">Ajouter au panier</a> <br /><br /> <div class="chapoProduit"> #CHAPO </div> <div class="descriptionProduit"> #DESCRIPTION </div> </THELIA_PROD> 17 / Intégration de code php dans un squelette Thelia : Pour que PhP soit interprété dans vos squelettes vous devez rajouter dans le fichier php qui lui fait appel la variable suivante : $parsephp=1; dans le cas d' index.php par exemple le code original <?php $fond="index_page.html"; 24 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA $pageret=1; include("fonctions/moteur.php"); ?> sera modifié en : <?php $fond="index_page.html"; $pageret=1; $parsephp=1; include("fonctions/moteur.php"); ?> Il ne vous restera plus qu'à rajouter votre code PHP dans le squelette HTML appelé. ici index_page.html Le code PHP est alors interpété après le traitement des boucles et balises. Les squelettes peuvent servir à générer du code PHP de manière dynamique. exemple : calcul du montant du panier moyen sans remise <T_php> <THELIA_php type="COMMANDE" statut="2"> <?PHP $nb_panier += 1; $total_panier_moyen += #TOTALCMD + #REMISE; ?> </THELIA_php> <?PHP $panier_moyen = $total_panier_moyen/$nb_panier; echo "le montant du panier moyen est de $panier_moyen ?"; ?> </T_php> Aucune commande à ce jour. <//T_php> 18 / Boucles et balises : Les boucles sont là pour utiliser les fonctionnalités de Thelia, ainsi par exemple, une boucle PANIER vous permettra de manipuler les éléments du panier, elle prend des paramètres d'entrée, et vous pouvez utiliser des paramètres de sortie par exemple #TITRE pour afficher le titre du produit du panier. Principe d'une boucle : Chaque boucle est liée à un type de table de la base de données thélia. (exemple : les rubriques, les paniers, les produits, les caractéristique, etc.) Elles sont pré- programmées par thélia, il faut juste apprendre à les utiliser. Pour les utiliser, il faut savoir que chaque type de boucle comporte des paramètres d'entrée, et des paramètres de sortie. Vous trouverez la liste de ces boucles pré-programmées sur ce wiki, ici :liste des boucles Thelia. 25 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA Elles s'ecrivent selon ce principe : <THELIA_nomboucle type=?TYPE_DE_BOUCLE? arg1=?val1? arg2=?val2? arg3=?val3?> Code HTML + Paramètres sortants de THELIA </THELIA_nomboucle> ou chaque partie signifie quelque chose : <THELIA_nomboucle : ce THELIA est obligatoire pour ouvrir et fermer la boucle à la fin, le nomboucle est ce que vous voulez. type=?TYPE_DE_BOUCLE? : ceci pour spécifier sur quelle table vous travaillez (RUBRIQUE, PANIER, PRODUIT, etc.) arg1=?val1? arg2=?val2? arg3=?val3?> : ceci permet de passer des critères de sélection, ce sont les paramètres d'entrée qui sont utilisés ici. Paramètres sortants de THELIA : ceci ce sont les paramètres de sortie qu'il faut utiliser, on peut en plus y ajouter des filtres de sélection. </THELIA_nomboucle> : ceci pour fermer la boucle, elle porte le même nom que l'ouverture. 1. Premiere : La syntaxe simplifiée d?une boucle est la suivante : <THELIA_nomboucle type=?TYPE_DE_BOUCLE? arg1=?val1? arg2=?val2? arg3=?val3?> Code HTML + Paramètres sortants de THELIA </THELIA_nomboucle> L?élément THELIA indique qu?il s?agit d?une boucle THELIA. (Consultez la liste des boucles Thelia avec leurs paramètres entrants et sortants) Ensuite, il faut identifier la boucle par un nom ou un chiffre que l'on peut choisir librement, à la manière d'une id : <THELIA_nomboucle ou <THELIA_nom1. Cette syntaxe proche du HTML est très stricte. Chaque boucle doit avoir un nom différent et chaque boucle ouverte doit obligatoirement être fermée </THELIA_nomboucle>. Puis dans cette balise, il faut définir le type de boucle que nous voulons utiliser par exemple les produits, les rubriques, les contenus ? : <THELIA_nom type= " TYPE_DE_BOUCLE ". 26 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA Attention le type de la boucle et l?élément THELIA doivent être écrit en lettres capitales sinon ils ne seront pas reconnus. Après il est possible de rajouter des arguments (ou paramètre d?entrée) à cette balise : <THELIA_nom type= " TYPE_DE_BOUCLE " arg1="val1" arg2="val2">. Les paramètres sortants de THELIA sont les informations se trouvant dans la base de données que l'on veut afficher tel que #TITRE pour afficher un titre. 2. Afficher un produit : La boucle PRODUIT permet d?afficher un ou plusieurs produit(s), elle récupère toutes les informations concernant un produit. Exemple de la boucle PRODUIT : <THELIA_PROD type="PRODUIT" ref="#PRODUIT_REF"> <div>#TITRE</div> </THELIA_PROD> Description de la boucle : Le préfixe <THELIA_ permet d'identifier la boucle produit PROD est le nom de la boucle, librement choisi par le webmestre, pour chaque boucle qu?il utilise. Pour afficher un produit, il faut utiliser une boucle de type PRODUIT et lui donner un identifiant unique. Pour cela on peut utiliser la référence du produit ou l'id du produit. L?argument ref est un paramètre entrant qui permet de définir une référence de produit, cela permettra de faire apparaître un seul produit. La valeur #PRODUIT_REF permet de récupérer la référence passée en paramètre lors de l'appel de la page. #TITRE est un paramètre sortant qui affichera le titre du produit. Le titre est entouré d?une balise div où l?on peut mettre un style. 27 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 3. Intégration au code HTML : Exemple 1 <div class="bloc1"> Code html ? </div> <THELIA_PROD type="PRODUIT" rubrique="#RUBRIQUE_ID"> <ul> <li style="list-style:circle">#TITRE</li> </ul> </THELIA_PROD> <div class="bloc2"> Code html ? </div> Dans une boucle THELIA, nous pouvons inclure du code HTML afin de mettre en forme le rendu. Le code HTML se trouvant dans la boucle se répétera autant de fois que la boucle. (Attention à respecter l?ordre des balises pour la fermeture et l?ouverture. Autrement dit les balises de fermeture doivent apparaître dans l'ordre inverse des ouvertures.) Exemple 2 <p> <THELIA_PROD type="PRODUIT" rubrique="#RUBRIQUE_ID"> <span style="list-style:circle">#TITRE</span><br /> </THELIA_PROD> Code HTML </p> Le code HTML qui encadre la boucle THELIA aura une influence sur le résultat de la boucle. Ici, tous les titres apparaîtront dans la balise p. Voici pour l'intégration de boucles simples, vous pouvez aussi avoir besoin de boucles conditionnelles. 4. Affichage d'une page catalogue : L?affichage du catalogue est l?affichage des produits d?une rubrique. Pour cela, il faut utiliser une boucle de type produit avec en paramètre l?id de la rubrique. < THELIA_PROD type="PRODUIT" rubrique="#RUBRIQUE_ID" num="6"> #TITRE <br /> #DESCRIPTION<br /> <THELIA_img type="IMAGE" num="1" produit="#ID" largeur="105"> 28 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA <img src="#GRANDE" alt="#PRODTITRE " title="#PRODTITRE" /> </THELIA_img> </ THELIA_PROD> Cette boucle permet d?afficher six produits dans la rubrique en cours avec son titre, son chapeau, sa description et enfin une grande image. L?argument Rubrique permettra de récupérer dans la base de données tous les produits qui correspondent à cette rubrique. La valeur de cet argument sera un chiffre correspondant à l?identifiant de la rubrique. #TITRE et #DESCRIPTION sont des paramètres sortant qui permettront d?afficher les informations relatives au produit ici le titre et le descriptif. L?argument num permet de choisir le nombre ici de produit à afficher. La boucle de type IMAGE permet d?afficher les images ici d?un produit. Largeur est un argument qui redimensionne l?image avec une largeur de 105 px. L?argument produit permet d?identifier le produit qui correspond à l?image. #ID est un paramètre de sortie de la boucle produit qui donnera l?identifiant du produit à la boucle IMAGE. La balise pour insérer une image est img, nous allons donc créer une balise image avec pour attributsrc (chemin de l?image) auquel on donne la valeur #GRANDE qui donnera le chemin de l?image au grand format. Le paramètre alt de la balise HTML img permet d'afficher un texte alternatif lorsque l'image ne s'affiche pas. Donc, nous ajoutons la valeur #PRODTITRE qui renvoie le titre du produit. De même, le paramètre title donne le titre de l?image et donnera ici le titre du produit. Pour la mise en forme, il suffit d'inclure du code html. 5. Ajouter au panier : Pour ajouter un produit dans le panier, il suffit de créer un lien hypertexte. Il existe deux possibilités qui sont équivalentes. <a href="panier.php?action=ajouter&ref=#REF">Ajouter</a> OU <a href="#PANIER">Ajouter</a> On utilise donc la balise html <a qui va accéder à la page panier et ajouter le produit dans le panier. De même, il est possible de personnaliser graphiquement ce lien grâce aux feuilles de style. On peut également utiliser un formulaire pour plus d'options : <form action="panier.php" method="post"> <input type="hidden" name="action" value="ajouter"> Cela permet par exemple de gérer les quantités de produit commandées : 29 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA <input type="hidden" name="ref" value="#REF" /> Quantité désirée : <input type="text" name="quantite" /> <input type="submit" name="Ajouter" /> </form> 6. Le panier : Le code ci-dessous permet de voir si le panier est vide ou pas. <h2>VOTRE PANIER </h2> <T_PANIER> <THELIA_PANIER type="PANIER"> <a href="#URLPANIER" >contient #PANIER_NBART article(s).</a> </THELIA_PANIER> </T_PANIER> <a href="#URLPANIER"> est vide ! </a> <//T_PANIER> Dans ce cas, il est nécessaire d?utiliser une boucle conditionnelle. En effet, cette boucle permet d?afficher à l?écran le lien : "contient X article(s)" ou "est vide", ceci en fonction des articles dans le panier. Ces liens permettent d?accéder à la page panier. 7. Contenu du panier : La page panier présente tous les produits ajoutés au panier avec la possibilité de les supprimer et de continuer la commande. Le code ci-dessous correspond à l?encadrer rouge. <THELIA_panier type="PANIER"> <div> <span>#REF - #TITRE </span> <span>#PRIXU ?</span> <form action="#URLPANIER" method="post" name="formpanier#PRODUIT" id="formpanier#PRODUIT"> <input type="hidden" name="article" value="#ARTICLE" /> <input type="hidden" name="action" value="modifier" /> <span> <select name="quantite" size="1" onchange = "document.formpanier#PRODUIT.submit()"> <THELIA_quantite type="QUANTITE" article="#ARTICLE"> <option value="#NUM" #SELECTED>#NUM</option> </THELIA_quantite> </select> 30 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA </span> </form> <span>#TOTAL ?</span> <span><a href="#SUPPRURL">Supprimer</a></span> </div> </THELIA_panier> #REF, #TITRE et #PRIXU sont des paramètres sortants de la boucle panier qui correspond à la référence, le titre et le prix unitaire du produit. Le formulaire contient la quantité disponible en stock du produit qui se traduit par une liste déroulante. La boucle THELIA_quantite va récupérer dans la base de donnée la quantité des stocks disponible et permettre au client de choisir sa quantité en fonction des stocks. Un lien supprimer permet d?enlever le produit du panier. 16 / Gestion des déclinaisons : Les déclinaisons servent a définir un ensemble de valeurs spécifiques à un modèle d'un produit Exemples : ? Chaussure : couleur (rouge, vert, bleu), pointure (38, 39, 40) ? Chemise : couleur, taille (36, 38, 40) ? Glaces : parfum (fraise, vanille, chocolat) Dans l'admin, allez dans Gestion du catalogue / Les déclinaisons. Ajoutez une nouvelle déclinaison, donnez lui un nom, puis ajoutez les valeurs de cette déclinaison (les tailles, les pointures, les couleurs, etc.). Vous pourrez ensuite attribuer ces valeurs à un produit. Exemple d'utilisation : Il est possible de décliner un produit et de changer son prix pour chaque déclinaison. En réalité, pour chaque déclinaison on peut attribuer un surplus par raport au prix de base. Ex : J'ai un vêtement dont le prix le moins chers est de 10?. j'ai les déclinaisons : S,M,L,XL S = 10 ? M = 12? L = 15? XL = 18? Je donne donc sur ma fiche produit prix : 10? ensuite pour chaque déclinaison j'aurais : déclinaison| stock | supplément S | monstockdeS | 0 M | monstockdeM | 2 L | monstockdeL | 5 XL | monstockdeXL| 8 31 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 1. Sur la page produits : Dans une page produit, on pourra afficher les déclinaisons (couleur, taille, pointure, parfum, etc.) d'un produit de la façon suivante : <form action="panier.php" method="post"> <input type="hidden" name="action" value="ajouter" /> <input type="hidden" name="ref" value="#REF" /> <T_DECLI> <THELIA_DECLI type="DECLINAISON" rubrique="#RUBRIQUE_ID" produit="#ID"> <p> #TITRE : <select name="declinaison#ID" > <THELIA_DECLIDISP type="DECLIDISP" declinaison="#ID" produit="#PRODUIT" stockmini="1"> <option value="#ID">#TITRE</option> </THELIA_DECLIDISP> </select> </THELIA_DECLI> </p> </T_DECLI> Aucune déclinaison <//T_DECLI> <input type="image" src="bt_ajout_panier.png" border="0" /></a> </form> Si l'on souhaite gérer les déclinaisons, on ne peut plus utiliser simplement un lien de type : <a href="panier.php?action=ajouter&ref=#REF" class="LIEN_commander"><img src="bt_ajout_panier.png" alt="Ajouter"></a> On doit passer par un formulaire. Notes complémentaires : Si stockmini="0", seules les déclinaisons associées au produit déclarées comme activées dans le BO seront prises en compte dans la liste de sélection. Si stockmini="1" ou plus, seules les déclinaisons associées au produit disposant d'un stock supérieur ou égal à la valeur déclarée seront présentes dans la liste de sélection 2. Dans le panier : Dans la page panier, on pourra afficher les déclinaisons comme ceci : <THELIA_CONTENU_PANIER type="PANIER"> #TITRE - #DECTEXTE <br/> </THELIA_CONTENU_PANIER> 32 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 3. Moteur de recherche : Code à afficher pour faire la recherche <div>Rechercher un produit</div> <form action="#URLRECHERCHE" method="post" name="recherche" id="recherche"> <input name="motcle" type="text" /> <a href="#" onclick=" recherche.submit()">OK</a> </form> Ce code permet d?afficher le champ pour faire la recherche. Il appelle la page recherche pour afficher les résultats. 4. Page recherche : Page recherche pour afficher les résultats <THELIA_PRODTR type="PRODUIT" motcle="#PRODUIT_MOTCLE" num="2"> <THELIA_PRODTD type="PRODUIT" deb="#DEBCOURANT" motcle ="#PRODUIT_MOTCLE" num="2"> Code HTML + paramètre sortant (#TITRE, ?) </THELIA_PRODTD> </THELIA_PRODTR> Pour faire afficher les produits de la page recherche, c?est le même principe que pour afficher plusieurs produits sur une page comme une page rubrique. Pour cela, des boucles de type produit sont nécessaires. La première boucle THELIA_PRODTR fait une recherche par mot clé du mot envoyé par le formulaire précédent. motcle="#PRODUIT_MOTCLE" effectue la recherche de produit sur le mot clé. num="2" limite le nombre de produit en hauteur à 2 La deuxième boucle THELIA_PRODTD fait la même recherche mais affiche 2 produits en largeur. num="2" Limite le nombre de produit en largeur à 2 Entre ces deux boucles, nous mettrons les informations concernant les produits tel que le titre, le prix, la description, etc. ? (voir liste des paramètres sortants). 33 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 17 / Les boucles : Il est maintenant grand temps de parler des boucles. Les habitués de SPIP ne seront pas dépaysés puisque que Thelia utilise une syntaxe proche. Rappelons tout d'abord brièvement le principe des boucles. Prenons un cas simple. Sur un site de commerce en ligne, il est nécessaire d'afficher la liste des produits. Le plus propre étant d'utiliser des listes « ul », « li » etc ... Nous rappelerons donc la base < li > autant de fois qu'il y a de produits. Il faut donc « faire une boucle ». Les boucles Thelia vont tout simplement répéter une portion de code autant de fois que nécessaire. Une boucle est bien sûr paramétrable et elle est capable de retourner différentes informations. 1. Les boucles simples : Une boucle est déterminée ainsi : <THELIA_nomboucle type=?TYPE_DE_BOUCLE? arg1=?val1? arg2=?val2? arg3=?val3?> </THELIA_nomboucle> Cette syntaxe proche du HTML est très stricte. Chaque boucle doit avoir un nom différent et chaque boucle ouverte doit obligatoirement être fermée. Le TYPE_DE_BOUCLE est obligatoire. Nous allons passer en revue chaque type de boucle. Voici un exemple de boucle affichant le titre des rubriques de 1er niveau: <THELIA_rub parent=?0?> #TITRE </THELIA_rub> ou encore pour etre plus simple : <THELIA_rss type="RSS" url="http://linuxfr.org/backend/news/rss20.rss" nb="5"> <li>#TITRE</li> </THELIA_rss> Attention : Thelia est sensible à la casse ! 2. La boucle ACCESSOIRE : 34 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA Paramètre d?entrée produit : id du produit deb : peemier accessoire num : nombre d'accessoires aleatoire : affichage aléatoire classement : manuel si classement via l'admin Paramètre de sortie #ACCESSOIRE : id de l'accessoire #PRODID : id du produit d'origine #PRODREF : ref du produit d'origine 3. La boucle ADRESSE : Paramètre d?entrée Adresse : adresse à afficher client : id du client ( pour afficher toutes les adresses d'un client ) defaut : adresse par defaut (0 ou 1) Paramètre de sortie #ID : id adresse #LIBELLE : libellé de l'adresse #RAISON : raison sociale #RAISON1F : selected si madame #RAISON2F : selected si mlle #RAISON3F : selected si monsieur #NOM : nom associé #PRENOM : prénom associé #ADRESSE1 : adresse associée #ADRESSE2 : seconde ligne de l'adresse associée #ADRESSE3 : complément d'adresse #CPOSTAL : code postal associé 35 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA #VILLE : ville associée #PAYS : pays associé #EMAIL : email associé #TELFIXE : téléphone fixe associé #TELPORT : téléphone portable associé #SUPPRURL : url de suppression #URL : url associée 4. La boucle CARACDISP : Paramètre d?entrée caracteristique : caractéristique id : caracdisp etcaracteristique : autre caractéristique ( combinaison de caractéristiques ) etcaracdisp : autres valeurs ( combinaison de caractéristiques ) stockmini : stock minimum courante : caracdisp courant (0 ou 1) classement : alpha si ordre alphabétique, alphainv si inverse alpha deb : numéro de départ de la caracdisp num : nombre de caracdisp à afficher Paramètre de sortie #ID : id de la caracdisp #CARACTERISTIQUE : caractéristique associée (affiche le numéro de la caractéristique associée) #IDC : id combinés #CARACTERISTIQUEC : caractéristiques combinées #TITRE : valeur de la caracdisp #SELECTED : selected si courante Remarque : La boucle CARACDISP est utilisée pour une ou des caractéristique(s) créées avec une ou plusieurs valeurs pré-définies. 36 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 5. La boucle CARACTERISTIQUE : Paramètre d?entrée id : id de la caractéristique rubrique : rubrique de la caractéristique produit : produit de la caractéristique affiche : 0 si toutes les caractéristiques, 1 si seulement les rubriques cochées "affiche" dans le Back-office courante : caractéristique courante (0 ou 1) Paramètre de sortie #ID : id de la caractéristique #PRODUIT : produit passé en paramètre #TITRE : titre de la caractéristique #CHAPO : chapo de la caractéristique #DESCRIPTION : description de la caractéristique 6. La boucle CARACVAL : Paramètre d?entrée caracteristique : caractéristique produit : id du produit valeur : valeur de la caracval ( ! si différent ) Paramètre de sortie #ID : id de la caracval #CARACDISP : caracdisp associée #VALEUR : valeur associée #RUBRIQUE : rubrique associée #TITRECARAC : titre de la caractéristique Remarque La boucle CARACVAL sert dans le cas d'une caractéristique à champ libre (ne pas créer d'item, lors de la création de la caractéristique ; vous aurez alors accès dans la fiche produit du B.O. à un champ libre personnalisable pour chaque produit). La boucle CARACVAL sert à afficher la valeur de caradisp définie pour un produit et une caractéristique et ne fonctionne donc pas si l'on ne fournit pas de produit en paramètre d'entrée. 37 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA La boucle CARACVAL ne semble pas fonctionner si on ne passe pas en parametre d'entrée à la fois produit et caractéristique. Pour info, cette boucle correspond aux valeurs des caractéristiques des produits. Du type, pour cette corde (param entrée : produit) la longueur (param entrée : caractéristique) vaut 12 metres (param sortie : valeur) 7. La boucle CHEMIN : Paramètre d?entrée rubrique : id de la rubrique profondeur : profondeur max du chemin niveau : niveau à récupérer Paramètre de sortie #ID : id de la rubrique #TITRE : titre de la rubrique #URL : url de la rubrique 8. La boucle CLIENT : Paramètre d?entrée id : id du client ref : référence du client raison : civilité du client nom : nom du client cpostal : code postal du client ville : ville du client pays : pays du client parrain : id du parrain revendeur : 0 ou 1 Paramètre de sortie #ID : id du client #REF : référence du client #RAISON : raison sociale du client #ENTREPRISE : nom de l'entreprise #SIRET : siret de l'entreprise #INTRACOM : numéro intra- communautaire #NOM : nom du client #PRENOM : prénom du client #TELFIXE : téléphone fixe du client #TELPORT : téléphone portable du client #EMAIL : email du client 38 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA #ADRESSE1 : adresse du client #ADRESSE2 : suite adresse du client #ADRESSE3 : complément d'adresse du client #CPOSTAL : code postal du client #VILLE : ville du client #PAYS : pays du client #PARRAIN : parrain #TYPE : type ( revendeur ou non ) #POURCENTAGE : pourcentage de remise 9. La boucle COMMANDE : Paramètre d?entrée id : id de la commande ref : référence de la commande (1) client : id du client ( si l'on souhaite afficher toutes les commandes d'un client ) (1) statut : statut de la commande ( 1, 2, 3, 4 ... ou paye ) classement : inverse (plus récente) deb : numéro de début de la commande num : Nombre de commandes à afficher statutexcl : id des statuts à exclure ( ex : statuexcl="1,2,3" ) Paramètre de sortie #ID : id de la commande #ADRESSE : adresse de la commande #DATE : date de la commande #DATELIVRAISON : date de livraison de la commande #REF : référence de la commande #ADRFACT : id de l'adresse de facturation #ADRLIVR : id de l'adresse de livraison #LIVRAISON : livrée ou non ? ( 0, 1 ) #FACTURE : numéro de facture #DATELIVRAISON : date de livraison 39 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA #COLIS : n° de colis #PAIEMENT : type de paiement #REMISE : remise de la commande. #STATUT : statut de la commande ( 1-- >non payé, 2-->payé, 3-->traitement, 4-- >envoyée ) #TOTALCMD : total de la commande #PORT : frais de port #TOTCMDPORT : total de la commande, port compris #FICHIER : fichier associé à la commande #TRANSPORT : id du module de transport (1) : Pour que la boucle COMMANDE retourne des enregistrements, il faut que l'un, au moins, des paramètres d'entrée ref ou client soit renseigné. Les autres paramètres d'entrée sont optionnels. 10. La boucle CONTENU : Paramètre d?entrée dossier : id du dossier du contenu deb : premier contenu à afficher ; deb="15" en fait ne signifie pas, si on traduit en langage francais, "commence à l'id numéro 15", mais "attaque à partir du 15e résultat de la requête" (c'est la partie limit x,y en sql). num : nombre de contenu à afficher bloc : nombre de bloc id : id du contenu (n'admet qu'une valeur d'argument ; ex : id="15"). motcle : mot clé si recherche Paramètre de sortie #DATE : date du contenu #HEURE : heure du contenu #DEBCOURANT : contenu courant #ID : id du contenu #DOSSIER : id du dossier du contenu #TITRE : titre du contenu #STRIPTITRE : titre du contenu sans les tags HTML #CHAPO : chapo du contenu #STRIPCHAPO : chapo du contenu sans les 40 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA produit : produit associé rubrique : rubrique associée classement : mode de classement ( aleatoire, manuel, inverse ) profondeur : profondeur des sous dossiers à inclure courant : 1 si contenu courant, 0 sinon aleatoire : 0 ou 1 ( aléatoire ) exclusion : id à exclure --> ex : « 1,2,7 » tags HTML #DESCRIPTION : description du contenu #STRIPDESCRIPTION : description du contenu sans les tags HTML #POSTSCRIPTUM : postscriptum du contenu #URL : url du contenu #REWRITEURL : url réécrite #DOSTITRE : titre du dossier #PRODUIT : id du produit associé #RUBRIQUE : id de la rubrique associée Exemples Affichage d'un lien vers un contenu associé dans une boucle produit Exemple: sur votre page produit.html, vous pouvez proposer un lien vers un contenu en rapport. Pour établir le lien vous sélectionnez le contenu associé au produit via l'administration. <THELIA_contassocie type="CONTENU" produit="#ID" > <a href="#REWRITEURL">#TITRE</a> </THELIA_contassocie> Affichage d'un lien vers un contenu associé dans une boucle rubrique <THELIA_contassocie type="CONTENU" rubrique="#RUBRIQUE_ID" > <a href="#REWRITEURL">#TITRE</a> </THELIA_contassocie> 41 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA Pour lister les Dossiers ainsi que leurs contenus, comme par exemple dans le menu : <THELIA_MENU_CONTENU type="DOSSIER" parent="0" classement="manuel"> <dt><a href="#URL">#TITRE</a></dt> <dd class="ssmenu"> <ul> <THELIA_MENU_SSCONTENU type="CONTENU" dossier="#ID"> <li><a href="#URL" #FILTRE_egalite(#CONTENU_ID||#ID||class="selected")>#TITRE</a></li> </THELIA_MENU_SSCONTENU> <li class="invisibleW3C"> </li </ul> </dd> </THELIA_MENU_CONTENU> 11.La boucle DECLIDISP : La boucle DECLIDISP permet d'afficher les différentes valeurs d'une déclinaison. Paramètre d?entrée id : id du contenu declinaison : déclinaison associée produit : produit à analyser stockmini : stock minimum courante : declidisp courante (0 ou 1) classement : alpha (ordre alpha), alphainv (ordre alpha inverse) Paramètre de sortie #ID : id du contenu #DECLINAISON : déclinaison associée #TITRE : titre de la declidisp #PRODUIT : id du produit associé Par exemple, si vous avez une déclinaison taille pour un produit 'chemise', la boucle affichera les différentes tailles de chemises disponibles. ex : 36, 38, 40, etc. 42 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 12.La boucle DECLINAISON : La boucle DECLINAISON permet d'afficher les différentes déclinaisons d'un même produit Paramètre d?entrée id : id du contenu rubrique : rubrique à analyser produit : produit à analyser courante : déclinaison courante (0 ou 1) exclusion : id des déclianaisons à exclure (ex : exclusion="1,3,5" ) Paramètre de sortie #ID : id de la déclinaison #TITRE : titre de la déclinaison #CHAPO : chapo de la déclinaison #DESCRIPTION : description de la déclinaison #PRODUIT : id du produit associé Par exemple, pour un produit 'chemise', on pourra afficher les déclinaisons de couleur et de taille 13.La boucle DECVAL : Paramètre d?entrée article : id de l'article dans le panier declinaison : id de la déclinaison associée ref : ref du produit associé Paramètre de sortie #DECLITITRE : titre de la déclinaison #VALEUR : valeur associée #DECLIDISP : déclidisp associée #ARTICLE : numéro d'article dans le panier 14.La boucle DEVISE : Paramètre d?entrée produit : id du produit Paramètre de sortie #PRIX : prix dans la nouvelle devise #PRIX2 : prix promotionné dans la nouvelle 43 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA id : id de la devise somme : somme à convertir si nécessaire devise #TOTAL : total du panier converti #CONVERT : somme convertie si la somme a été passée en paramètre #NOM : nom de la devise #CODE : code HTML de la devise ( $, £ ... ) #TAUX : taux de conversion ( base euro ) 15.La boucle DOCUMENT : Paramètre d?entrée produit : id du produit rubrique : id de la rubrique associée dossier : id du dossier associé contenu : id du contenu associé num : nombre de documents à afficher nb : numéro du document à afficher debut : premier document à afficher exclusion : id à exclure --> ex : « 1,2,7 » Paramètre de sortie #TITRE : titre du document #CHAPO : chapo du document #DESCRIPTION : description du document #FICHIER : fichier du document #EXTENSION : extension du fichier Exemple d'utilisation : <THELIA_doc type="DOCUMENT" rubrique="#RUBRIQUE_ID"> <img src="#FICHIER" alt="#TITRE"/> </THELIA_doc> 44 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA Pour afficher une image enregistrée dans le bac office comme un document. <THELIA_doc type="DOCUMENT" rubrique="#RUBRIQUE_ID"> <!--<embed src="#FICHIER" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" height="100" width="500"></embed>--> <object type="application/x-shockwave-flash" data="#FICHIER" width="500" height="100"> <param name="movie" value="#FICHIER" /> </object> </THELIA_doc> Pour ajouter par exemple un fichier en flash. 16.La boucle DOSSIER : Paramètre d?entrée id : choisir l'id du dossier à afficher parent : choisir le parent des dossiers à afficher deb : index de départ num : nombre de dossiers à afficher courant : 1 si dossier courant, 0 sinon ligne : 0, 1 afficher ou non les rubriques hors ligne aleatoire : afficher les dossiers de manière aléatoire exclusion : id à exclure --> ex : « 1,2,7 » Paramètre de sortie #TITRE : titre du dossier #STRIPTITRE : titre du dossier sans les tags HTML #CHAPO : chapo du dossier #STRIPCHAPO : chapo du dossier sans les tags HTML #DESCRIPTION : description du dossier #POSTSCRIPTUM : postscriptum du dossier #PARENT : parent du dossier #ID : id du dossier #URL : url du dossier #REWRITEURL : url réécrite du dossier #LIEN : lien du dossier #COMPT : compteur permettant de créer des menus poussés #NBRES : nombre de résultats #NBENFANT : nombre de dossiers enfants 45 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 17.La boucle IMAGE : Paramètre d?entrée produit : id du produit ( dans le cas où l'on veut les images associées à un produit ) id : id de l'image à afficher num : nombre d'image à afficher nb : numéro de l'image à afficher debut : première image à afficher rubrique : id de la rubrique ( dans le cas où l'on veut les images associées à une rubrique ) largeur : largeur maxi de l'image hauteur : hauteur maxi de l'image dossier : dossier associé contenu : contenu associé opacite : opacité de l'image ( 0-100 ) noiretblanc : convertir l'image en nb ( 1 ) miroir : 1 si mirroir aleatoire : 0 ou 1 ( aléatoire ) exclusion : id à exclure --> ex : « 1,2,7 » Paramètre de sortie #PRODUIT : id du produit associé #RUBRIQUE : id de la rubrique associée #PRODTITRE : titre du produit associé #PRODREF : référence du produit associé #IMAGE : image (chemin) #FICHIER : nom du fichier de l'image #RUBTITRE : titre de la rubrique associée #ID : id de l'image #COMPT : compteur d'image #TITRE : titre de l'image #CHAPO : chapo de l'image #DESCRIPTION : description de l'image #NOMCACHE : Nom de l'image une fois enregistré dans le cache de Thélia #COMPT : compteur d'image (par exemple sur le site affichera image 1, image 2, ...), utile pour l'utilisation de javascript. 46 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA Exemple(s) Exemple n°1 <THELIA_IMAGE type="IMAGE" num="1" produit="#ID" largeur="42"> <img src="#IMAGE" alt="#PRODTITRE " title="#PRODTITRE " border="0" /> </THELIA_IMAGE> Explications Affiche l'image associée au produit concerné et converti sa taille dans une largeur de 42 pixels Exemple n°2 <THELIA_IMAGE type="IMAGE" num="1" produit="#ID" largeur="159" debut="2"> <img src="#IMAGE" alt="#PRODTITRE " title="#PRODTITRE " border="0" class="contourImage" /> </THELIA_IMAGE> Exemple n°3 <THELIA_IMGRUB type="IMAGE" rubrique="#RUBRIQUE_ID"> <img src="#IMAGE" alt="#TITRE" /> </THELIA_IMGRUB> Explications Affiche l'image associée à une rubrique ou sous rubrique. 18.La boucle PAGE : La boucle page accepte également tous les paramètres de la boucle PRODUIT Paramètre d?entrée num : nombre de produits par page courante : on veut la page courante pagecourante : page courante typeaff : 0 ou 1 ( 0 --> page suivante/précédente, 1-->pages ) max : nombre de pages max Paramètre de sortie #PAGE_NUM : numéro de page #PAGE_SUIV : page suivante #PAGE_PREC : page précédente #RUBRIQUE : rubrique 47 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA affmin : affichage minimum avance : precedente ou suivante (pour afficher page suiv, page prec) Exemple : <ul> <THELIA_PAGEPREC type="PAGE" rubrique="#RUBRIQUE_ID" num="3" typeaff="0" max="10"> <li><a href="rubrique.php?id_rubrique=#RUBRIQUE_ID&page=#PAGE_PREC">Page précédente</a></li> </THELIA_PAGEPREC> </ul> <ul> <THELIA_CPAGE type="PAGE" rubrique="#RUBRIQUE_ID" num="3" max="10" typeaff="1"> <THELIA_PAGECONT_COUR type="PAGE" rubrique="#RUBRIQUE_ID" num="3" courante="1" pagecourante="#PAGE_NUM" typeaff="1" max="10"> <li>#PAGE_NUM</li> </THELIA_PAGECONT_COUR> <THELIA_PAGECONT_PASCOUR type="PAGE" rubrique="#RUBRIQUE_ID" num="3" courante="0" pagecourante="#PAGE_NUM" typeaff="1" max="10"> <li><a href="rubrique.php?id_rubrique=#RUBRIQUE_ID&page=#PAGE_NUM">#PAGE_NUM</a></ li> </THELIA_PAGECONT_PASCOUR> </THELIA_CPAGE> </ul> <ul> <THELIA_PAGESUIV type="PAGE" rubrique="#RUBRIQUE_ID" num="3" typeaff="0" max="10"> <li><a href="rubrique.php?id_rubrique=#RUBRIQUE_ID&page=#PAGE_SUIV">Page suivante</a></li> </THELIA_PAGESUIV> </ul> 48 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 19.La boucle PAIEMENT : Paramètre d?entrée id : id du paiement nom : nom du module exclusion : liste des modules à exclure Paramètre de sortie #ID : id du paiement #URLPAYER : accès au paiement #LOGO : logo du paiement #TITRE : titre du paiement #CHAPO : chapo du paiement #DESCRIPTION : description du paiement 20.La boucle PANIER : La boucle PANIER permet de lister tous les éléments présents dans le panier Paramètre d?entrée deb : départ de lecture ( si on ne veut pas commencer au 1er article ) fin : fin de lecture dernier : 1 si on veut seulement le dernier article ref : ref d'un produit Paramètre de sortie #REF : référence produit #ID : id du produit #TITRE : titre du produit #QUANTITE : quantite commandée #PRODUIT : id du produit #ARTICLE : numéro d'article dans le panier #PRIXU : prix unitaire TTC #PRIXUHT : prix unitaire HT #TOTAL : prixu * quantite #TOTALHT : prixu * quantite HT #REMISE : remise 49 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA #PLUSURL : url + ( augmenter la quantité ) #MOINSURL : url - ( diminuer la quantité ) #SUPPRURL : url suppression produit #PRODURL : url fiche produit #TOTSANSPORT : total sans frais de port #TOTSANSPORTHT : total sans frais de port HT #PORT : frais de port #PORTHT : frais de port HT #TOTPORT : total port compris #TOTPORTHT : total port compris HT #DECTEXTE : liste des déclinaisons #DECVAL : valeur des déclinaisons #TVA : tva du produit 21.La boucle PAYS : Paramètre d?entrée id : id du pays zone : zone des pays à afficher zdefinie : si 1, seuls les pays associés à une zone seront affichés select : id du pays à sélectionner default : souhaite le pays par défaut Paramètre de sortie #ID : id du pays #TITRE : titre du pays #CHAPO : chapo du pays #DESCRIPTION : description du pays #SELECTED : selected si pays en cours #DEFAULT : selected si pays par défaut 50 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 22.La boucle PRODUIT : Paramètre d?entrée rubrique: rubrique du produit deb : premier produit num : nombre de produits bloc : nombre de blocs ( si utilisation de tableaux ) nouveaute : 0 ou 1 ( produit nouveau : nouveaute="1" ; ou non ) promo : 0 ou 1 ( en promo : promo="1" ; ou non ) reappro : 0 ou 1 ( en réappro : reappro="1" ; ou non ) ref : référence produit id : id produit garantie : nb année garantie motcle : mot clé classement : prixmin, prixmax, rubrique, manuel, inverse, date, titre, titreinverse aleatoire : 0 ou 1 ( aléatoire ) (attention : pensez a l'argument nocache="1" pour vider le cache) prixmin : prix mini prixmax : prix max caracteristique : caractéristique produit (identifiant). (1) caracdisp : valeur de la caractéristique ( Paramètre de sortie #REF : référence produit #COMPT : compteur de produit #DATE : date de dernière modif #HEURE : heure de la dernière modif #DEBCOURANT : début courant ( voir exemple ci-dessous ) #ID : id du produit #PRIX : prix TTC du produit #PRIXHT : prix HT du produit #PRIX2 : prix promotionné #PRIX2HT : prix HT promotionné #PRIXORIG : prix TTC d'origine (avant application d'une éventuelle réduction pour un client) #PRIXORIGHT : prix HT d'origine (avant application d'une éventuelle réduction pour un client) #PRIX2ORIG : prix TTC promotionné d'origine (avant application d'une éventuelle réduction pour un client) #PRIX2ORIGHT : prix HT promotionné d'origine (avant application d'une éventuelle réduction pour un client) #POURCENTAGE : pourcentage de réduction #PROMO[ ...oui... ][ ...non... ] : afficher 51 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA identifiant dans une liste ) (2) caracval : valeur de la caractéristique ( manuel ) typech : prend comme valeur like. Permet de faire une recherche sur une caractéristique libre. Est donc en association avec l'entrée caracval declinaison : déclinaison produit declidisp : valeur de la déclinaison ( dans une liste ) declival : valeur de la déclinaison ( manuel ) declistockmini : stock mini (si déclinaison) stockmini : stock mini (sans déclinaison) courant : 1 si produit courant, 0 sinon profondeur : profondeur dans l'arborescence exclusion : id à exclure --> ex : « 1,2,7 » poids : poids du produit stockvide ' : (0 ou x) ligne : (0 ou 1) Permet de forcer l'pparition de produit hors ligne (ligne="0"). Par défaut ce paramètre est à 1 si non mentionné. forcepage : (0 ou 1) force la boucle à garder page=1 en paramètre. Utile pour afficher des promos par exemple dans un bas de page. Si on change de page alors cette boucle gardera toujours le même deb et num. quelque chose si la promo est activée, et sinon autre chose (3) #RUBRIQUE : rubrique du produit #PERSO : objet personnalisable ( 0 ou 1 ) #STOCK : quantité disponible en stock #POIDS : poids du produit #TITRE : titre du produit #STRIPTITRE : titre du produit sans les tags HTML #CHAPO : chapo du produit #STRIPCHAPO : chapo sans les tags HTML #DESCRIPTION : description du produit #STRIPDESCRIPTION : description du produit sans les tags HTML #POSTSCRIPTUM : postscriptum du produit #URL : url du produit #REWRITEURL : url réécrite du produit #GARANTIE : nombre d'années de garantie du produit #PANIER : url d'ajout au panier #PANIERAPPEND : url d'ajout au panier forçcant l'incrémentation de la quantité commandé (si le produit est déjà dans le panier, la quantité sera alors augmenté). #RUBTITRE : titre de la rubrique #ECOTAXE : ecotaxe 52 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA #ECOTAXEHT : ecotaxe HT #TVA : taux de tva #APPRO : date d'appovisionnement (1) Ce paramètre n'est utilisé que si une valeur de caracdisp ou caracval est définie. Si une de ces deux valeurs est définie il est alors obligatoire. (2) Pour le paramètre caracdisp les valeurs caracteristique doivent être séparées par un tiret -. Si une seule valeur est passée en paramètre le tiret - reste obligatoire pour les paramètres caracteristique et caracdisp. exemples : <THELIA_PROD type="PRODUIT" caracteristique="3-" caracdisp="16-"> <THELIA_PROD type="PRODUIT" caracteristique="3-" caracdisp="16-22"> <THELIA_PROD type="PRODUIT" caracteristique="3-4" caracdisp="16-"> <THELIA_PROD type="PRODUIT" caracteristique="3-4" caracdisp="16-22"> Astuces Pour afficher tous les produits d'une ou plusieurs valeurs de caracteristique quelque soit la valeur de caracdisp <THELIA_PROD type="PRODUIT" caracteristique="3-" caracdisp="*-"> Pour afficher tous les produits d'une ou plusieurs valeur de caracteristique sans valeur de caracdisp <THELIA_PROD type="PRODUIT" caracteristique="3-" caracdisp="--"> (3) exemple : #PROMO[ <strong>#PRIX2 ?</strong> <del>(#PRIX ?)</del> ][ <strong>#PRIX ?</strong> ] 53 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA Concrètement vous pouvez utiliser : <THELIA_paspromo type="PRODUIT" ref="#REF" promo="0"> <strong>#PRIX ?</strong> </THELIA_paspromo> <THELIA_promo type="PRODUIT" ref="#REF" promo="1"> <strong>#PRIX2 ?</strong> <del>#PRIX ?</del> </THELIA_promo> Exemple(s) exemple n°1 : <THELIA_PROD type="PRODUIT" rubrique="#RUBRIQUE_ID" num="3" classement="manuel"> <ul> <li>#TITRE</li> <li>#PRIX</li> </ul> </THELIA_PROD> explications : L'affichage du titre et du prix de 3 produits de la rubrique en mode manuel (pas classé) est exécuté par cette boucle 23.La boucle QUANTITE : Paramètre d?entrée article : numéro de l'article dans le panier (#ARTICLE de la boucle panier) max : nombre maximum pouvant être commandé ref : référence du produit Paramètre de sortie #NUM : quantité #SELECTED : renvoie selected si quantité sélectionnée 54 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 24.La boucle RUBRIQUE : Paramètre d?entrée id : choisir l'id de la rubrique à afficher (peut également être utilisé pour inclure uniquement certaines rubrique de la forme id="2,6,7") parent : choisir le parent des rubriques à afficher courante : 1 si rubrique courante, 0 sinon pasvide : 1 si non vide, 0 sinon ligne : 0, 1 afficher ou non les rubriques hors ligne aleatoire : 0 ou 1 ( aléatoire ) classement : classement des rubriques (alpha, alphainv), par défaut le classement est manuel exclusion : id à exclure --> ex : « 1,2,7 » deb : choisir un index de départ num : nombre de rubriques à afficher Paramètre de sortie #TITRE : titre de la rubrique #STRIPTITRE : titre de la rubrique sans les tags HTML #CHAPO : chapo de la rubrique #STRIPCHAPO : chapo de la rubrique sans les tags HTML #DESCRIPTION : description de la rubrique #POSTSCRIPTUM : postscriptum de la rubrique #PARENT : parent de la rubrique #ID : id de la rubrique #URL : url de la rubrique #REWRITEURL : url réécrite de la rubrique #LIEN : lien de la rubrique #COMPT : compteur permettant de créer des menus poussés #NBRES : nombre de résultats #NBENFANT : nombre de rubriques enfants Exemple N°1 <THELIA_rub type="RUBRIQUE"> <THELIA_PROD type="PRODUIT" rubrique="#ID" caracteristique="1-" caracdisp="3-" num="1"> #RUBTITRE </THELIA_PROD> </THELIA_rub> 55 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA Explications Dans cet exemple, on demande la liste des rubriques puis on demande le 1er produit de la rubrique qui a la caractéristique 1 avec une valeur de 3. Si il n'y en a pas alors il se passe rien. Si il y en a, on affiche le titre de la rubrique. 25.La boucle RSS : Paramètre d?entrée url : url du flux RSS deb : 1er item à afficher nb : nombre d'items à afficher Paramètre de sortie #SALON : titre du channel #WEB : adresse du site #TITRE : titre de l'item #LIEN : lien vers l'item #DESCRIPTION : description de l'item #AUTEUR : auteur de l'item #DATE : date de l'item #HEURE : heure de l'item Exemple(s) Exemple n°1 <THELIA_rss type="RSS" url="http://linuxfr.org/backend/news/rss20.rss" nb="5"> <li>#TITRE</li> </THELIA_rss> Explications Cette boucle va récupéré les 5 dernières nouvelles publiées sur le site LinuxFR.org* et en affichera seulement les titres 56 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 26.La boucle STOCK : La boucle STOCK ne s'utilise qu'avec des produits ayant été doté d'une déclinaison. Elle permet d'afficher le stock disponible par déclinaisons d'un produit et s'utilise donc imbriquée dans une boucle type DECLINAISON ou DECLIDISP par exemple. Paramètre d?entrée declidisp : declidisp associé produit : produit associé declinaison : declinaison associée article : article du panier associé Paramètre de sortie #ID : id du contenu #DECLIDISP : déclidisp associée #PRODUIT : id du produit associé #VALEUR : valeur du stock #SURPLUS : Surplus du produit (son prix) #PRIX : Prix du produit avec le surplus (si il y en a un) 27.La boucle TRANSPORT : Paramètre d?entrée id : id du transport Paramètre de sortie #ID : id du transport #TITRE : titre du transport #CHAPO : chapo du transport #DESCRIPTION : description du transport #PORT : frais de port associés #URLCMD : url de commande 57 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 28.La boucle VENTEPROD : Paramètre d?entrée commande : id de la commande produit : ref du produit Paramètre de sortie #ID : id de la venteprod #COMMANDE : id de la commande associée #REF : référence du produit #TITRE : titre du produit #CHAPO : chapo du produit #DESCRIPTION : description du produit #QUANTITE : quantité commandée #PRIXU : prix unitaire #TOTALPROD : prix total #TVA : tva du produit 29.Les boucles conditionnelles : Les boucles conditionnelles permettent d'afficher du texte si un résultat est présent dans la boucle, le cas échéant un second message. La syntaxe globale est celle-ci : <T_nomboucle> Texte à afficher avant la boucle si résultats <THELIA_nomboucle type ....> Texte de la boucle </THELIA_nomboucle> Texte à afficher après la boucle si résultat </T_nomboucle> Texte alternatif si pas de résultat <//T_nomboucle> 58 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA Voici un exemple concret : <T_prod> Voici la liste des produits de la rubrique 2 :<br /> <THELIA_prod type="PRODUIT" rubrique="2"> - #TITRE<br /> </THELIA_prod> fin de la liste </T_prod> Aucun produit n'a été trouvé <//T_prod> 18 / Les substitutions simples : Différents mots clés permettent une substitution automatique quelque soit l'endroit où nous sommes dans le squelette. Chacun de ces mots commencent par un #. Les substitutions sont classées par thèmes : 1. Substitutions globales : #URLPREC : retourne la page précédente #URLPAGERET : retourne la dernière page contenant l'attribut pageret ( page de retour ) #URLPANIER : retourne la page panier par défaut ( panier.php ); #URLCOMMANDER : retourne la page commande par défaut ( commande.php ); #URLNOUVEAU : retourne la page nouveau client par défaut ( nouveau.php ); #URLDECONNEXION : retourne la page de déconnexion par défaut ( index.php?action=deconnexion ); #URLRECHERCHE : retourne la page de recherche par défaut ( recherche.php ); #URLCOURANTE : retourne la page courante. Si il y a des paramètres passés dans l'adresse, #URLCOURANTE les reprendra sauf "action=deconnexion"; #URLCOURANTEPARAM : retourne les paramètres de la page courante; #URLADRESSE : retourne la page d'adresse par défaut ( adresse.php ); #URLPAIEMENT : retourne la page de paiement par défaut ( paiement.php ); #URLSOMMAIRE : retourne la page sommaire par défaut ( index.php ); #URLCOMPTE : retourne la page compte par défaut ( compte.php ); #LANG : retourne la langue en cours. 59 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 2. Substitutions « variables » : Thelia permet la gestion de variables en base de donnée. Il est possible par exemple de stocker une variable urlsite ayant pour valeur « http://www.monsite.com » Ce système permet d'afficher celle-ci où l'on souhaite et de pouvoir la modifier de manière centralisée. Pour rappeler la variable urlsite : #VARIABLE(urlsite) Les variables par défaut à renseigner ou modifier dans : BO/Configuration/Gestion des variables emailcontact adresse e-mail de contact nomsite le nom du site urlsite url complète du site (http://?) tva un taux de tva style_chem chemin vers la feuille de style de l'éditeur de texte rsspass code d'accès au flux RSS de la page d'accueil du BO rssadmin url du flux RSS a afficher en page d'accueil version version de Thélia utilisée 3. Substitutions « panier » : #PANIER_TOTAL : retourne la valeur totale du panier ( sans frais de port ) #PANIER_TOTALHT : retourne la valeur totale HT du panier ( sans frais de port ) #PANIER_PORT : retourne la valeur des frais de port #PANIER_TOTPORT : retourne la valeur totale du panier ( frais de port compris ) #PANIER_REMISE : retourne la remise #PANIER_NBART : nombre d'articles du panier #PANIER_POIDS : Poids total de la commande 60 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 4. Substitutions « produits » : #PRODUIT_REFORIG : retourne l'attribut reforig passé en paramètre d'url celui-ci est utilisé lorsque l'on veut connaître la référence du produit ayant conduit à une page donnée. ( page accessoire par ex ) #PRODUIT_REF : retourne l'attribut ref passé en paramètre d'url. On l'utilise généralement pour appeler la page produit en spécifiant le produit à afficher. #PRODUIT_ID : retourne l'attribut id_produit passé en paramètre d'url. On l'utilise généralement pour appeler la page produit en spécifiant le produit à afficher. #PRODUIT_MOTCLE : retourne l'attribut motcle passé en paramètre d'url. On l'utilise généralement pour appeler la page recherche en spécifiant un mot clé. #PRODUIT_NOM : retourne le titre du produit. #PRODUIT_RUBRIQUE : rubrique du produit en cours #PRODUIT_CLASSEMENT : choix du classement #PRODUIT_PRIXMIN : prix minimum #PRODUIT_PRIXMAX : prix maximum #PRODUIT_CHAPO : chapo du produit #PRODUIT_POSTSCRIPTUM : postscriptum du produit #PRODUIT_NOUVEAUTE : produit nouveau (0 ou 1) #PRODUIT_PROMO : produit en promo (0 ou 1) 5. Substitutions « rubrique » : #RUBRIQUE_CHAPO : retourne le chapo de la rubrique en cours #RUBRIQUE_DESCRIPTION : retourne la description de la rubrique en cours #RUBRIQUE_POSTSCRIPTUM : retourne le postscriptum de la rubrique en cours #RUBRIQUE_ID : retourne l'id de la rubrique en cours #RUBRIQUE_NOM : retourne le titre de la rubrique en cours #RUBRIQUE_PARENT : retourne l'id de la rubrique parente de la rubrique en cours #RUBRIQUE_REWRITEURL : url réécrite de la rubrique en cours 61 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA #RUBRIQUE_RACINE : retourne la racine de la rubrique 6. Substitutions « message » : Les messages fonctionnent de la même manière que les variables si ce n'est qu'ils peuvent être en plusieurs langues et qu'ils peuvent avoir un titre, un chapo et une description. Ce ne sont donc pas des variables classiques mais du contenu ( message d'avertissements, d'erreurs, ... ). #MESSAGE_TITRE(nommessage) : retourne le titre du message idmessage #MESSAGE_CHAPO(nommessage) : retourne le chapo du message idmessage #MESSAGE_DESCRIPTION(nommessage) : retourne la description du message idmessage 7. Substitutions « commande » : #COMMANDE_ID : retourne l'id de la commande passée en paramètre ( la référence est passée via l'url par l'attribut commande ) ou le cas échéant de ma commande en cours #COMMANDE_REF : : retourne la référence de la commande passée en paramètre ou le cas échéant de ma commande en cours #COMMANDE_TRANSACTION : retourne l'identifiant de transaction de la commande. 8. Substitutions « adresse » : #ADRESSE_ID : retourne l'id de l'adresse passée en paramètre d'url ( attribut adresse ) #ADRESSE_ACTIVE : retourne l'id de l'adresse active 9. Substitutions « client » : #CLIENT_RAISON1F : retourne « selected » si la raison sociale est « madame » #CLIENT_RAISON2F : retourne « selected » si la raison sociale est «mademoiselle» #CLIENT_RAISON3F : retourne « selected » si la raison sociale est «monsieur» #CLIENT_ID : retourne l'id du client en cours #CLIENT_REF : retourne la référence client en cours #CLIENT_RAISON : retourne la raison sociale du client en cours #CLIENT_ENTREPRISE : retourne l'entreprise du client en cours 62 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA #CLIENT_SIRET : retourne le siret du client en cours #CLIENT_INTRACOM : retourne le numéro intra-communautaire du client en cours #CLIENT_NOM : retourne le nom du client en cours #CLIENT_PRENOM : retourne le prénom du client en cours #CLIENT_ADRESSE1 : retourne l'adresse du client en cours #CLIENT_ADRESSE2 : retourne la 2ème ligne de l'adresse du client en cours #CLIENT_ADRESSE3 : retourne le complément d'adresse du client en cours #CLIENT_CPOSTAL : retourne le code postal du client en cours #CLIENT_VILLE : retourne la ville du client en cours #CLIENT_IDPAYS : retourne l'id du pays du client en cours #CLIENT_PAYS : retourne le titre du pays du client en cours #CLIENT_EMAIL : retourne l'adresse E-Mail du client en cours #CLIENT_TELFIXE : retourne le numéro de téléphone fixe du client en cours #CLIENT_TELPORT : retourne le numéro de téléphone portable du client en cours #CLIENT_TYPE : retourne le type du client en cours (1 => revendeur, 0=> non revendeur) 10.Substitutions « caractéristique » : #CARACTERISTIQUE_ID : retourne l'id de la caractéristique passée en paramètre de l'url ( caracteristique ) #CARACTERISTIQUE_DISP : retourne la valeur de la caractéristique demandée en paramètre ( caracdisp ) #CARACTERISTIQUE_VAL : retourne la valeur libre de la caractéristique demandée en paramètre ( caracval ) 11.Substitutions « image » : #IMAGE_ID : retourne l'id de l'image passée en paramètre ( id_image ) 63 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 12.Substitutions « dossier » : #DOSSIER_ID : retourne l'id du dossier #DOSSIER_CHAPO : retourne le chapo du dossier #DOSSIER_DESCRIPTION : retourne la description du dossier #DOSSIER_POSTSCRIPTUM : retourne le postscriptum du dossier #DOSSIER_NOM : retourne le titre du dossier #DOSSIER_PARENT : retourne le parent du dossier 13.Substitutions « contenu » : #CONTENU_ID : retourne l'id du contenu #CONTENU_MOTCLE : retourne le mot clé passé en paramètre ( motcle ) #CONTENU_NOM : retourne le titre du contenu #CONTENU_CHAPO : retourne le capo du contenu #CONTENU_DESCRIPTION : retourne la description du contenu #CONTENU_POSTSCRIPTUM : retourne le postscriptum du contenu 14.Substitutions « declinaison » : #DECLINAISON_ID : retourne l'id de la déclinaison en cours #DECLINAISON_DISP : retourne l'id de la déclidisp en cours #DECLINAISON_STOCKMINI : retourne le stock minimum de la déclidisp en cours 15.Substitutions « page » : #PAGE_CUR : retourne le numéro de la page courante 16.Substitutions « parrain » : #PARRAIN_EMAIL : retourne l'email du parrain 64 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 19 / Fonctionnement de l'interface d'administration : 1. Connexion : Une fois la procédure d?installation terminé sur le site, vous retrouvez votre interface d?administration dans le répertoire admin sur votre serveur. http;//www.adressedevotresite.com/admin (capture d?écran ci-dessus). Saisissez le nom d?utilisateur et le mot de passe que vous avez choisi dans la procédure d?installation puis valider pour accéder à l'interface d'administration de votre site web. Les informations en dessous du cadre de connexion sont la lecture du flux RSS de la société OCTOLYS créatrice de l?application Thelia. Ce flux est modifiable depuis l?interface d?administration. Onglet configuration dans le menu, puis gestion des variables, puis insérer l?adresse d?un flux de votre choix dans le champ RSSADMIN, puis cliquer modifier. 2. Gestion du catalogue ; Le secteur "gestion du catalogue" qui se trouve à la racine de l'espace "administration" contient les rubriques suivantes : ? Les produits Les produits sont répartis dans un ensemble de rubiques et sous-rubriques dont le nombre n'est pas limité. ? Les caractéristiques Les caractéristiques permettent de doter un produit de propriétés supplémentaires. Grâce à cette possibilité, il est possible de créer des "rubriques virtuelles" en affichant par exemple l'ensemble des produits qui ont une caractéristique commune. Imaginons par exemple une caractéristique "pour homme" ou "pour femme" qui serait associée à chaque produit. Il serait alors possible de créer des boucles qui n'affichent que les produits féminin (ou l'inverse) d'une ou plusieurs rubriques. ? Les déclinaisons Les déclinaisons permettent de définir les différentes versions d'un même produit. Toutes les déclinaisons d'un même produit sont vendues au même prix. Le coloris est une des déclinaisons les plus communes. Souvent, la couleur n'influe pas sur le prix mais il est nécessaire que le client la choisisse et quelle soit mentionnée dans le panier, sur la commande et la facture. 3. Gestion des zones ; Pour mettre un pays dans une nouvelle zone, il faut qu'il ne soit dans aucune autre zone. Par exemple pour la Belgique : Création d'une zone Belgique.On va ensuite dans la zone "inter zone 1", on supprime la belgique (ne pas oublier de cliqué "valider"). Puis on peut ajouter Belgique à la zone Belgique. 65 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA 4. Gestion des messages ; La gestion des messages permet de configurer les e-mail envoyés au client ou à l'administrateur : mdpmodif : Vous allez recevoir votre mot de passe par e-mail. mdpnonvalide : Cette adresse e-mail n'existe pas nouveaumdp1 : Votre nouveau mot de passe nouveaumdp2 : Votre nouveau mot de passe est : sujetcommande : Sujet du e-mail envoyé après la commande corpscommande1 : Corps du e-mail envoyé après la commande au client corpscommande2 : Corps du e-mail envoyé après la commande à l'administrateur (Configuration > Gestion des variables > emailcontact) 5. Gestion des plugins : Installer un Plugin ; Les plugins peuvent être installés, soit directement en ligne de commande( si l'on a accès au serveur sur lequel Thelia est installé), soit en passant par un serveur ftp, soit directement au travers de l'interface d'administration de Thelia. 6. Sécuriser l'administration ; Il existe de base deux manière de (pseudo) protéger un temps soit peu Thélia. ? La première consiste à ajouter un .htaccess et .htpassword au répertoire /admin ? Le fichier .htaccess : AuthUserFile /admin/.htpassword AuthGroupFile /dev/null AuthName "Acces Restreint" AuthType Basic <Limit GET POST> require valid-user </Limit> Le fichier .htpassword nom:mot_de_passe un générateur automatique (parmi une foultitude, merci google) : http://www.etigris.com/fr/support/outils/generateur_htpasswd/ 66 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA ? Une autre consiste aussi à modifier le nom du répertoire /admin Ce n'est pas d'une réelle sécurité toutefois... pensez aussi à renseigner vos fichiers robots.txt avec un : User-Agent: * Disallow: /admin/ --> Ce qui permet à un attaquant de savoir comment s'appelle votre répertoire d'administration, et qui ne marche bien évidemment pas si vous laissez un lien vers la partie admin du site, sur la partie publique. Préférez de loin la première méthode, plus sûre. Dans tous les cas préférez une connexion sécurisée pour vous connecter à l'administration (https) 7. Les plugins classiques ; Les plugins classiques peuvent ajouter des actions, des boucles à Thelia. Ils peuvent aussi enrichir l'interface d'administration. Si vous avez lu la partie Introduction_aux_plugins, nous pouvons avancer. Voici une structure de classe typique d'un plugin de type "classique". <?php include_once(realpath(dirname(__FILE__)) . "/Baseobj.class.php"); include_once(realpath(dirname(__FILE__)) . "/Cache.class.php"); include_once(realpath(dirname(__FILE__)) . "/Modulesdesc.class.php"); class PluginsClassiques extends Baseobj{ var $nom_plugin; function PluginsClassiques($nom=""){ $this->Baseobj(); $this->nom_plugin = $nom; } function init(){ } function destroy(){ } function getTitre(){ if($_SESSION['navig']->lang == "") $lang="1"; else $lang=$_SESSION['navig']->lang; 67 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA $modulesdesc = new Modulesdesc(); $modulesdesc->charger($this->nom_plugin, $lang); return $modulesdesc->titre; } function getChapo(){ if($_SESSION['navig']->lang == "") $lang="1"; else $lang=$_SESSION['navig']->lang; $modulesdesc = new Modulesdesc(); $modulesdesc->charger($this->nom_plugin, $lang); return $modulesdesc->chapo; } function getDescription(){ if($_SESSION['navig']->lang == "") $lang="1"; else $lang=$_SESSION['navig']->lang; $modulesdesc = new Modulesdesc(); $modulesdesc->charger($this->nom_plugin, $lang); return $modulesdesc->description; } function ajout_desc($titre, $chapo, $description, $lang=1, $devise=""){ $modulesdesc = new Modulesdesc(); $res = $modulesdesc->verif($this->nom_plugin, $lang); $modulesdesc->plugin = $this->nom_plugin; $modulesdesc->titre = $titre; $modulesdesc->chapo = $chapo; $modulesdesc->description = $description; $modulesdesc->lang = $lang; $modulesdesc->devise = $devise; if($res) $modulesdesc->maj(); else $modulesdesc->add(); } function demarrage(){ } 68 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA function inclusion(){ } function pre(){ } function action(){ } function boucle($texte, $args){ } function post(){ } function statut($commande){ } function confirmation($commande){ } function modprod($ref){ } function apresclient($client){ } function aprescommande($commande){ } } ?> init : méthode appelée à l'activation du plugin. Elle peut permettre de créer des tables par exemple. destroy : méthode appelée à la désactivation d'un plugin. Utile pour vider le cache, supprimer des tables ... getTitre : renvoie le titre du plugin 69 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA getChapo : renvoie le chapo du plugin getDescription : renvoie la description du plugin ajout_desc : permet de définir titre, chapo, description du plugin Certaines méthodes des plugins seront appelées à chaque chargement de page suivant l'ordre suivant : 1) méthode demarrage() des plugins 2) action thelia 3) méthode pre() des plugins 4) ouverture template par thelia 5) méthode inclusion() des plugins 6) inclusion thelia 7) méthode action() des plugins 8) analyse thelia (parse + boucle) + méthode boucle() des plugins 9) filtres thelia 10) méthode post() des plugins La méthode statut() sera appelée lors du changement du statut d'une commande (via interface admin). La méthode modprod() sera appelée lors de la modification d'un produit (via interface d'admin) La méthode confirmation() sera appelée lors d'une confirmation de commande par la banque distante. La méthode apresclient() sera appelée lors de la création d'un client, juste après sa création et le renvoi sur la page nouveau.php. La méthode aprescommande() sera appelée lors de la création d'une commande juste avant l'appel des plugins de paiement. Il est parfois nécessaire de pouvoir inclure du code avant le démarrage de la session pour être capable de stocker de nouveaux objets en session par exemple. Si vous placez un fichier 70 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA inclure_session.php dans le répertoire de votre plugin, il sera inclue avant le démarrage de la session. 8. Les plugins transports : Les plugins transports permettent d'ajouter une nouvelle gestion des frais de ports. Ils peuvent aussi enrichir l'interface d'administration. Si vous avez lu la partie Introduction_aux_plugins, nous pouvons avancer. Voici une structure de classe typique d'un plugin de type "transport". Le Plugin paiement hérite de la classe Plugins. <?php include_once(realpath(dirname(__FILE__)) . "/Plugins.class.php"); class PluginsTransports extends Plugins{ var $poids; var $nbart; var $total; var $zone; var $pays; var $unitetr; var $cpostal; function PluginsTransports($nom=""){ $this->Plugins($nom); } function calcule(){ } } ?> Détaillons les attributs : poids : poids total du panier nbart : nombre d'article total : total du panier zone : zone du client 71 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA pays : pays du client unitetr : unite de transport de la zone cpostal : code postal du client Détaillons les méthodes : PluginsTransports : constructeurs calcule : calcule du port 9. Les plugins paiements : Les plugins paiements permettent d'ajouter un nouveau mode de paiement. Ils peuvent aussi enrichir l'interface d'administration. Si vous avez lu la partie Introduction_aux_plugins, nous pouvons avancer. Voici une structure de classe typique d'un plugin de type "paiement". Le Plugin paiement hérite de la classe Plugins. <?php include_once(realpath(dirname(__FILE__)) . "/Plugins.class.php"); class PluginsPaiements extends Plugins{ function PluginsPaiements($nom=""){ $this->Plugins($nom); } function paiement($commande){ } function getDevise(){ } } ?> Détaillons les méthodes : PluginsPaiements : constructeurs. 72 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA paiement : méthode appelée lors du paiement 10.Ajouts dans l'interface d'administration : 10.a. Interface d'administration "de base" : Au niveau de l'interface d'administration de THELIA, vous avez probablement remarqué le menu "Modules d'administration". SI vous ajoutez dans le répertoire de votre plugin un fichier nommé nomplugin_admin.php, il sera accessible ici. Cependant vous allez peut-être vouloir ajouter du code directement au sein des pages d'administrations de THELIA. Des points d'entrées existent, ils seront prochainement étoffés. Vous pouvez créer les fichiers suivants : nomplugin_admin_clientvisualiser.php : code ajouté dans la page de visualisation client. nomplugin_admin_commandedetails.php : code ajouté dans la page du détail commande. nomplugin_admin_produitmodifier.php : code ajouté dans page de modification de produits. 10.b. Etendre la gestion des plug-ins à toute l'interface d'administration : (en espérant voir ça un jour inclus dans le code source Thelia...! Valide pour Thelia 1.3.5, à valider pour version actuelle ?) Avec une installation par défaut de THELIA, l'appel plug-ins ne fonctionnera que sur les produits, mais pas sur les rubriques, contenus ou dossiers. Pour régler ce problème, il vous faut étendre la gestion des plug-ins aux pages suivantes : ? /admin/rubrique_modifier.php ? /admin/contenu_modifier.php ? /admin/dossier_modifier.php Dans chacun de ces fichiers, deux petits blocs de code à rajouter : ? retrouvez la fonction qui traite l'action "modifier" (version 1.3.5 : "function modifier"). Dans cette fonction, juste avant la redirection finale, rajouter l'appel qui suit : o Pour dossier_modifier: modules_fonction("moddos", $dossier->id); o Pour contenu_modifier: modules_fonction("modcont", $contenu->id); o Pour rubrique_modifier: modules_fonction("modrub", $rubrique->id); 73 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA ? retrouvez dans le HTML le tableau qui clôt le formulaire de modification en recherchant </form>. Avant ce tableau, insérez le bloc suivant : o Pour dossier_modifier: <?php admin_inclure("dossiermodifier"); ?> o Pour contenu_modifier: <?php admin_inclure("contenumodifier"); ?> o Pour rubrique_modifier: <?php admin_inclure("rubriquemodifier"); ?> Une fois cela fait, vous pouvez créer : ? Dans votre classe MonPlugin.class.php : o function moddos($id) qui est appelée lors de la modification d'un dossier, et fonctionne comme modprod() o function modrub($id) appelée lors de la modification d'une rubrique, o function modcont($id) appelée lors de la modification d'un contenu. ? Pour la gestion dans l'interface d'admin : o un fichier monplugin_admin_dossiermodifier.php pour afficher des données supplémentaires dans la page de modification de dossier, o un fichier monplugin_admin_contenumodifier.php pour afficher des données supplémentaires dans la page de modification de contenu, o un fichier monplugin_admin_rubriquemodifier.php pour afficher des données supplémentaires dans la page de modification de rubrique. Ces fichiers fonctionnent comme monplugin_admin_produitmodifier.php ... 74 Manuel d?utilisation / Réalisé par KARCHOUD S. THELIA Liens utiles et source de documentation : Téléchargement du script Thelia : http://www.thelia.fr/informations__1_telecharger_8.html Presentation du script Thelia : http://www.thelia.fr/informations__1_presentation_2.html Aide sur le script Thelia : http://www.thelia.fr/informations__1_faq_1.html Documentation sur le script Thelia : http://wiki.thelia.fr/index.php/Accueil Blog du script Thelia : http://blog.thelia.fr/ Forum d?aide : http://forum.thelia.fr/

PARTAGER SUR

Envoyer le lien par email
11126
READS
243
DOWN
9
FOLLOW
9
EMBED
DOCUMENT # TAGS
#thelia  #e-commerce 

licence non indiquée


DOCUMENT # INDEX
e-commerce 
img

Partagé par  thelia-addict

 Suivre

Auteur:S.Karchoud
Source:Non communiquée