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

  • Une amélioration pour compatibilité avec le plugin bandeau en partie privée : http://www.spip-contrib.net/Bandeau...

    Répondre à ce message

  • 41
    Philippe

    Le passage en 2.1.1 est source de message d’erreurs lorsque qu’un administrateur essaye se connecter.
    Impossible, et une liste de lignes du type

    Notice : Undefined offset : 2 in /home/xxxcom/ecrire/auth/sha256.inc.php on line 207

    • Bonjour,

      Personnellement, ce problème s’est résolu en changeant de version PHP : version 5.2 -> version 5.3.

      Je n’en connais pas l’origine.

      Fred

    • Philippe

      Mince, mince, mince je suis en 5.2.3.

      Merci pour l’info

    • Bonjour,

      Je rencontre exactement le problème décrit plus haut avec un SPIP 2.1.1 ( liste de lignes du type « Notice : Undefined offset... ».
      Pourtant j’ai changé ma version xampp (PHP 5.3.1 et mysql 5.1.41).
      Un fois déconnecté, impossible de revenir en partie privée

      Il doit y avoir autre chose comme problème..

      Franck

    • Pardon, petit rectificatif :

      Je suis en SPIP 2.1.2

      Franck

    • @franckGre quelque part cela me rassure

      Normalement demain je dois y jeter un oeil, va falloir trouver une solution, maintenant ça urge

    • Bonsoir Philippe,

      Alors, avez vous trouvé une solution concernant le problème de connexion dans la partie privée ?
      Revenir à une version antérieure de SPIP permet-il de l’éviter ?
      Je dois proposer une solution sous 2 semaines, et du coup suis très intéressé de savoir si le plugin SPIP-Thélia fonctionne.

      Si quelqu’un a une réponse..
      Merci,

      Franck

    • Sincèrement je ne sais pas trop.

      J’ai supprimé le plugin, mis les fichiers du répertoire ecrire/auth de la version 2.10, puis remis le plugin, puis remis les fichiers de ecrire/auth de la 2.1.2, réactiver le tout, et cela ne fonctionnait pas.
      Le lendemain sur un autre ordi, et chez une autre personne cela fonctionnait !!!
      Je n’ose plus y toucher

    • Bonjour,

      J’ai fais une modif du plugin dernièrement pour corriger ce problème : il y avait un conflit entre les sessions spip d’admin et les session spip/thélia de client.
      Le pb intervient quand on est connecté en admin dans spip.

      Lorsque le pb survient, il faut vider les cookies de session dans le navigateur.

    • Merci Arnaud pour ces précisions

    • @Arnault

      Bonjour Arnault,

      En lisant ton post (conflit entre les sessions SPIP et Thélia), doit on comprendre que le problème est résolu dans une dernière version du plugin, ou qu’il faut encore éventuellement aller supprimer les cookies ?
      Si cela ne me pose pas de problème pour un site perso, j’imagine moins la manip sur un site ou il faudrait que l’utilisateur vide ses cookies.

      En tout cas, merci pour ce plugin et pour la réponse

    • @ Arnault Arghh, ça ne fonctionne plus.
      Peux tu expliquer « Lorsque le pb survient, il faut vider les cookies de session dans le navigateur »

      J’ai testé en ayant aucun cookie, et cela ne fonctionne pas...

    • Bonjour à tous,

      Bravo pour ce plugin il est très utile.
      Je suis en pleine installation et j’ai le même problème que vous.
      SPIP : 2.1.2
      plugin-THELIA : 1.4
      thelia : 1.4.3.1
      une fois le plugin thelia activé il m’est impossible de me reloger en admin même si je vide les cookies.
      Avez-vous trouvé une solution à ce problème ?
      Damien

    • Bonjour à tous,

      SPIP : 2.1.2 // plugin-THELIA : 1.4 // thelia : 1.4.3.1

      PHP Version 5.2.13 // MySql 5.3

      Je rencontre le même problème mais avec plus de messages d’erreur en revanche. Pour avoir installé l’ensemble ce jour, tout s’est bien passé jusqu’à ce que je décoche une des cases du plugin thelia via CFG lors de mes tests, celle qui indique « liaison unique spip / thélia » (je n’ai pas retenu la définition exacte...) et je me suis automatiquement fait éjecté de l’admin... mais euh ! :(

      Quelle idée d’avoir décoché cette case me direz-vous : bah oui mais quand on teste, on teste... ça me refroidit juste un peu pour la mise en production alors que Thélia + SPIP me semble une excellente idée = un grand bravo / merci au passage, et j’aimerais bien continuer à pousser la chansonnette ! :)

      Depuis, impossible de se loguer sur l’admin avec le même message d’erreur signalé - plus d’autres :

      Notice : Undefined offset : 0 in / ... /ecrire/auth/sha256.inc.php on line 207

      Notice : Undefined index : message_ok in / ... /plugins/plugin-thelia/formulaires/login.php on line 230 et 66

      Notice : Constant _terminaison_urls_propres already defined in/ ... /ecrire/urls/propres.php on line 44
      Notice : Undefined index : vars in/ ... /ecrire/public/composer.php(49) : eval()’d code on line 83
      Notice : Undefined index : filtre_compacte_head in / ... /ecrire/inc/filtres.php on line 43
      Notice : Undefined index : filtre_compacte_head_dist in/ ... /ecrire/inc/filtres.php on line 43
      Notice : Undefined index : compacte_head in / ... /ecrire/inc/filtres.php on line 43

      Les conseils précités ne fonctionnent malheureusement pas (même depuis un autre poste ;) et comme je tourne en rond avec mes connaissances limitées en php, je me tourne vers vous .

      Merci d’avance,

      Raphaël

    • Bonjour,

      Rectification config : mysql 5.0

      Pour avoir tout réinstallé ’from scratch’ sur un nouvel hébergement, et avec les seuls plugins dédiés à la gestion de Thelia sous SPIP, je me retrouve au final avec strictement les mêmes messages qu’énoncés précédemment.

      La seule différence par rapport à hier est que l’accès à SPIP est devenu impossible à partir de l’instant où j’ai demandé à regarder une fiche produit en ligne depuis le catalogue thélia, donc via le plugin. J’ai obtenu un message d’erreur « Fatal error : Call to a member function poids() on a non-object in \fonctions\substitutions\substitpanier.php on line 116 ». J’ai effectivement renseigné le poids sur la fiche du produit. La fiche est devenue accessible en vidant les cookies - comme cela est conseillé sur le forum.thelia.fr - mais c’est à partir de ce moment là que l’accès à l’admin de spip est devenu impossible.

      La boutique seule - elle - fonctionne correctement.

      Faut-il revenir à une version antérieure de SPIP ou un correctif est-il envisagé ?

      Merci d’avance,

      Raphaël

    • Dernière tentative pour ma part : reparti d’un spip ’vide’ avec squelettes par défaut.

      Installation Thélia => ok
      Installation CFG => ok
      Installation + configuration du plugin thelia => ok

      Je me logue sur thélia => ok
      Je me délogue de Thélia => ok

      Je me délogue de SPIP + reconnexion = Messages d’erreurs identiques...

    • Bonjour,

      La solution suivante n’est pas à mon sens des plus optimales mais l’ajout du code suivant dans le inc_version.php m’a permis de pouvoir accéder de nouveau à l’admin de SPIP :

      ini_set(’display_errors’, 0) ;

    • Même chose pour moi.

      J’avais eu le problème en local mais j’avais réussi à le faire disparaitre.

      Mais je viens d’installer sur le serveur, et là catastrophe, j’ai le bug. Et je n’arrive plus à me connecter à mon espace privé.

      J’ai essayé la méthode de Raphaël mais cela ne donne rien.

      J’ai essayé avec deux navigateurs différents : idem.

      Quelqu’un a t’il trouvé comment débloquer en attendant un correctif ?

    • Bruno,

      As-tu bien vidé le cache + cookies de ton navigateur ? Je suppose que oui mais on ne sait jamais... ;) Je suppose également que tu utilises les mêmes versions de Spip + plugins + Thélia.

      As-tu obtenu les mêmes messages d’erreur que ceux précédemment indiqués, lorsque tu essayes de te loguer, ou d’autres ?

      Je ferai ce que je peux pour aider (à la hauteur de mes capacités) en attendant un signe de la communauté.

    • Bonjour Raphael

      OUI, les mêmes messages d’erreur :
      -  Notice : Undefined offset : 13 in /home/www/client/www/monsite/ecrire/auth/sha256.inc.php on line 207
      -  Notice : Undefined index : message_ok in /home/www/client/www/monsite/plugins/auto/plugin-thelia/formulaires/login.php on line 230
      -  otice : Undefined index : cs_outils in /home/www/client/www/monsite/plugins/auto/couteau_suisse/cout_lancement.php on line 242
      -  Notice : Undefined index : cs_outils in /home/www/client/www/monsite/tmp/couteau-suisse/mes_outils.php on line 3
      -  Notice : Undefined index : message_ok in /home/www/client/www/monsite/plugins/auto/plugin-thelia/formulaires/login.php on line 230
      -  Notice : Undefined index : redirect in /home/www/client/www/monsite/plugins/auto/plugin-thelia/formulaires/login.php on line 66

      Ensuite, il m’indique :
      problème de cookie
      Pour vous identifier de façon sûre sur ce site, vous devez accepter les cookies.
      Veuillez régler votre navigateur pour qu’il les accepte (au moins pour ce site).

      Alors que les cookies sont autorisés.

      J’ai bien vidé le cache, et tout l’historique.
      J’ai le problème sur plusieurs PC, différents navigateurs, comme si c’est quelque chose qui bloque sur le serveur.

      Je ne sais pas quoi faire.
      Je recherche une solution pour me débloquer.
      Un répertoire à effacer ?

    • C’est bizarre. J’ai commencé mon développement avec le plugin THELIA il y a un peu plus d’un mois, et je n’ai rencontré ce problème en local (easyphp) qu’une seule fois. J’ai réussi à le faire disparaitre en supprimant les cookies et le cache.

      Là, je viens d’installer le plugin en distant (serveur) et le bug est apparu quasiment immédiatement. Impossible de me connecter à mon espace privé depuis plusieurs jours.

      Mais le plus bizarre, c’est que depuis, je n’arrive plus à me connecter en local non plus.
      L’effacement du cache et des cookies n’y font rien.

      Je suis coincé et cela devient catastrophique pour mon activité.

      Un message de la part des créateurs du plugin aiderait à me rassurer.

    • Bonjour,

      Pour pouvoir rentrer de nouveau dans l’espace privé, j’ai renommé tous les noms des répertoires dans le répertoire plugins. Ensuite je réactive les plugins 1 à 1.
      Mais le problème revient dès que je me délogue et me logue de nouveau

      Damien

    • Pour masquer les erreurs du type « Notice : Undefined index... » il faut ajouter cette ligne dans un fichier htaccess :

      php_value display_errors off

      Ou régler la configuration dans le fichier php.ini :

      display_errors = off

    • Une différence importante entre l’exécution en distant et local :
      A un moment donné, j’ai un lien « vous est enregistré... par ici ».
      Une page s’affiche alors indiquant une erreur avec les cookies.

      Mais grosse différence :
      -  en local, j’ai un lien supplémentaire qui me permet de me connecter avec une méthode moins sécurisé. Et cela me permet de rentrer dans l’espace privé et de continuer de travailler.
      -  en distant, je n’ai pas ce message et je suis bloqué.

    • Comment fait-on pour forcer l’identification SANS cookie ?

      PS : cette méthode me permets de rentrer dans l’espace privé, sur mon site installé en local.
      Par contre, cette option ne m’est pas proposée en distant. Je voudrais la forcer.

    • EUREKA !

      J’ai renommé le répertoire plugin
      puis le répertoire /tmp/cache

      et j’ai réussi à rentrer dans l’espace privé.

      Puis j’ai remis le bon nom de répertoire plugin.
      J’ai réactivé les plugins un par un sauf plugin-thelia.
      OK

      Puis j’ai réactivé spip-thelia. Et cela marche.

      Mais à mon avis, à la prochaine demande de connexion (expiration du cookie), je suis bon pour tout recommencer.

      Bon cela ne résoud pas le probème du plugin thelia mais cela permet de retourner dans l’espace privé.

    • même probleme avec une install fraiche ....

    • idem avec une autre install sur spip 2.1.1 rofl

    • Bonjour à tous,

      De retour dans la boucle...

      Jfefe => L’ajout de « php_value display_errors off » dans les réglages personnalisés du fichier .htaccess (racine du site) aboutit à une 500 internal server error : j’ai raté quelque chose ? L’ajout du ini_set(’display_errors’, 0) ; dans le inc_version.php fonctionne pour ma part très bien.

      Nonobstant le temps nécessaire et les difficultés liées aux corrections et développements, pensez-vous qu’un correctif du plugin verra prochainement le jour ?

      A défaut et dans l’intervalle, pouvez-vous nous indiquer quelle version de SPIP il faut utiliser pour avoir un peu plus de stabilité ?

      Dans l’attente d’une réponse, bon courage à tous et merci - malgré tout. ;)

      Raphaël

    • J’ajoute un nouveau défaut : l’activation du plugin thelia modifie l’interface d’administration de SPIP, de manière gênante. En effet, je n’ai plus accès aux rubriques situées à la racine en activant le plugin et l’affichage des rubriques est cassé - cf image jointe.

      Un rapport avec les erreurs notice précédemment indiquées et masquées ?

    • je n’avais pas lu la solution proposée sur l’article sur l’utilisation avancée du plugin.

      Au temps pour moi et merci JulienC

    • Je ne peux pas mettre en ligne ma boutique (deux mois de développement) car cela empêche mes abonnés de se connecter aux sites.

      Toujours pas de réponses de la part des créateurs de ce plugin, sur ce bug qui a maintenant 3 mois.
      Cela devient angoissant.

      Je suis prêt à donner de mon temps pour faire avancer ce plugin. J’ai qq connaissances en PHP mais je n’y connais rien en authentification spip.

    • Salut, Il y a eu plusieurs problèmes évoqués, lequel est bloquant pour la livraison de ton site ?

    • Bonjour Arnault

      Je suis soulagé et heureux de te lire.

      C’est le problème d’authentification : si j’active le plugin, les admins/rédacteurs/visiteurs inscrits ne peuvent plus se connecter. Il y a plusieurs dizaines de messages « Notice : Undefined index... » qui s’affichent.

      Le message final, sur la page d’authentification, indique qu’il y a un problème de cookie.
      Mais la suppression des cookies et des sessions n’y font rien. Quelque soit le navigateur et l’ordinateur que j’utilise. C’est qq chose qui coince au niveau serveur, dans les pages du cache je pense.

      Je ne peux plus, en tant qu’admin, me connecter à l’espace privé.
      Les articles réservés à mes membres inscrits, deviennent inaccessibles.

      Pour tout faire rentrer dans l’ordre, je dois désactiver le plugin thelia en renommant par FTP le répertoire du plugin, puis je dois effacer le cache, toujours par FTP.
      Et là, j’ai de nouveau accès à l’espace privé, mais ma boutique n’est plus active.
      Si je réactive ma boutique, le bug réapparait.

      MERCI pour ton aide

    • peux tu m’envoyer en mp un lien vers le site et un accès à écrire (en admin) que je regarde ?

      pour le pb de redirection, c’est souvent un pb lié à un plugin ou au fichier mes_options.php qui contient des espaces après ?>

      il faut désactiver l’affichage des notices php au niveau de ton hébergement

      quels plugins sont installés, as-tu toujours le pb si seul le plugin thélia est activé ?

      je ne comprends pas lorsque tu dis que tu que tu ne vois pas certains articles dans l’espace privé.... page blanche ? pb d’affichage ? ou ils ne sont pas visibles du tout dans la hierarchie ?

      il y a le plugin accès restreint ?

      je n’ai jamais rencontré les pb évoqués, toutefois il faut bien avoir en tête que l’authentification unique spip/thélia est une fonctionnalité « expérimentale » et indiquée comme telle dans le panneau cfg du plugin.

    • J’ai désactivé tous les plugins.
      Mais j’ai laissé SPIP-CFG indispensable à thelia-spip, et BONUX indispensable à mon squelette.
      Et le bug apparait quand-même.

      Tant que l’on ne se connecte pas avec un compte thelia, cela marche.
      Mais si on se connecte thelia, puis que l’on se connecte en tant que spip, cela bug.

      OUI, j’utilise acces-restreint.
      Cela me permet de présenter des articles réservés à certains membres.
      Et ce sont ces membres qui n’arrivent plus à se connecter.

      Je n’ai pas dis que je ne voyais pas certains articles dans l’espace privé. Mais que les membres n’ont pas à accès à certains articles en espace restreint. Puisqu’ils n’arrivent pas à s’authentifier.

      La désactivation des messages ne règlera pas le problème de fond. c.a.d l’impossibilité de se connecter en spip.

      L’authentification unique n’était pas sélectionnée. Alors je l’ai activé pour voir. Mais c’est pareil.

      Je te passe un login admin en mp

    • Bonjour,

      j’ai exactement le même problème que Raphael et Bruno
      Tout fonctionnait bien en local mais une fois en ligne, impossible, une fois déconnecter , de se re-connecter

      Voici les messages d’erreurs (les mêmes que Raphael) :

      Notice : Undefined offset : 0 in / ... /ecrire/auth/sha256.inc.php on line 207

      Notice : Undefined index : message_ok in / ... /plugins/plugin-thelia/formulaires/login.php on line 230
      Notice : Undefined index : vars in/ ... /ecrire/public/composer.php(49) : eval()’d code on line 83
      Notice : Undefined index : filtre_compacte_head in / ... /ecrire/inc/filtres.php on line 43
      Notice : Undefined index : filtre_compacte_head_dist in/ ... /ecrire/inc/filtres.php on line 43
      Notice : Undefined index : compacte_head in / ... /ecrire/inc/filtres.php on line 43

      Notice : Undefined index : message_ok in / ... /plugins/plugin-thelia/formulaires/login.php on line 230 et 66

      J’ai essayé les solutions proposées en vidant a chaque fois cache et cookies :
      -  chez moi aussi l’ajout d’un httaccess me donne « 500 internal server error »
      -  j’ai ajouté ini_set(’display_errors’, 0) ; dans le inc_version.php, mais ça ne change rien, les erreurs apparaissent toujours (a moins que je ne le mette pas au bon endroit dans le fichier)
      -  renommer le /tmp/cache ne change rien non plus

      et enfin si je renomme le dossier du plugin thelia j’obtiens ces 2 erreurs :
      Warning : include_once(/.../plugins/plugin-thelia/formulaires/login.php) [function.include-once] : failed to open stream : No such file or directory in /.../ecrire/inc/utils.php on line 678

      Warning : include_once() [function.include] : Failed opening ’/.../plugins/plugin-thelia/formulaires/login.php’ for inclusion (include_path=’. :/usr/local/lib64/php’) in /.../ecrire/inc/utils.php on line 678

      Existe t’il une autre astuce qui permettrait de solutionner ce problème ?
      Merci d’avance pour votre aide
      Simon

    • Arnaud a eu la gentillesse de regarder de plus près directement sur mon site.

      Après avoir suivi plusieurs pistes, voici le résultat (pas de conclusion pour le moment) :

      Il semble que ces problèmes proviennent du .htaccess

      Arnaud m’a mis un .htaccess qui fonctionne pour mon site. OUF !

      Par contre en local avec EASYPHP, ce .htaccess provoque le bug. Impossible d’accéder à l’espace privé.

      Par contre en local avec EASYPHP, ce .htaccess provoque le bug. Impossible d’accéder à l’espace privé.

      Si vous êtes dans cette situation bloquante, voici la procédure à suivre dans l’ordre :
      1. Renommer le répertoire du plugin thelia. Par exemple : \plugins\auto\BAKplugin-thelia
      2. Renommer le cache. Par exemple en \tmp\BAKcache
      3. Vous pouvez enfin vous connecter dans l’espace privé
      4. Vous pouvez réactiver THELIA.
      Dans mon cas, le bug ré-apparait dés que je me reconnecte.

    • Salut,

      pour les pb de connexion en administrateur, il y a peut être un soucis avec spip2.1.2, si vous n’utilisez pas l’authentification unique spip/thélia, essayez alors de supprimer le fichier plugin-thelia/formulaires/login.php

      je vais faire des essais également de mon côté

    • Bonjour,

      Merci beaucoup pour vos réponses
      les 2 solutions fonctionnent mais celle d’Arnaud à l’avantage de ne pas re-créer le bug après une déconnexion
      En tout cas, merci et bravo pour ce plugin, qui, a part ce petit désagrément, est vraiment pratique et plutôt facile a comprendre et à utiliser
      En espérant qu’il se développe encore pour résoudre les petits soucis d’ajouts de plugins Thelia et de boucle conditionnelle, pour devenir complet.
      C’est du bon boulot et surtout merci pour votre réactivité à répondre et aider les gens dans le besoin !^^

    • Bonjour à toutes & tous,
      Cela fait plaisir de voir des avancées : merci Arnaud / Bruno.
      Arnaud : Si ce n’est pas trop ’tôt’, serait-il possible de nous apporter des précisions sur les éventuelles corrections à apporter au .htaccess car pour ma part seul l’ajout du ini_set(’display_errors’, 0) ; permet de faire disparaître les notices php, et je ne suis pas encore sur le serveur de production. Peut-être faut-il revenir à un SPIP 2.1.0 en attendant de nouvelles introspections ? ;)
      Merci d’avance

    • Il suffisait de scroller vers le bas... au temps pour moi & merci Bruno.

    Répondre à ce message

  • Bon, je n’arrive pas à transférer mon .htaccess en une seule partie.
    Si le post est trop long , je n’ai pas le bouton de confirmation d’envoi
    Je n’arrive pas à transférer la fin du fichier.

    Comment fait-on ?

    Répondre à ce message

  • PART 4/5

    # Les rubriques
    RewriteRule ^-[^/\.]+- ?(\.html) ?$ spip.php ?page=rubrique [QSA,E=url_propre :$0,L]

    # les auteurs
    RewriteRule ^_[^/\.]+_ ?(\.html) ?$ spip.php ?page=auteur [QSA,E=url_propre :$0,L]

    # Les sites
    RewriteRule ^@[^/\.]+@ ?(\.html) ?$ spip.php ?page=site [QSA,E=url_propre :$0,L]

    # Les articles (en dernier car expression plus « large »)
    RewriteRule ^[^/\.]+(\.html) ?$ spip.php ?page=article [QSA,E=url_propre :$0,L]

    # Fin URLs « propres » et « propres2 »
    ###

    Répondre à ce message

  • PART 3/4

    ###
    # Compatibilite avec les URLS « html » (pour transition sympa)
    # voir fichier ecrire/urls/html.php3
    RewriteRule rubrique([0-9]+)\.html$ spip.php ?page=rubrique&id_rubrique=$1 [QSA,L]
    RewriteRule article([0-9]+)\.html$ spip.php ?page=article&id_article=$1 [QSA,L]
    RewriteRule breve([0-9]+)\.html$ spip.php ?page=breve&id_breve=$1 [QSA,L]
    RewriteRule mot([0-9]+)\.html$ spip.php ?page=mot&id_mot=$1 [QSA,L]
    RewriteRule auteur([0-9]+)\.html$ spip.php ?page=auteur&id_auteur=$1 [QSA,L]
    RewriteRule site([0-9]+)\.html$ spip.php ?page=site&id_syndic=$1 [QSA,L]
    # Compatibilite avec les anciennes URLS appelant directement des fichiers php
    RewriteRule ^(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|resume|sommaire|sommaire_texte)\.php3 ?$ spip.php ?page=$1 [QSA,L]
    RewriteRule ^page.php[3] ? spip.php [QSA,L]
    RewriteRule ^spip_cal\.php3 ?$ spip.php ?action=ical [QSA,L]
    RewriteRule ^spip_rss\.php3 ?$ spip.php ?action=rss [QSA,L]
    # Fin compatibilite
    ###

    ###
    # URLs « propres » et « propres2 »
    # pensez a regler $type_urls=’propres’ ou ’propres2’
    # dans ecrire/mes_options.php
    # (fichier associe : ecrire/urls/propres.php)

    # Les mots-cles
    RewriteRule ^+-[^/\.]+(-+) ?(\.html) ?$ spip.php ?page=mot [QSA,E=url_propre :$0,L]

    # Les breves
    RewriteRule ^+[^/\.]++ ?(\.html) ?$ spip.php ?page=breve [QSA,E=url_propre :$0,L]

    Répondre à ce message

  • Utilisation du plugin filtresup

    J’ai installé le plugin thelia filtresup.
    Apparemment, les filtres que ce plugin ajoute ne sont pas interprétés par le plugin thelia-spip.
    J’ai la mauvaise intuition que c’est normal ?
    Quelqu’un peut-il confirmer ?

    Répondre à ce message

  • 3

    Bonjour,
    Je souhaite ajouter Thélia à mes sites spip qui sont mutualisés (avec le plugin mutualisation). Hors je ne souhaite pas extraire les fichiers Thélia directement dans le répertoire racine de Spip pour des raisons de maintenance et de mises à jour.

    Est-il possible d’avoir un dossier Thélia dans la racine du site SPIP ?

    Cela simplifierais grandement l’opération.

    Répondre à ce message

  • 4

    Boucle conditionnelle ne fonctionne pas

    Par exemple :

              <T_caract>
    		début
              <THELIA_caract type="CARACVAL" produit="THELIA-ID" caracteristique="2">
                THELIA-VALEUR
              </THELIA_caract>
              </T_caract>
    		valeur par défaut
              <//T_caract>

    « début » n’est jamais affiché, même si un enregistrement a été trouvé dans la boucle.
    et « valeur par défaut » est toujours affiché, que des enregistrements aient été trouvé ou pas.

    • Suite de mon post...

      J’ai toujours le problème. Mais ce type de boucle conditionnelle semble fonctionner à d’autres endroits.

      Cette boucle est incluse dans un squelette SPIP, lui-même inclu à plusieurs reprises dans un autre squelette avec un [(#INCLURE)].
      J’imagine que SPIP va d’abord résoudre les squelettes inclus puis les inclure dans la page appelante. Donc je vais me retrouver avec plusieurs boucles dans la même page ?
      Du coup, je me demande comment THELIA s’en sort avec toutes ces boucles portant le même nom ?

      Un expert peut il confirmer ?

      Y’a t’il un moyen de voir le code généré par SPIP avant exécution du moteur SPIP ?

    • Lorsqu’il y a plusieurs boucles Thélia portant le même nom, il faut les suffixer avec une variable SPIP, qui dans ton cas pourrait être passée en paramètre des tes INCLURE et bien sur différente pour chaque appel.

      ensuite dans ton inclure, tu peux avoir des boucles du genre :

      <THELIA_maboucle#ENV{variable} type="PRODUIT">
      ...
      </THELIA_maboucle#ENV{variable}>
    • Bonjour et Merci Arnaud

      C’est ce que j’ai fait mais cela n’a pas résolu le problème initial, à savoir la boucle conditionnelle qui ne fonctionne pas.

    • J’ai fait :

      <T_c#ENV{id_produit}>
      <THELIA_c#ENV{id_produit} type="CARACVAL" produit="THELIA-ID" caracteristique="2">
      	THELIA-VALEUR
      </THELIA_c#ENV{id_produit}>
      </T_c#ENV{id_produit}>
      <//T_c#ENV{id_produit}>

      Et j’obtiens le message d’erreur.
      La boucle c11 n’est pas fermée correctement !

      Une idée Arnaud ?

    Répondre à ce message

  • 3

    Problème avec substitution :

    Les substitutions ne fonctionne pas.
    Dans la boucle toute simple suivante, THELIA-RUBRIQUE_NOM renvoie vide.

        	<THELIA_rub type="RUBRIQUE" parent="0">
            rub=THELIA-RUBRIQUE_NOM
            <br>
        	</THELIA_rub>
    • dans la boucle rubrique il faut utiliser THELIA-TITRE

    • Bonjour ARNAUD

      Oui, je sais. C’était juste pour donner un exemple simple.
      Il reste que dans un autre cas, la substitution THELIA-RUBRIQUE_NOM me serait très utile.

      En effet, si on imbrique une boucle PRODUIT à l’intérieur d’une boucle RUBRIQUE, mais qu’à l’intérieur de la boucle PRODUIT, on veut afficher le titre de la rubrique, je ne vois pas autre chose que THELIA-RUBRIQUE_NOM.
      Car si on utilise THELIA-TITRE, on aura le titre du produit et non celui de la rubrique.

      Les substitutions fonctionnent-elles sous SPIP-THELIA ?

    • Si THELIA-RUBRIQUE_NOM ne fonctionne pas, vous pouvez trouver une alternative avec THELIA-TITRE en insérant une nouvelle boucle RUBRIQUE dans votre boucle PRODUIT pour retrouver le nom de la rubrique parent

    Répondre à ce message

  • 1

    OK j’ai compris pour le SET et GET.

    Mais pour les deux 1er problèmes ?

    • de ce que je vois (imbrication en exemple de boucles thélia) c’est la pb évoqué.
      quels sont les 2 premiers problèmes ?

    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