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 à tous
merci pour ce plugin, qui, je crois, devrait correspondre au site que je voudrais faire, mais avant de m’y lancer je souhaiterais avoir quelques réponses à mes questions, j’explique.
Je veux créer un site pour promouvoir de jeunes artistes musicaux.
Le but est que chaque artiste devra gérer lui-même son catalogue de chansons une fois inscrit sur le site, (la mise à jour des derniers morceaux, le prix, la promo...etc).
Côté internaute, il pourront écouter un sample/morceau de basse qualité ou incomplet (pour éviter le piratage), effectuer un paiement en ligne par morceau choisi qu’ils pourront télécharger après acceptation du paiement, et/ou acheter l’album en entier. Faire une recherche, voir les morceaux les plus écoutés...
Questions :
- Peut-on créer un compte THELIA par artiste, qu’il pourra gérer à sa guise ?
- Peut-on proposer à l’internaute d’écouter un morceau de basse qualité ou incomplet ?
- Peut-on, une fois le paiement en ligne effectué télécharger (ou envoi par mail) directement la chanson choisie, avec confirmation, facture pdf ...etc ?
- Peut-on effectuer un paiement avec Allopass ? ou organisme de crédit ?
- Peut-on proposer un « topliste » des morceaux les plus écoutés/achetés... ?
et ron et ron petit peut-on ;)
d’avance merci pour toutes les infos et continuer à nous faire de belle contrib/plugin...
;)
bonjour et merci pour tes commentaires,
Il n’est pas encore possible, d’avoir plusieurs utilisateurs avec des profils différents dans l’espace d’admin Thélia.
Pour les questions sur les fonctionnalités du logiciel Thélia, je te conseille d’aller plutôt sur les forums de Thélia.
a+
Arnault
Répondre à ce message
Bonjour,
Je n’ai pas encore tester cette solution (coahabitation SPIP et THELIA), mais ça correpsond à ce que je recherche pour l’un de mes projets.
J’aurai aimé (comme d’autres aussi) participer au développement de ce plugin, merci de penser à le mettre sur la zone !
@+
Désolé, finalment il est dans la zone !
C’est même écrit dans cet article.
Ah Précipitation quand tu nous tiens !
@+
Répondre à ce message
Bonjour,
Bravo pour ce plugin et pour thelia tout simplement.
Je me forme progressivement...
Existe-t-il un formulaire de recherche permettant d’effectuer une recherche du contenu éditorial et des articles présentés en boutique ?
Merci par avance pour votre aide.
Répondre à ce message
Bonjour,
je viens d’installer le plug-in Thelia. Sans problème.
Je voulais juste signaler une erreur dans l’exemple de la boucle SPIP : il faut fermer avec et non
.
Merci pour ce plugin !
merci pour cette information, j’ai corrigé le boucle fermante SPIP
Répondre à ce message
bonjour,
ça me plait beaucoup.
Un butinage rapide m’a fait remarquer les choses suivantes :
- une fois connecté il semble impossible de se déconnecter
- une fois connecté la rubrique thelia est vide, peut être est du au fait que j’ai acheté la voiture qui parle latin ?
trés prometteur, félicitations
Salut Thierry,
Je pense avoir corrigé ce problème de connexion. J’ai également testé la deconnexion, c’est ok.
Pour restester, je pense qu’il te faudra supprimer le cookie de session précédent dans ton navigateur.
merci pour tes commentaires, c’est vrai que les perspectives de ce plugin sont sympas !
Arnault
J’ai installe le plugin, et j’ai reussi sans problème à faire fonctionner les boucles Thelia dans SPIP, c’est génial..
Par contre,
Je galère depuis plusieurs jours pour faire marcher la création de compte et la connexion depuis un site SPIP, quand j’insere dans ma page SPIP l’entete de connexion de Thelia, ca fonctionne, par contre le bouton valider me donne l’erreur SPIP suivante :
Fichier action/connexion introuvable et je n’arrive plus a avancer,
quelqu’un pourrait il me donner une piste qui fonctionne.
Merci par avance.
Répondre à ce message
Bonjour,
et tout d’abord merci pour ce plug-in... sauf que je n’arrive pas à le faire fonctionner...
J’ai installé Thélia 1.3.1 avec Spip 1.9.2c et cfg 1.0.6. Tout d’abord dans l’interface privée, tant que je n’ai pas choisi la bonne version de Thélia dans cfg, les feuilles de style de l’interface privée ne sont pas prises en compte. Tout rentre dans l’ordre quand la bonne version est sélectionnée. Soit.
Par contre, dès que le plug-in Thélia est activée, la page index et la page rubrique de spip ne sont plus prises en compte et j’obtiens donc en ligne une magnifique page blanche. Je n’ai pourtant pas remplacé ni le fichier index, ni le fichier rubrique... Ca fait un moment que j’essaie tout plein de possibilités mais sans trouver de solution. Auriez-vous une idée ?
Merci d’avance
Vincent
salut,
je viens d’installer la 1.9.2c sur le site de démo du plugin avec Thélia 1.3.1.
je n’ai pas de problème.
l’installation est correcte ? thélia et spip sont au même niveau dans l’arborescence ? tu peux peut-être me donner un lien pour que je regarde (en privé si tu préfères).
Répondre à ce message
bonjour,
J’avance lentement mais surement dans l’installation de Thelia + SPIP.
J’ai SPIP 1.9.2 + cfg 1.0.2 + le plugin Thélia récupéré aujourd’hui sur la zone
Lorsque je clique sur « accès au panneau de configuration avec cfg » (lien http://127.0.0.1/breizmer_thelia/ecrire/?exec=cfg&cfg=spip_thelia) j’obtiens une page blanche..
merci
dd
Répondre à ce message
Bonjour et tout dabord merci pour la réalisation, un de thelia qui sur le principe (j’ai encore à bien le découvir) à l’air vraimant intéressant et sur la réalisation de ce plugin dédié à SPIP qui m’interesse fortement et qui sera sans doute fondamental dans le choix de votre CMS de commerce.
J’ai un petit soucis à l’install :
1 / J’ai récupéré aujourd’hui la version 1.3.1 de thelia sur votre site et j’ai récupéré à priori la dernière version du plugin associé (les fichiers datent su 06/08/07).
2 / J’ai créé un base dédié à Thelia (fallait il utiliser celle de spip ? je ne pense pas qd meme ^^) l’install s’est déroulée sans soucis.
3 / J’ai installé le plugin com’ dab sous plugins, et via l’admin j’ai validé le plugin. IMPOSSIBLE. La validation ne se fait pas et tant que ce répertoire existe je n’ai plus du tout accès au site. Donc je l’ai supprimé... Bizarre, je ne vois pas quel pourrait en etre la raison.
Site d’essai :
http://www.hom-m-e.com/version2/ (spip)
http://www.hom-m-e.com/version2/thelia (thelia)
Si quelqu’un a une piste, merci.
bonjour yvan,
as-tu installé SPIP et Thélia dans le même répertoire ?
après une installation classique de Thélia et de SPIP, tu devrais obtenir quelque chose du genre :
faire attention à ne pas écraser les fichiers de SPIP à la racine.
Bonjour merci pour votre prompte réponse.
En effet j’avais, oh erreur, installé thelia en sous répertoire de SPIP. Désormais c’est bon. et la validation se fait correctement. Etape 1 franchie.
Désolé, mais je vais vous embeter pour l’étape 2. Après validation du plugin j’ai les erreurs suivantes :
Espace admin : plus de feuille de styles... gnii ?.
Espace public :
Warning : spip_thelia_appeler_moteur_thelia(fonctions/filtres.php) : failed to open stream : No such file or directory in /home/httpd/vhosts/www.hom-m-e.com/web/version2/plugins/plugin-thelia/spip_thelia_fonct.php on line 28 Warning : spip_thelia_appeler_moteur_thelia() : Failed opening ’fonctions/filtres.php’ for inclusion (include_path=’. :/usr/local/php4/lib/php/’) in /home/httpd/vhosts/www.hom-m-e.com/web/version2/plugins/plugin-thelia/spip_thelia_fonct.php on line 28 Fatal error : Call to undefined function : filtres() in /home/httpd/vhosts/www.hom-m-e.com/web/version2/plugins/plugin-thelia/spip_thelia_fonct.php on line 435
visible à cette adresse : http://www.hom-m-e.com/version2/
kesako ? déjà vu sur d’autres sites ? Mélange de répertoires ?
Merci. En espérant etre utile pour de futures installs.
Yvan
oups !
bonjour et merci pour les essais, le problème vient du fait que le plugin n’est pas compatible avec la 1.3.1 (j’avais fait les modifs pour la 1.3.2, et apparement ça ne fonctionne pas avec la 1.3.1 )
Si tu souhaites installer la 1.3.2, elle est en téléchargement sur le blog de Thélia :
http://blog.thelia.fr/index.php?2007/07/30/120-thelia-132-pre1
Ce que de mon coté je vais faire :
- faire une version compatible avec la 1.3.1
- faire évoluer le plugin pour qu’il soit moins dépendant des versions de Thélia ou alors, se limiter à une compatibilité avec les releases « officielles » seulement.
Je te tiens au courant !
je viens de mettre à jour une nouvelle version du plugin compatible avec :
- thélia 1.2.2
- thélia 1.3.1
- thélia 1.3.2Pre1
La configuration s’effectue désormais avec le plugin cfg, lequel doit être installé préalablement.
Répondre à ce message
Bonjour,
j’ai versé les fichiers de thelia : admin, classes, client.orig etc à la racine de Spip. J’ai versé tous les fichiers html et php de thelia templates dans le dossier squelettes. j’ai renonmé le fichier rubrique de thelia en rubrique_thelia
J’ai mis dans sommaire la boucle qui appelle la rubrique thelia
THELIA-TITREdans le sommaire il apparait bien le nom de la rubrique que j’ai crée par admin de thelia :
Ouvrages aux Editions GAP dans laquelle j’ai enregistré deux produits.
Mais le lien de cette rubrique thelia ne trouve pas la page du catalogue « no found »
quand tu parles de renonmé article et rubrique en article_thelia c’est de quel article dont il sagit dans le dossier templates il n’y a pas de fichier article ?
cordialement
Ok c’est presque bon !
on voit déjà que la boucle Thélia exécuté dans sommaire permet d’afficher les rubriques du catalogue de Thélia ;)
le problème à mon avis vient des templates de thélia, qu’il faut copier directement à la racine du site, pas dans squelettes.
pense ensuite à faire la manip « /rubrique.html’ -> »/rubrique_thelia.html", et de changer l’appel dans /rubrique.php, tel que décrit dans l’article, sinon c’est squelette/rubrique.html qui sera appelé.
Tiens moi au courant,
Arnault
j’ajoute également :
- ne renommez pas /rubrique.php en /rubrique_thelia.php
- renommez uniquement /rubrique.html en /rubrique_thelia.html
- dans /rubrique.html, appelez $fond = « rubrique_thelia.html »
c’est le même système que SPIP 1.8
ainsi les liens Thélia (THELIA-URL) du type /rubrique.php ?id_rubrique=1 lanceront la rubrique Thélia correspondante, et les liens SPIP (#URL_RUBRIQUE) du type /spip.php ?rubrique=1 lanceront la rubrique SPIP correspondante
Warning : mysql_numrows() : supplied argument is not a valid MySQL result resource in /var/........./plugins/plugin-thelia/boucles-thelia.php on line 118
en page sommaire l’appel de la boucle thelia ne s’affiche plus.
J’ai supprimé templates et versé les fichiers templates à la racine. modifié fond de rubrique.php
((si je laisse le dossier templates le résultat est le même ))
l’affichage sur la page d’accueil semble correct : http://www.micheletievent.lautre.net/
et la rubrique Thélia « ouvrages aux éditions GAP » s’affiche correctement : http://www.micheletievent.lautre.net/rubrique.php?id_rubrique=1
par contre vous n’avez apparement pas de produits dans cette rubrique, c’est exact ?
effectivement l’interface de thélia maintenant s’affiche. Dans la rubrique « ouvrages aux éditions gap », crée avec thelia, j’ai mis 2 produits. Par contre ils ne s’affichent pas ...
Merci encore pour votre contribution et disponibilité.
cordialement
Les produits s’affichent bien sur l’interface thélia. Par contre chaque produit affiche la balise THELIA-TITRE à la place du nom du produit.
SI je fais un recalcul de la page ou je vide le cache le problème que je disais plus haut reviens warning plugin-thelia/boucles-thelia.php on line 118
ensuite je suppose, après un délais, le titre de la rubrique s’affiche à nouveau dans la page sommaire.
Un petit grain de sable...
vraiment bien cette adaptation de thélia !!!
cordialement jean-noël
petite précision :
warning /plugins/etc s’affiche systématiquement après une intervention par exemple du cache, désactivé un plugin dans l’espace privé.
dans le navigateur si j’actualise ou fait un recalcul de la page aucun effet par contre si je ferme le navigateur et le relance la page sommaire avec lien de la rubrique thelia est opérant.
Voici l’explication pour « THELIA-TITRE » :
- dans les squelettes appelés par spip et thélia (et donc : le plugin), qui se trouvent dans le dossier squelettes, il faut utiliser
THELIA-TITRE
- dans les squelettes appelés uniquement par Thélia, qui se trouvent à la racine, il faut utiliser
#TITRE
c’est pourquoi dans rubrique_thelia.html modifie :
<span class="bold">THELIA-TITRE</span> <br />
et remet la ligne d’origine :
<span class="bold">#TITRE</span> <br />
Pour le warning, il faut que j’investigue un peu, j’ai vu que j’avais également ce warning sur le site de démo, mais l’affichage des erreurs PHP est désactivé.
je te tiens au courant, peut être en attendant tu peux désactiver les warnings...
bonne journée
PS : je vais rédiger une documentation sur ce plugin pour montrer comment aller + loin dans l’intégration des deux logiciels, en réécrivant les squelettes Thélia au format du plugin pour qu’ils prennent place dans /squelettes.
En ce qui me concerne, c’est le message d’erreur suivant que j’ai :
Warning : mysql_numrows() : supplied argument is not a valid MySQL result resource in c :\monsite\fonctions\boucles.php on line 119
Une idée ou un conseil ?
Merci.
L.
Répondre à ce message
Bonjour,
j’ai installé Thélia dans le meme repertoire que spip ; il fonctionne bien mais dès que j’active votre plugin, ca paralyse TOUT mon site et j’ai ceci sur toutes les pages de mon site :
Warning : spip_thelia_appeler_moteur_thelia(client/fonctperso/perso.php) [function.spip-thelia-appeler-moteur-thelia] : failed to open stream : No such file or directory in /home.10.18/antenne/www/plugins/plugin-thelia/spip_thelia_fonct.php on line 38
Warning : spip_thelia_appeler_moteur_thelia() [function.include] : Failed opening ’client/fonctperso/perso.php’ for inclusion (include_path=’. :/usr/local/lib/php’) in /home.10.18/antenne/www/plugins/plugin-thelia/spip_thelia_fonct.php on line 38
Warning : main(classes/Boutique.class.php) [function.main] : failed to open stream : No such file or directory in /home.10.18/antenne/www/plugins/plugin-thelia/boucles-thelia.php on line 48
Warning : main() [function.include] : Failed opening ’classes/Boutique.class.php’ for inclusion (include_path=’. :/usr/local/lib/php’) in /home.10.18/antenne/www/plugins/plugin-thelia/boucles-thelia.php on line 48
Fatal error : Call to undefined function : perso() in /home.10.18/antenne/www/plugins/plugin-thelia/spip_thelia_fonct.php on line 209
POUVEZ-VOUS M’AIDER ?
Merci !
bonjour,
je suis en congé, je regarderai à mon retour dans une dizaine de jours. Une piste en attendant : le plugin est compatible avec la version 1.2.2 de Thélia, la version actuelle en téléchargement sur le site étant la 1.3.
Le plugin sera bientôt adapté pour cette nouvelle version
Excellent !
Merci à toi !
Le probleme c’est que client/foncperso existait dans des version de THELIA anterieures à la 1.2.2, mais n’y est plus à partir de cette release...il faut aussi quelques fichiers class qui existait auparavant.
De mon côté, j’ai pu en recupérant dans un dossier Thelia que je mettais à jour manuellement les relicats de ces fichiers,
et dans un premier temps j’ai pu activer le plugin, mais malheureusement pour moi , le parsing des boucles ne s’opère pas.
Je crains qu’il faille attendre une version plus récente du plugin, les versions antérieure de Thelia ne sont plus dispos en téléchargement...
Salut et merci pour tes commentaires positifs !
j’ai mis sur SVN une version du plugin compatible avec la version 1.3 de Thélia (testé avec la 1.3.2 sur le site de démo)
pour utiliser la version précédente 1.2.2, il faut mettre $version_thelia = « 1.2 » ; dans spip_thelia_fonct.php
le nouveau zip du plugin sera généré automatiquement.
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 : |