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 et, tout d’abord, merci pour ce formidable plugin,
J’ai une suggestion de modification du plugin pour sa prochaine mise à jour (voir plus bas).
Je développe actuellement un site SPIP 3, basé sur un squelette zpip et, entre autres, sur le plugin Thelia (pour la partie e-commerce).
Et là où je bloque, c’est que je n’arrive pas à surcharger la feuille de style spipthelia.css.
Pourtant j’arrive sans problèmes à surcharger les feuilles de styles d’autres plugins :
Exemple avec le plugin Varicelle :
en copier la feuille de style en « squelettes/css/varicelle.css », les modifications s’appliquent en remplacement de la feuille de style du plugin (« plugins/auto/varicelle/v0.2.1/css/varicelle.css »).
J’ai essayé en copiant la feuille de style livrée avec le plugin thélia (« plugins/auto/spip_thelia/v1.5/spipthelia.css ») en différents endroits :
En racine du dossier « squelettes », en ajoutant, dans « squelettes/inclure/head.html » :
[ » type="text/css » media="projection, screen, tv » />]
Dans le sous-dossier « squelettes/css »,
j’ai même tenté un ajout des styles de spipthelia.css dans la habillage.css du thème zpip
Rien n’y fait :
à chaque tentative (en vidant bien les caches du navigateur et de SPIP, à chaque fois) j’ai le même résultat :
la feuille de style « plugins/auto/spip_thelia/v1.5/spipthelia.css » prend le dessus et, dans Firebug, tous les styles de thelia, situés hors du dossier plugins, sont barrés.
Une idée ?
Peut-être un début de piste :
Est-ce que cela a un rapport avec le fichier « plugins/auto/spip_thelia/v1.5/spip_thelia_fonctions.php » ?
qui contient notamment les lignes suivantes, débutant ligne 68 :
toujours est-il que si je modifie la ligne 68 (ajout de _css) :
function spip_thelia_insert_head_css($flux)
et que j’ajoute à « squelettes/inclure/head.html » :
Dans ce cas seulement, je peux alors surcharger les style de thelia et les adapter à ceux de mon thème zpip.
Une modification allant dans ce sens dans la prochaine mise à jours du plugin serait une bonne chose.
Merci d’avance.
Répondre à ce message
Bonjour,
J’ai un THELIA 1.5.4 et un SPIP 3.0.7
Le fichier spip_thelia_fonctions.php pose problème avec l’affichage de l’accueil.
j’ai réussi à isoler les fonctions causant l’erreur 500 :
et
$texte = ob_get_contents();
si je commente ces deux lignes, la page d’accueil s’affiche. mais les textes générés par les balises thelia ne sont pas filtrés ce qui donne des THELIA-PANIEBR_NB etc...
Auriez-vous une idée de ce qui peux causer ça ? Merci
Thelia 1.5.4 et SPIP 3.0.8 :
il semble que je sois confronté au même problème !
Par contre, lorsque tu indiques « Le fichier spip_thelia_fonctions.php pose problème avec l’affichage de l’accueil. » De quelle page d’accueil parles-tu ? :
- celle de thelia, hors admin de SPIP ? : chez moi, elle ne s’affiche plus, alors qu’elle s’affichait avec thelia 1.5.3,
- celle de thelia depuis l’espace privé de SPIP ? : chez moi, elle ne s’affiche plus non plus, alors qu’elle s’affichait avec thelia 1.5.3,
- celle de l’espace public de SPIP ? : chez moi, elle ne s’affiche plus non plus, alors qu’elle s’affichait avec thelia 1.5.3.
concernant les lignes à commenter :
pour « $texte = ob_get_contents() ; »
De quelle ligne parles-tu, vu que cette ligne apparaît en plusieurs endroits de spip_thelia_fonctions.php ?
Lignes 182, 328 et 419.
Répondre à ce message
Bonjour,
Je viens d’installer un SPIP + Thelia tout frais tout neuf donc toutes les dernières versions de SPIP et Thelia mais aussi des plugins suivants : API de vérification, Crayons, Facteur, Formidable, Interface Thélia, Menus, minibando, Saisies, SPIP Bonux, SPIP Mentions Légales, Swiss Knife, YAML, Zpip-dist v1.
Hébergé en mutualisé chez OVH en Php5...
Lors de mes tests j’ai aussi eu droit au message que Flo a rencontré « ... function total()... » Qui a disparu après avoir vidé le cache, désactivé le plugin, désactivé les squelettes persos puis après avoir tout remis en place... Bref je ne sais pas trop ce qui a résolu l’affaire mais ça rejoins un message de ce forum ou de celui de Thelia qui mentionne le message d’erreur et qui précise aussi qu’il est reparti comme il est venu... à creuser donc si le problème survient de nouveau.
En ce qui concerne la redirection vers la page de login SPIP à la place de celle du client Thelia je n’ai pas effectuée de modification car le problème ne se pose que pour les administrateurs SPIP dans mon cas, c’est à dire les clients pourvus d’un cookie d’identification SPIP. Comme je fais mes tests sur un autre navigateur ça ne me pose pas de problème.
Je rencontre un autre bug, au niveau du panier. Les boutons + et - ne fonctionnent pas « Fichier modifier introuvable ». Il semble que les constantes THELIA-PLUSURL et THELIA-MOINSURL ne soient pas adaptées correctement car en adaptant la syntaxe du bouton de suppression (qui lui fonctionne bien) [(#URL_PAGEpanier,thelia_action=supprimer&thelia_article=THELIA-ARTICLE|ancre_urlpanier)]... et bien on parvient à reproduire l’action.
J’ai 2 autres questions de moindre importance :
a/ Y a t-il une façon simple d’implémenter le message en pop-up qui propose au client de poursuivre ses achats ou bien de basculer vers le panier comme le fait nativement Thelia seul ?
b/ Existe t-il une façon propre de ne pas avoir à s’occuper du stock ? C’est à dire ne pas avoir à préciser une quantité déraisonnable dans le back office Thelia ?
Encore merci pour ce plugin qui, jusqu’ici, me permet de rester dans la sphère SPIP dont je connais bien mieux les plugins :)
J’ai exactement le même problème. Fichier introuvable lorsqu’on utilise les boutons. Aurais-tu une solution ? Merci
Répondre à ce message
Bonsoir,
Je souhaite utiliser le couple SPIP/Thélia.
Configuration :
Je fais un test avec SPIP 3.0.5 [19905] et Thélia V 1.5.3.4.
J’utilise le Plugin Z SPIP V1 et le thème Mercurable.
Dans l’interface SPIP/Thélia, j’ai sélectionné oui pour tous les champs sauf pour l’encodage UTF.
Problème :
Dans Thélia, j’ai créé une rubrique (catégorie de produits) dans laquelle j’ai créé un produit.
Quand j’essaie de prévisualiser la fiche du produit (le lien me renvoit vers : ’ ?fond=produit&ref=NET_TNPDF&id_rubrique=0’.
Du coup, j’obtiens le message suivant :
3 Erreur(s) dans le squelette :
J’ai lu la documentation disponible sur SPIP-Contrib ainsi que les différents forums qui évoquent SPIP/Thélia mais je n’ai rien trouvé qui m’indique :
1- si le plugin disposait de fonds utilisables directement ;
2- si je devais intégrer des boucles précises et à quel endroit les placer ;
3- si des squelettes spécifiques existaient.
Je me sens dépourvu et un peu idiot.
J’espère que je suis clair.
Si, parmi vous, il y a un utilisateur qui peut m’aider, j’en serais ravi.
Cordialement,
Arnaud.
Normalement
c’est là : :
(extrait documentation : : )
Pour zpip, vous devez :
- copier le contenu du répertoire plugin-thelia/squelettes_zpip dans votre répertoire /squelettes
: : donc dans plugin thelia il y as des squelettes adaptés à zpip
si pas de répertoire squelettes , alors il faut le créer à la racine
(répertoire « squelettes » n’est pas « squelettes-dist »)
Amitié
fabien
Je suis sous spip 3 avec, comme le site de démo de spip thelia, le thème zpip Mercurable (que je personnaliserai une fois la partie spip/thelia pleinement opérationnelle).
Tu indiques :
Or, je ne trouve pas ce répertoire plugin-thelia/squelettes_zpip
Si c’est dans les répertoire du plugin thelia, je le trouve pas !
où peut-on le trouver pour spip 3 et le plugin thelia ?
Merci d’avance.
Effectivement il n’y as plus de répertoire plugin-thelia/squelettes_zpip
dans la nouvelle version du plugin thélia (je viens de téléchargé le plug)
mais il y a des pages qui me semble correspondent au squelettes_zpip
dans dossier « head » et dossier « contenue » //// voir contenue du plug zpip /////
( page-adresse.html , page-cheque.html ........... )
il faut copier ces dossier dans un dossier squelettes ...... pour surcharger zpip du contenue de la boutique
amitié
fabien :: : avec quelques fautes !?!
Répondre à ce message
J’ai deja utilisé ce plugin qui est très bien est je n’ai pas eu de problème.
Je suis en train d’installer un spip 3.0.5 sur ma machine avec thelia 1.5.3 et le dernier plugin telecharger ce jour.
Voici le message que j’ai : Warning : Creating default object from empty value in C :\wamp\www\Test\spip\plugins\plugin-thelia\spip_thelia_fonctions.php on line 59 et j’ai en plus une liste de ligne qui me donne plein d’info dont des fonctions.
Là je ne vois pas pourquoi j’ai un soucis.
Olivier
Je me répond à moi meme.
Il semble que cela vienne d’un problème avec le PHP 5.4.3 sur lequel je travaille. En remplacant la ligne 59 par« $_SESSION[’navig’][’lang’] = $sav_session_navig_lang ; »
Celà semble fonctionner.
J’ai également un problème d’appel de la page d’admin, il me faut ajouter spip/admin_XXXXX au lieu uniquement de admin_XXXXX.
Si vous avez d’autres réponses, je suis preneur.
Olivier
Répondre à ce message
bonjour,
j’ai mis à jour thelia et j’ai ce message d’erreur qui s’affiche
Fatal error : Call to a member function total() on a non-object in /home/jcr-editions-fr/public_html/fonctions/substitutions/substitpanier.php on line 26
et pas moyen de savoir d’où ça vient
quelqu’un pourrait il me dire, je patauge totalement
merci d’avance
je ne comprends pas non plus ce qu’il faut utiliser comme squelette avec spip 2.1 ?
bonjour
j’ai posté des questions à plein d’endroits et aucune réponse !! personne n’assure le suivi ??
dernière tentative ?
le plugin est il compatible avec la version 1.5.3 de thélia ??
Salut,
Oui le pugin est compatible avec Thelia 1.5.3.
Pour l’erreur php, il faut passer en php5. Une recherche dans google vous aurait permis de trouver : http://thelia.net/forum/viewtopic.p...
Il est indiqué également de désactiver le plugin « Sauvegarde du panier ».
bonjour,
merci pour votre réponse.
mais j’ai cherché et j’étais passée en php5 mais ça n’avait pas résolu le problème. bon du coup j’ai installé spip 3.0 et ça fonctionne bien
cependant j’ai un souci de redirection après connexion. je reste sur la page connexion comme si je n’étais pas connectée. pourtant je le suis
sauriez vous comment régler ce problème ?
bon j’ai enfin trouvé sur le forum thélia... c’est une galère de trouver une info si on a le malheur de ne pas mettre les bons mots clés... bref
il faut ajouter
redirige(urlfond(« adresse »)) ;
après
ActionsModules::instance()->appel_module(« apresconnexion », $client) ;
MAIS toujours un problème (un peu marre là) de conflit entre thélia et spip . si je suis connectée en espace privé spip, je suis renvoyée sur la page login spip après avoir valider mon panier
je cherche je cherche mais pour l’instant je ne trouve pas....
merci d’avance
oups, la modif est à effectuer dans le fichier fonctions/action.php
(chez moi ligne 129)
alors personne n’a une solution à mon problème ?
Répondre à ce message
Bonjours à tous
voilà ma config SPIP 2.1.2 [16017]
Répertoire : plugin-thelia
Version : 1.4 [43057]
et thelia 1.4.3.1 il me semble
Le site fonctionnait bien spip et thelia
Après mise à jours spip aucun problème (il y as quelques mois) tests effectués accès spip et thélia ok
Et hop depuis quelques jours plus d’accès admi thélia dans spip et en direct via le dos admi... thelia
reste bloqué sur page de login aucun accès ???
Quelqu’un a t il une solution ?
ou quelqu’un a t il eu le même problème ?
Je vais regarder les pages login spip et login plug thelia
merci pour toute aide
fabien
sinon le site public fonctionne je pense j’ai pas tous vérifiés
Salut, si vous êtes hébergés chez 1and1, il y a eu des changements sur les serveurs mutualisés, empêchant les clients de se connecter aux boutiques. Informations et patch
Effectivement je suis hébergés chez 1and1
Sans avoir appliqué le patch thélia , j’ai modifié avec php admin les mots de passe et tous fonctionne..
Encore merci pour le retour et pour le plugin
Amitié
fabien
Répondre à ce message
Cette boucle vous semble correcte ?
Je cherche si il y a eu des modifications de syntaxe ?
J’ai dans mon interface privée bien qu’un seul article associé, par contre en public dans mon squelette article j’ai tout les « produits » qui sortent !? Cette boucle fonctionnait avant... depuis mon passage à Spip 2.1.19 + Thelia 1.5.3.4 + plugin spip/thelia 1.5 j’ai ce drôle de comportement.
Salut,
essaie d’enlever les parenthèses autour de #ID_PRODUIT
car dans thelia (c’est different dans spip) si l’id n’est pas trouvé alors tout ressort.
Répondre à ce message
luc255 a écrit :
J’ai donc rajouté la ligne :
error_reporting( E_ALL ^ E_NOTICE ^ E_DEPRECATED) ;
Sur le fichier « sha256.inc.php »
C’est surement un peu bourrin mais ça marche nickel.
J’ai fait pareil après avoir testé plein de tucs et cela fonctionne c’est donc encore d’actualité les autres moyens pas sur ... dans tous les cas merci.
P.S. J’ai pas accès au php.ini
Répondre à ce message
Hello,
Spip 2.1.19 + Thelia 1.5.3.4 + plugin spip/thelia 1.5
Si j’active le plugin j’ai un tas d’erreurs du genre :
Notice : Undefined offset : 0 in /home1/virtuals/lesite.fr/www/ecrire/auth/sha256.inc.php on line 213
Notice : Undefined offset : 1 in /home1/virtuals/lesite.fr/www/ecrire/auth/sha256.inc.php on line 213
Notice : Undefined offset : 2 in /home1/virtuals/lesite.fr/www/ecrire/auth/sha256.inc.php on line 213
Notice : Undefined offset : 3 in /home1/virtuals/lesite.fr/www/ecrire/auth/sha256.inc.php on line 213
Notice : Undefined offset : 4 in /home1/virtuals/lesite.fr/www/ecrire/auth/sha256.inc.php on line 213
Notice : Undefined offset : 5 in /home1/virtuals/lesite.fr/www/ecrire/auth/sha256.inc.php on line 213
....
Notice : Undefined offset : 14 in /home1/virtuals/lesite.fr/www/ecrire/auth/sha256.inc.php on line 213
Notice : Undefined index : message_ok in /home1/virtuals/lesite.fr/www/plugins/auto/plugin-thelia/formulaires/login.php on line 230
Notice : Undefined index : HTTPS in /home1/virtuals/lesite.fr/www/ecrire/public/assembler.php on line 223
Notice : Constant _terminaison_urls_propres already defined in /home1/virtuals/lesite.fr/www/ecrire/urls/propres.php on line 44
Notice : Undefined index : vars in /home1/virtuals/lesite.fr/www/ecrire/public/composer.php(49) : eval()’d code on line 83
Notice : Undefined index : filtre_compacte_head in /home1/virtuals/lesite.fr/www/ecrire/inc/filtres.php on line 43
Notice : Undefined index : filtre_compacte_head_dist in /home1/virtuals/lesite.fr/www/ecrire/inc/filtres.php on line 43
Notice : Undefined index : compacte_head in /home1/virtuals/lesite.fr/www/ecrire/inc/filtres.php on line 43
....
Et je dois absolument m’enregistrer sans les cookies sinon pas d’accès à SPIP !?
Le SPIP fonctionne seul et le Thelia aussi mais dès que je branche les 2 :-(
Un avis ?
Quelqu’un travaille déjà avec cette combinaison là ?
Merci
Paul
Bonjour, ce ne sont pas des erreurs, mais des « notices » php. Il faut en desactiver l’affichage dans php.ini
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 : |