Le plugin Thélia permet l’utilisation conjointe de SPIP et Thélia pour des sites mixtes : de publication et de vente en ligne.
Associer un produit thélia à un article
Il y a désormais [1] une interface dans l’espace privé pour pouvoir associer un/des produits à une rubrique ou un article. Cette interface s’active dans le panneau de configuration cfg du plugin.
Dans les squelettes, on peut utiliser 4 nouvelles boucles :
- PRODUITS_ARTICLES : produits Thélia associés aux articles SPIP
- RUBRIQUESTHELIA_ARTICLES : rubriques Thélia associées aux articles SPIP
- PRODUITS_RUBRIQUES : produits Thélia associés à des rubriques SPIP
- RUBRIQUESTHELIA_RUBRIQUES : rubriques Thélia associées à des rubriques SPIP
exemple pour afficher les produits associés à une rubrique :
<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
#TITRE
#TEXTE..etc
<B_produitsassocies>
produits associés :
<ul>
<BOUCLE_produitsassocies(PRODUITS_RUBRIQUES){id_rubrique}>
[ <THELIA_produit#ID_PRODUIT type="PRODUIT" id="(#ID_PRODUIT)">
<li> <a href="#URL_PAGE{produit,ref=THELIA-REF}">THELIA-TITRE</a> </li>
</THELIA_produit#ID_PRODUIT>]
</BOUCLE_produitsassocies>
</ul>
</B_produitsassocies>
pas de produit associé
<//B_produitsassocies>
</BOUCLE_rubrique>
Associer un article et un produit peut-être utile si par exemple vous avez des fiches de produits sur le site sous forme d’articles SPIP (ce qui permet de bénéficier des atouts de SPIP pour l’édition du contenu, les images, les forums...), et que vous souhaitiez insérer un lien automatique vers l’ajout au panier pour certaines d’entre elles.
C’est un système souple qui peut être utilisé pour d’autres fonctions, par exemple associer une rubrique SPIP à une rubrique dans Thélia. Ainsi lorsque la rubrique SPIP est affichée, on peut proposer dans un encart les produits de la rubrique Thélia associée...
Url rewriting
Pour utiliser la réecriture d’adresse coté Thélia, il faut ajouter dans le .htaccess le code suivant (à l’endroit où se trouvent les rewriterules) :
#RUBRIQUE ##############
RewriteRule ^([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)_([a-z0-9-]*)_\.html spip.php?page=rubrique_thelia&id_rubrique=$2 [NC,QSA,L]
RewriteRule ^([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)_\.html spip.php?page=rubrique_thelia&id_rubrique=$2 [NC,QSA,L]
RewriteRule ^([a-z0-9-]*)_([0-9]*)_\.html spip.php?page=rubrique_thelia&id_rubrique=$2 [NC,QSA,L]
#PRODUIT #############
RewriteRule ^([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)_([a-z0-9-]*)__([^.]*)\.html spip.php?page=produit&ref=$5&id_rubrique=$2 [NC,QSA,L]
RewriteRule ^([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)__([^.]*)\.html spip.php?page=produit&ref=$4&id_rubrique=$2 [NC,QSA,L]
RewriteRule ^([a-z0-9-]*)_([0-9]*)__([^.]*)\.html spip.php?page=produit&ref=$3&id_rubrique=$2 [NC,QSA,L]
#FIN THELIA
Ensuite, dans les squelettes (inc-rubriques.html, rubrique_thelia.html, produit.html..etc..) remplacer les URL spip vers des rubriques ou des produits par la balise THELIA-REWRITEURL
.
par exemple, dans rubrique_thelia.html ligne 48 et 54 :
#URL_PAGE{produit,ref=THELIA-REF&id_rubrique=THELIA-RUBRIQUE_ID}
devient :
THELIA-REWRITEURL
Régler les conflits sur la classe smtp
On rencontre parfois un conflit sur la class Smtp, utilisée par Thélia, mais aussi par certains plugins SPIP, dont « envoyer à un ami » et « spip-lettres ».
Vous pouvez mettre en commentaire dans fonctions/moteur.php la ligne 58, qui contient l’appel à Smtp.class.php :
//include_once("classes/Smtp.class.php");
Multilinguisme
SPIP et Thélia utilisent tous les deux la variable lang
dans l’url, mais les valeurs attendues ne sont pas les mêmes. Dans SPIP, lang
prend pour valeur deux caractères, alors que dans thélia, lang
prend pour valeur un nombre.
Par défaut, il n’y a que trois langues dans Thélia, les autres langues se rajoutent manuellement au besoin dans la table lang
.
- le français : 1
- l’anglais : 2
- l’espagnol : 3
Il est donc important de faire une correspondance entre le nommage de SPIP et le nommage de Thélia. Le plugin est paramétré correctement pour les 3 langues par défaut de Thélia, mais si vous êtes amenés à en ajouter d’autres, il est alors nécessaire de personnaliser les correspondances.
- dans ce cas, modifiez le fichier spip_thelia_fonc.php, ligne 94 :
switch($_REQUEST['lang']) {
case 'fr' : $_REQUEST['lang'] = 1; break;
case 'en' : $_REQUEST['lang'] = 2; break;
case 'es' : $_REQUEST['lang'] = 3; break;
default: $_REQUEST['lang'] = 1; break;
}
Utiliser le plugin commentaires de Thélia
Il existe un plugin dans Thélia qui permet d’ajouter des commentaires sur les produits http://contrib.thelia.fr/spip.php?a....
Si vous souhaitez l’utiliser sur votre site spip-thélia, il faut modifier le fichier Commentaires.class.php (ligne 102) et remplacer :
if(isset($_POST['action']) && $_POST['action'] == "ajcommentaire"){
par
if(isset($_POST['thelia_action']) && $_POST['thelia_action'] == "ajcommentaire"){
Voici un exemple d’intégration dans le squelette produit.html
<h2>commentaires sur ce produit</h2>
<T_comment>
<ul>
<THELIA_comment type="COMMENTAIRES" ref="THELIA-PRODUIT_REF">
<li>Message de THELIA-NOM : THELIA-MESSAGE <br />
THELIA-HEURE THELIA-DATE </li>
</THELIA_comment>
</ul>
</T_comment>
<//T_comment>
<br class="nettoyeur" />
<form action="#URL_PAGE{produit,ref=THELIA-REF}" method="post">
<input type="hidden" name="thelia_action" value="ajcommentaire" />
<input type="hidden" name="commentaire_ref" value="THELIA-REF" />
Nom : <input type="text" name="commentaire_nom" /><br />
Message : <input type="text" name="commentaire_message" /><br />
<input type="submit" value="OK" />
</form>
Vendre des produits virtuels
Si vous utilisez le plugin produits virtuels de Thélia http://contrib.thelia.fr/spip.php?a..., remplacez dans Prodvirtuel.class.php
ligne 244 : action=prodvirtueldl
par
thelia_action=prodvirtueldl
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |