vente en ligne, ecommerce

Thélia

Pour utiliser les boucles Thélia dans vos squelettes

Une approche basée sur l’utilisation conjointe des deux logiciels SPIP et Thélia pour la réalisation de sites de publication et de vente en ligne

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(" -&gt; ", $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(" -&gt; ", $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

Notes

[1Depuis 2014, Thelia propose une nouvelle version v2 qui n’est plus compatible : vous devez toujours utiliser la version 1.5.4.2 de Thélia, que vous trouverez sur SourceForge..

[2Après l’installation vous n’avez plus besoin de copier le contenu du répertoire template à la racine de votre site

[3En cas de problême sur ce lien de téléchargement voir les sites miroirs

Pour aller plus loin avec le plugin : url-rewriting, association produits Thélia / articles SPIP, multilinguisme... reportez vous à l’article : utilisation avancée du Plugin Thélia.

Discussion

304 discussions

  • 3

    Hey,

    J’avais encore un SPIP 2.0.9 et un thelia 1.4.2 avec le plugin qui lie les 2.

    Voulant faire un UP prudent j’ai donc monté SPIP en 2.1.19 et cela tient la route.

    J’avais un message d’erreur dans l’interface publique si je laissai le plugin activé, j’ai donc désactivé le plugin, mis à jour et réactivé... j’étais en Interface Thélia 1.3 - en test et je suis passé en Interface Thélia 1.5 - stable. Le SPIP fonctionne si le plugin est désactivé ! Sinon page blanche avec message d’erreur ci-dessous

    => Fatal error : Cannot redeclare chemin() (previously declared in /home1/virtuals/monsite.fr/www/ecrire/inc/utils.php:659) in /home1/virtuals/monsite.fr/www/fonctions/divers.php on line 76

    De plus j’ai pas le bouton « catalogue thelia » dans ma barre du haut ....

    J’ai pas encore osé monter le thélia par peur de tout casser ... Une idée ou une aide serait la bienvenue ;-) J’ai peut être merdu :-p ...

    Amitié
    Paulbe

    • Hello,

      J’avance en commentant la fonction chemin() j’ai plus l’erreur, les numéros de ligne sont plus bons d’ailleurs.

      Mais j’ai pas le bouton de gestion du BO de thelia et on dirait que j’ai pas de lien entre les articles de SPIP et les produits de thelia... alors que si je file dans l’admin directement je vois les produits...

      Merci d’avance
      Paulbe

    • Hello,

      Dans le back office de SPIP j’ai bien le lien qui est créé vers mon produit thélia, si je fais SELECT * FROM spip_produits_articles je vois aussi les liens articles produits....

      Dans l’interface publique rien et je vois toujours pas un bouton dans SPIP pour accéder en Admin thélia ?

      Amitié
      Paulbe

    • Hop, je viens de faire un UP de thelia maintenant... vous retrouverez mes péripéties ici => http://thelia.net/forum/viewtopic.php?id=9123

      Donc j’ai maintenant un SPIP 2.1.19, un plugin thelia/spip 1.5 et un thelia 1.5.3.4

      Il me reste encore un problème quand je clique sur le CFG du plugin il me répond => Aucun champs trouvé dans spip_thelia ???

      Je pense que les métas du plugin thelia ne s’y retrouvent plus !
      Je pense aussi qu’il faudrait réinstaller le plugin, faut-il seulement le désactiver puis réactiver, faut-il le désinstaller, ... mais avant de faire une bêtise vous confirmez ou pas ?

      P.S. Le chemin de « admin » est changé puisqu’avant on pouvait laisser « admin » mais maintenant thélia exige de le modifier

      A votre écoute, merci

    Répondre à ce message

  • Il y aurait il un dev du plugin pour m’aider sur un point ?

    mes factures pdf génrées ont des pbs d’accents, et je ne vois pas d’ou ça peut venir

    Répondre à ce message

  • 3
    Haqqtiviste

    vous êtes calme ? restez le en évitant Thelia.

    excusez moi.
    je sais qu’il y en a qui bossent serieusement et bcp, mais là franchement

    • Ce qu’il faut éviter c’est le couple thelia spip qui est lourd à intégrer, thelia et spip pris séparément sont très bien tous les deux.

    • Effectivement, j’ai aussi fait l’erreur d’utiliser ce plugin.

      ce plugin est vraiment une très grosse erreur. si vous devez utiliser Thelia et SPIP faites le séparément. quite à avoir l’impression de perdre à l’intégration des squelettes ça sera toujours mieux que de se mordre les doights sur des conneries, et avoir plein de questions au quel personnes ne réponds.

      moi ce plugin bancale et pas fini m’a dégoûté de SPIP et de Thélia (plus de Thélia quand même)

    • quite à avoir l’impression de perdre à l’intégration des squelettes

      Thelia est quasi aussi souple que SPIP en terme de squelettes, il est possible pour ces deux CMS et depuis les squelettes de :

      -  Faire des boucles qui recherchent des données sur d’autres tables que celles de SPIP et ce, quelque soit la base tant quel est accessible bien sûr.
      -  L’utilisation et la création de filtres personnalisés qui simplifie la vie dans certaines occasion.
      -  Les modèles qui sont un moyen simple d’apporter des fonctionnalités aux utilisateurs depuis l’administration.
      -  Des templates différents selon les rubriques et sous rubriques.

      J’en oublie certainement mais rien qu’avec ça il est tout à faire possible de donner l’impression à un visiteur qu’il n’a pas changé de site.

      Bien sûr on est dans le cas très rare où Thelia ne suffirait pas pour réaliser la partie CMS du site.

    Répondre à ce message

  • Bonjour

    Attention sqlite ne fonctionne pas pour thélia donc ne pas tenter sur spip3 ...

    Répondre à ce message

  • Haqqtiviste

    au point suivant :
    Pour spip 2.0 et Thélia

    de la documentation ci dessus, il y a un bug, on ne comprend pas ce qu’il faut faire.

    merci

    Répondre à ce message

  • Haqqtiviste

    re bonjour

    après le test négatif avec spip 3, j’ai testé en spip 2 (local mamp, php5)
    apparement l’install se passe bien. Après la modif des configs avec cfg, tentative d’aller dans la page admin de thelia : page blanche !!!

    marre, marre...

    Répondre à ce message

  • Haqqtiviste

    bonjour,

    j’ai tout bien fais comme c’est dit.
    il faut dire que la doc est quand même légère.

    spip 3 et thelia dernières version, en local avec wamp PHP Version 5.3.6

    clique sur interface thelia : dossier /admin_moije est introuvable sur le serveur !

    ça fait 2 ans que j’essaie régulièrement de faire fonctionner thelia et spip, franchement ceux qui ont réussi, un grand bravo.

    monter une boutique avec wordpress : 15 minutes.
    avec Spip que j’aime : temps indéfini...

    merci quand même.

    Répondre à ce message

  • 1

    bonjour,

    petit soucis d’install de l’interface Thélia sous SPIP. J’ai réinstallé proprement mais rien... Toujours le
    The requested URL /admin_eEH4voMrVA was not found on this server.

    Je fonctionne sous SPIP3.0.4 et Thélia V1.5.2

    J’ai beau lire le tuto et les interventions rien ne me permet de résoudre le soucis par moi-même.

    Merci pour votre aide :)

    Répondre à ce message

  • 1

    bonjour,
    j’ai testé le plugin thelia en local dans mon site. tout fonctionne sauf que je ne passe pas la saisie du mode de transport quand je valide mon panier. quel est le problème ? que faut il faire ?
    cordialement
    ouanou29

    • bonjour,
      je me réponds à moi même.
      après quelques recherches et certaines modifications j’ai réussi à associer spip et thelia.
      d’abords j’ai installé un deuxième thelia dans un sous répertoire comme proposé plus tôt. puis j’ai crée un inc-thelia-menu pour faire apparaitre le panier et la connexion au compte sous spip. j’ai modifier les template de thelia pour qu’il ressemble à spip. finalement j’ai modifier les fonctions connexion et déconnexion dans action de thelia, le php connexion de thelia et j’ai cree un html de redirection pour que cela retourne au site spip quand on se connecte et se déconnecte via le inc-thelia-spip. si vous voulez de plus amples renseignements je passe régulièrement sur cette contrib.

    Répondre à ce message

  • Bonjour,

    Sur une install de SPIP Thélia 1.5.1 sur un PIP 2.1.15

    l’adresse ecrire/ ?exec=spip_thelia me retourne « Fichier spip_thelia introuvable »

    alors que ecrire/ ?exec=cfg&cfg=spip_thelia me retourne bien la page de config

    est-ce que c’est problématique pour la suite ?

    merci
    dd

    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 :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom