Description
Thélia est un logiciel libre de vente en ligne basé sur un système boucle/balise très proche de celui de SPIP.
Ce plugin permet d’activer le moteur de Thélia [1] après celui de SPIP lors du calcul des pages, ce qui va vous permettre d’utiliser directement les boucles au format Thélia dans vos squelettes :
- vous gérez votre site SPIP et le catalogue Thélia depuis l’espace privé SPIP
Le plugin est livré avec tous les squelettes spécifiques pour la vente en ligne : panier.html commande.html .... basés sur la dist, et prêts à être personnalisés.
Documentations complémentaires
- Utilisation avancée du plugin Thélia
- Insérer des produits Thélia dans les articles
- Wiki Thélia
Installation
Pour fonctionner, ce plugin requiert une installation préalable du logiciel Thélia en version 1.3.3 ou supérieure et dans le même répertoire que SPIP.
C’est à dire qu’après l’install vous devriez avoir une arborescence du style :
/
/admin
/classes
/client
/config
/ecrire
/fonctions
/IMG
/lib
/local
/oo
/plugins
/template
/tmp
index.php
spip.php
...etc...
Je vous invite à consulter le site de Thélia pour obtenir toutes les informations nécessaires sur l’installation de thélia (en gros, copiez les fichiers puis lancez /install) [2].
Vous pouvez installer SPIP et Thélia dans la même base.
Etape 1 : Installation du plugin.
Récupérez le zip du plugin thélia, ainsi que celui du plugin CFG, sur l’espace de téléchargement de la Zone : https://files.spip.net/spip-zone/ [3]. L’installation se déroule ensuite comme pour tous les autres plugins, cf. https://www.spip.net/fr_article3396.html
L’installation se fait dans le répertoire /plugins/plugin-thelia
Etape 2 : Fichiers de redirection.
Vous avez deux possibilités :
- copier les fichiers contenus dans le répertoire plugin-thelia/pb_htaccess
à la racine de votre site (recommandé)
- ou copier le contenu du fichier htaccess.plugin_thelia.txt
fourni avec le plugin dans le fichier .htaccess à la racine de votre site.
Pour spip 2.0 et Thélia < 1.5.1 vous devez également :
- modifier le fichier /ecrire/inc/utils.php et mettre en commentaire la fonction chemin() (ligne 671),
- copier le contenu du répertoire plugin-thelia/squelettes_spip2.0
dans votre répertoire /squelettes
Pour Thélia 1.5 (inutile pour Thélia 1.5.1), vous devez :
- désactiver l’encodage en UTF8 dans le panneau CFG du plugin Thélia
- remplacer dans le fichier /fonctions/hierarchie.php
les fonctions suivantes : (Merci à A. Bourdeau pour cette information)
// Renvoie le chemin pour aller à une hierarchie d'objets, avec protection contre les
// références circulaires dans la hiérarchie d'objets.
function _chemin($id, $nomobj, $lang=1){
$ids = array();
$tab = array();
$tobj = new $nomobj();
$tobj->parent = $id;
$objdesc = $nomobj."desc";
// On doit toujours retourner au moins un element, sinon bouclage dans l'admin...
$tab[] = new $objdesc();
$idx = 0;
while(intval($tobj->parent) != 0) {
$ids[] = $tobj->parent;
$tobjdesc = new $objdesc();
if (intval($tobj->parent) > 0 && $tobj->charger($tobj->parent) && $tobjdesc->charger($tobj->id, $lang))
{
if (in_array($tobj->parent, $ids))
{
die("Référence circulaire détectée dans la hiérarchie des ${nomobj}s à partir de l'ID=$tobj->id. Chemin: ".implode(" -> ", $ids));
}
$tab[$idx++] = $tobjdesc;
}
else
{
// Chargement impossible -> arrêt
break;
}
}
return $tab;
}
// renvoie le chemin pour aller à une rubrique donnée
function chemin($id, $lang=1){
return _chemin($id, 'Rubrique', $lang);
}
// renvoie le chemin vers un dossier
function chemin_dos($id, $lang=1){
return _chemin($id, 'Dossier', $lang);
}
par :
// Renvoie le chemin pour aller à une hierarchie d'objets, avec protection contre les
// références circulaires dans la hiérarchie d'objets.
function _chemin_thelia($id, $nomobj, $lang=1){
$ids = array();
$tab = array();
$tobj = new $nomobj();
$tobj->parent = $id;
$objdesc = $nomobj."desc";
// On doit toujours retourner au moins un element, sinon bouclage dans l'admin...
$tab[] = new $objdesc();
$idx = 0;
while(intval($tobj->parent) != 0) {
$ids[] = $tobj->parent;
$tobjdesc = new $objdesc();
if (intval($tobj->parent) > 0 && $tobj->charger($tobj->parent) && $tobjdesc->charger($tobj->id, $lang))
{
if (in_array($tobj->parent, $ids))
{
die("Référence circulaire détectée dans la hiérarchie des ${nomobj}s à partir de l'ID=$tobj->id. Chemin: ".implode(" -> ", $ids));
}
$tab[$idx++] = $tobjdesc;
}
else
{
// Chargement impossible -> arrêt
break;
}
}
return $tab;
}
// renvoie le chemin pour aller à une rubrique donnée
function chemin($id, $lang=1){
return _chemin_thelia($id, 'Rubrique', $lang);
}
// renvoie le chemin vers un dossier
function chemin_dos($id, $lang=1){
return _chemin_thelia($id, 'Dossier', $lang);
}
Pour zpip, vous devez :
- copier le contenu du répertoire plugin-thelia/squelettes_zpip
dans votre répertoire /squelettes
Un bouton vous permet d’accéder au catalogue Thélia depuis l’espace privé SPIP (Edition->Catalogue Thélia) :
Modification légère de la syntaxe de Thélia
Certaines balises Thélia sont identiques aux balises SPIP, par exemple #TITRE
, #CHAPO
. Pour éviter une confusion entre les deux moteurs, il sera nécessaire de modifier légèrement la syntaxe des balises Thélia.
La modification à faire est la suivante : préfixer les balises du mot THELIA-
et supprimer le caractère #
.
Ainsi, la balise #TITRE
se rapportant à un titre Thélia doit être renommée THELIA-TITRE
Exemple de boucle Thélia
Pour illustrer la ressemblance entre la syntaxe SPIP et la syntaxe Thélia, voici un exemple de boucle simple (liste des rubriques du site)
Boucle SPIP :
<ul>
<BOUCLE_rubriques(RUBRIQUES)>
<li><a href="#URL_RUBRIQUE">#TITRE</a></li>
</BOUCLE_rubriques>
</ul>
Boucle Thélia :
<ul>
<THELIA_rubriques type="RUBRIQUE">
<li><a href="#URL">#TITRE</a></li>
</THELIA_rubriques>
</ul>
Boucle Thélia adaptée pour le plugin :
<ul>
<THELIA_rubriques type="RUBRIQUE">
<li><a href="THELIA-URL">THELIA-TITRE</a></li>
</THELIA_rubriques>
</ul>
Pour en savoir plus sur les boucles et balises Thélia, consultez le wiki Thélia
Discussions par date d’activité
304 discussions
Bonjour,
je m’interesse beaucoup à Thelia, et j’étais aux anges quand j’ai découvert récemment la greffe sur SPIP...
En pratique, Je rencontre cependant un problème...
Je viens d’activer le plugin Thelia, et je pense que j’ai bien placé les fichier de Thelia 1.2.2 à la racine de spip.
Lorsque j’insère dans un article la boucle rubrique mise en exemple plus haut, celle-ci n’est pas « parsée ».
en plaçant quelques « echo » dans le moteur du plugin Thelia, je constate que celui-ci est effectivement chargé, mais que la boucle rubrique n’est pas appellée .,pour cause supposée, la chaine traitée par le moteur ne contient pas de trace de balise Thelia,
(donc évidemment le moteur ne peut pas traiter les boucles)
Il s’agirait donc d’un problème en aval, à savoir le pré-traitement de la chaine par SPIP.
Y a il une option à activer dans SPIP, un paramètre qui m’aurait échappé ?
Amis de SPIP, à l’aide !!!!
Je me réponds à moi-même, cela pourra aider d’autres personnes .
En fait tout fonctionne impec : le truc c’est de savoir que les articles ne sont pas parsés dans la partie édition de l’espace privé, ni à l’accueil du site.
Mais par contre, les boucles sont bien traitées quand on utilise l’url rewriting( pour voir l’article 1 http://urlsite/SPIP/article1.html ).
Autre truc pour ceux qui viennent du petit monde Thelia,
les templates se place dans le dossier /disp et non pas à la racine comme dans Thelia.
Encore un truc , pour ceux qui auraient lu les bêtises que j’ai mis dans un autre post sur cette page : si vous avez le Zip 1.2.2 de Thelia ,il suffit de renommer le dossier client.orig en client,
et le tour est joué.
Conclusion :
le titre de cet article concerne les neurones de son auteur...
Morale : on devrait toujours bien lire le mode d’emploi avant de pigner...
Encore bravo Arnault et Merci....
Répondre à ce message
C’est très prometteur, je cherchais a utiliser SPIP et un logiciel de vente en ligne, voila qui pourrait être une solution.
Mon problème pour l’instant, il manque un module paypal sous THELIA, si quelqu’un à déjà fait ?
Je mets tout ça en test dès aujourd’hui.
salut,
pour info, le module Paypal est en cours de developpement.
tiens nous au courant de tes tests !
Pas de souci
jai cette erreur :
Warning : main(divers.php) [function.main] : failed to open stream : No such file or directory in
............plugins/plugin-thelia/boucles-thelia.php on line 67
j’ai commenté la ligne dans le fichier pas d’autre erreur,
quelle utilité a cette ligne.
Merci
Il s’agit d’un fichier de Thélia se trouvant dans /fonctions.
J’ai remplacé sur le site de test :
include_once("divers.php");
parinclude_once("fonctions/divers.php");
si c’est ok je mettrai à jour sur la zone
ok merci bien, ça a l’air de collé.
Reprise des tests le semaine prochaine, bon weekend
Répondre à ce message
Bravo ! j’ai découvert Thélia il y a quelques semaines et l’ai testé. Sa logique de boucle est très confortable pour un familier de spip. J’ai failli vous envoyer un message il y a quelques jours pour vous demander si vous alliez faire un plugin pour spip. exocé !
Je suis d’accord avec le contenu des post ci-dessus concernant paypal : ça peut manquer comme moyen de paiement.
en tout cas, chapeau bas pour le boulot et l’initiative d’adapter Thélia pour spip.
pLsK
Répondre à ce message
youpi :) excellente idée :) j’avais testé thelia et j’en étais déjà ravie avant...
(dommage qu’il manque paypal)
Répondre à ce message
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 : |