Utilisation avancée du plugin Thélia

Associer des produits aux articles, url-rewriting et multilinguisme

Le plugin Thélia permet l’utilisation conjointe de SPIP et Thélia pour des sites mixtes : de publication et de vente en ligne.

Associer un produit thélia à un article

Il y a désormais [1] une interface dans l’espace privé pour pouvoir associer un/des produits à une rubrique ou un article. Cette interface s’active dans le panneau de configuration cfg du plugin.

Dans les squelettes, on peut utiliser 4 nouvelles boucles :
-  PRODUITS_ARTICLES : produits Thélia associés aux articles SPIP
-  RUBRIQUESTHELIA_ARTICLES : rubriques Thélia associées aux articles SPIP
-  PRODUITS_RUBRIQUES : produits Thélia associés à des rubriques SPIP
-  RUBRIQUESTHELIA_RUBRIQUES : rubriques Thélia associées à des rubriques SPIP

exemple pour afficher les produits associés à une rubrique :

<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
   #TITRE
   #TEXTE..etc

   <B_produitsassocies>
       produits associés : 
       <ul>
       <BOUCLE_produitsassocies(PRODUITS_RUBRIQUES){id_rubrique}>
              [ <THELIA_produit#ID_PRODUIT type="PRODUIT" id="(#ID_PRODUIT)">
                <li> <a href="#URL_PAGE{produit,ref=THELIA-REF}">THELIA-TITRE</a> </li>
               </THELIA_produit#ID_PRODUIT>]
       </BOUCLE_produitsassocies>
       </ul>
   </B_produitsassocies>
       pas de produit associé
   <//B_produitsassocies>

</BOUCLE_rubrique>

Associer un article et un produit peut-être utile si par exemple vous avez des fiches de produits sur le site sous forme d’articles SPIP (ce qui permet de bénéficier des atouts de SPIP pour l’édition du contenu, les images, les forums...), et que vous souhaitiez insérer un lien automatique vers l’ajout au panier pour certaines d’entre elles.

C’est un système souple qui peut être utilisé pour d’autres fonctions, par exemple associer une rubrique SPIP à une rubrique dans Thélia. Ainsi lorsque la rubrique SPIP est affichée, on peut proposer dans un encart les produits de la rubrique Thélia associée...

Url rewriting

Pour utiliser la réecriture d’adresse coté Thélia, il faut ajouter dans le .htaccess le code suivant (à l’endroit où se trouvent les rewriterules) :

#RUBRIQUE ############## 
RewriteRule ^([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)_([a-z0-9-]*)_\.html spip.php?page=rubrique_thelia&id_rubrique=$2 [NC,QSA,L] 
RewriteRule ^([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)_\.html spip.php?page=rubrique_thelia&id_rubrique=$2 [NC,QSA,L] 
RewriteRule ^([a-z0-9-]*)_([0-9]*)_\.html spip.php?page=rubrique_thelia&id_rubrique=$2 [NC,QSA,L] 

#PRODUIT ############# 
RewriteRule ^([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)_([a-z0-9-]*)__([^.]*)\.html spip.php?page=produit&ref=$5&id_rubrique=$2 [NC,QSA,L] 
RewriteRule ^([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)__([^.]*)\.html spip.php?page=produit&ref=$4&id_rubrique=$2 [NC,QSA,L] 
RewriteRule ^([a-z0-9-]*)_([0-9]*)__([^.]*)\.html spip.php?page=produit&ref=$3&id_rubrique=$2 [NC,QSA,L] 
#FIN THELIA

Ensuite, dans les squelettes (inc-rubriques.html, rubrique_thelia.html, produit.html..etc..) remplacer les URL spip vers des rubriques ou des produits par la balise THELIA-REWRITEURL.

par exemple, dans rubrique_thelia.html ligne 48 et 54 :
#URL_PAGE{produit,ref=THELIA-REF&id_rubrique=THELIA-RUBRIQUE_ID}

devient :
THELIA-REWRITEURL

Régler les conflits sur la classe smtp

On rencontre parfois un conflit sur la class Smtp, utilisée par Thélia, mais aussi par certains plugins SPIP, dont « envoyer à un ami » et « spip-lettres ».

Vous pouvez mettre en commentaire dans fonctions/moteur.php la ligne 58, qui contient l’appel à Smtp.class.php :

//include_once("classes/Smtp.class.php");

Multilinguisme

SPIP et Thélia utilisent tous les deux la variable lang dans l’url, mais les valeurs attendues ne sont pas les mêmes. Dans SPIP, lang prend pour valeur deux caractères, alors que dans thélia, lang prend pour valeur un nombre.

Par défaut, il n’y a que trois langues dans Thélia, les autres langues se rajoutent manuellement au besoin dans la table lang.
-  le français : 1
-  l’anglais : 2
-  l’espagnol : 3

Il est donc important de faire une correspondance entre le nommage de SPIP et le nommage de Thélia. Le plugin est paramétré correctement pour les 3 langues par défaut de Thélia, mais si vous êtes amenés à en ajouter d’autres, il est alors nécessaire de personnaliser les correspondances.

-  dans ce cas, modifiez le fichier spip_thelia_fonc.php, ligne 94 :

switch($_REQUEST['lang']) {
		case 'fr' : $_REQUEST['lang'] = 1; break;
		case 'en' : $_REQUEST['lang'] = 2; break;
		case 'es' : $_REQUEST['lang'] = 3; break;
		default: $_REQUEST['lang'] = 1; break;
	}

Utiliser le plugin commentaires de Thélia

Il existe un plugin dans Thélia qui permet d’ajouter des commentaires sur les produits http://contrib.thelia.fr/spip.php?a....

Si vous souhaitez l’utiliser sur votre site spip-thélia, il faut modifier le fichier Commentaires.class.php (ligne 102) et remplacer :

if(isset($_POST['action']) && $_POST['action'] == "ajcommentaire"){

par

if(isset($_POST['thelia_action']) && $_POST['thelia_action'] == "ajcommentaire"){

Voici un exemple d’intégration dans le squelette produit.html

<h2>commentaires sur ce produit</h2> 
<T_comment> 
<ul> 
<THELIA_comment type="COMMENTAIRES" ref="THELIA-PRODUIT_REF">   
     <li>Message de THELIA-NOM : THELIA-MESSAGE <br /> 
           THELIA-HEURE THELIA-DATE </li> 
</THELIA_comment> 
</ul> 
</T_comment> 
<//T_comment> 
<br class="nettoyeur" /> 
<form action="#URL_PAGE{produit,ref=THELIA-REF}" method="post"> 
    <input type="hidden" name="thelia_action" value="ajcommentaire" /> 
    <input type="hidden" name="commentaire_ref" value="THELIA-REF" /> 
    Nom : <input type="text" name="commentaire_nom" /><br /> 
    Message : <input type="text" name="commentaire_message" /><br /> 
    <input type="submit" value="OK" />
</form>

Vendre des produits virtuels

Si vous utilisez le plugin produits virtuels de Thélia http://contrib.thelia.fr/spip.php?a..., remplacez dans Prodvirtuel.class.php ligne 244 : action=prodvirtueldl par
thelia_action=prodvirtueldl

Notes

[1à partir de la version 1.2 du plugin

Discussion

39 discussions

  • 3

    SPIP Mutualisé + THELIA

    Bonjour

    J’utilise le plugin spip-thelia sur un de mes sites.
    J’ai plusieurs sites et je voudrais mutualiser.

    Est-il possible d’utiliser THELIA dans un SPIP mutualisé ?

    • Je me réponds...

      OUI c’est possible. Il faut glisser les répertoires THELIA (admin_xxx, fonctions, clients, etc.) à la racine de spip mutualisé, au même niveau que ecrire, squelette, etc.

      Ou alors, créer des liens symboliques dans le répertoire spip pointant vers ces répertoires.

      Ca marche mais avec une seule boutique.

      Si on a plusieurs THELIA, on va avoir le problème du partage du répertoire « client ».
      A mon avis, il faut passer par une modif du plugin mutualisation qui ferait une redirection vers le répertoire \spip\sites\lesite\client

      Pour l’admin_xxx, AMHA pas de problèmes car il peut y avoir autant de répertoire admin_xxx que de boutique.

      Si qqun a déjà fait la manip, je suis preneur.

    • Bonjour

      Le sujet est toujours à l’ordre du jour : comment mutualiser à la fois SPIP et THELIA ?

      Je ne suis même pas sûr qu’il existe une solution de mutualisation pour THELIA seule ?

      Enfin, c’est juste un petit UP au cas où quelqu’un aurait trouvé une solution depuis mon dernier message il y a 1 an et demi.

    • Salut Bruno,

      il y a désormais une méthode décrite ici :
      http://contrib.spip.net/Mutualisation-SPIP-THELIA?lang=fr

    Répondre à ce message

  • 2

    Changement du format url dans THELIA 1.5

    J’ai migré sous THELIA 1.5.1 et je constate que les urls ont changé de format.
    Du coup, l’url rewriting ne fonctionne plus => erreur 404

    Il y a bien la solution de changer l’url à l’ancien format, directement dans la fiche produit
    mais je préférais une compatibilité dans l’ancien et le nouveau format.

    Que faut-il modifier dans le .htaccess ?

    • J’ai l’impression que THELIA 1.5 possède désormais son propre système de gestion d’url et qu’il n’est pas compatible avec SPIP ?

      J’ai essayé d’ajouter une ligne dans le .htaccess mais on ne sait plus faire la distinction entre une url de rubrique et une url de produit, elles ont le même format.
      Il faut accéder à la table reecriture dans la base thelia pour connaitre le n° de rubrique et le id produit.
      Je pense que cela n’est pas compatible avec la gestion d’url de spip ?

      Quelqu’un peut-il me confirmer ?

    • Alesk\o_

      Bonujour,
      vous avez trouvez une solution ??? de mon coté rien y fait.

    Répondre à ce message

  • 8

    Bonjour !

    J’ai fouillé le forum, mais je n’ai pas trouvé de réponse à mon souci.
    Désolé pour le dérangement si je suis passé à côté.

    Je souhaite associer une rubrique SPIP à une rubrique Thélia. J’ai configuré le plugin en conséquence. Le souci se manifeste à l’affichage de la rubrique SPIP dans l’administration SPIP :
    -  quand ma rubrique SPIP ne contient que des articles, tout va bien, l’interface est conforme ;
    -  quand ma rubrique SPIP contient au moins une sous-rubrique SPIP, j’ai un cadre qui masque une grande partie des informations de l’interface (cf. pj). Il semble que ce soit le cadre de la première sous-rubrique SPIP qui s’étale.

    Ma configuration :
    -  XAMPP 5.2 / Win XP
    -  SPIP 2.0.10
    -  Thelia 1.4.2.1

    Merci d’avance et bonne année à tous !
    Julien C

    • Bonjour,

      j’ai le même problème. Existe-t-il une solution pour rectifier l’affichage des rubriques ?

    • Bonjour,

      Pour ma part, je n’ai pas eu le temps de fouiller plus en profondeur le problème pour le corriger, mais j’ai trouvé une solution court terme.

      Comme mon client n’avait pas besoin de modifier ces associations de rubriques, j’ai simplement :
      -  activé la fonctionnalité d’association rubrique<->rubrique du plugin ;
      -  réalisé les associations ;
      -  désactivé la fonctionnalité d’association rubrique<->rubrique du plugin.

      Ainsi, l’interface retrouve son aspect normal, et comme les associations restent écrites en base et que les boucles ne sont pas désactivées (seul l’affichage permettant de réaliser les associations disparait du back-office), j’ai pu ensuite réaliser normalement les traitements attendus dans les squelettes.

      Je reste preneur d’une solution :)

      Cordialement,
      Julien

    • Le problème c’est qu’avec ce bug nous n’avons plus accès à la modification des rubriques et donc des associations spip et thelia dès que nous les activons.

      Il n’est plus possible de modifier les rubriques spip ni leurs contenus.

    • Petite précision supplémentaire concernant le bug :
      ceci ne se passe que pour les rubriques à la racine du site et leurs sous-rubriques.
      Les sous sous-rubriques ne sont pas concernées par ce bug et il est possible de les affiliées à des rubriques Thelia !

    • il me semble que ce bug est lié à google map avec Plugin Gis escoitar ...

      fabien

    • Alexandre

      Rien à voir, j’ai eu le problème sans avoir installé le plugin gis.
      Je l’ai eu sur une 2.1.8 avec cfg , couteau-suisse , spip_bonux et biensûr thelia_spip d’installé.

    • Renée Picard

      paniersdici.com a aussi ce problème et c’est bien tannant !

    • Chez moi, la désactivation de SEO résout le problème

    Répondre à ce message

  • 4

    installation Thelia 1-4.3.1 sous SPIP 2.18
    bonjour à tous,
    j’ai un site sous spip 2.18 qui fonctionne. Après avoir essayé d’installer THELIA 1.4.3.1 j’obtiens ce message d’erreur :

    Notice : Undefined offset : 14 in /mnt/132/sdd/e/c/cuirdeluxe/ecrire/auth/sha256.inc.php on line 207

    Notice : Undefined index : message_ok in /mnt/132/sdd/e/c/cuirdeluxe/plugins/plugin-thelia/formulaires/login.php on line 230

    Notice : Undefined index : vars in /mnt/132/sdd/e/c/cuirdeluxe/ecrire/public/composer.php(49) : eval()’d code on line 83

    Notice : Undefined index : filtre_compacte_head in /mnt/132/sdd/e/c/cuirdeluxe/ecrire/inc/filtres.php on line 43

    Notice : Undefined index : filtre_compacte_head_dist in /mnt/132/sdd/e/c/cuirdeluxe/ecrire/inc/filtres.php on line 43

    Notice : Undefined index : compacte_head in /mnt/132/sdd/e/c/cuirdeluxe/ecrire/inc/filtres.php on line 43

    quelqu’un a t il déjà rencontré ce problème ?

    bonne journée

    • Bonjour Eric,

      As-tu solutionné ton problème ? J’ai la même erreur.

    • bonsoir Stef,
      je n’ai toujours pas solutionné mon problème. J’ai adopté JOOMLA. Ca permet de faire les mêmes choses que SPIP (même en y rajoutant des modules pour faire de l’E-commerce) sauf qu’il n’y a aucun bug ni fichier à modifier manuellement.
      C’est un vrai plaisir, je te le conseille vivement

      désolé pour les Spipmans

    • Arnault

      Désactivez l affichage des notices php dans votre php.ini

    • Ou plus simplement renommer le répertoire suivant :

      plugins/plugin-thelia/formulaires/

    Répondre à ce message

  • 1

    Les voyelles accentuées (et la lettre qui les accompagne immédiatement) saisies lors de la création du compte par le client ne sont pas prises en compte

    Bonjour,

    Ma boutique Spip-Thelia (qui tournait bien depuis un an) a un gros problème dont je viens de m’apercevoir, par une mise à jour que j’ai faite il y a un mois (Spip_2.0.10>2.1.10, Thelia_1.4.3.1>1.5.0 et Spip-Thelia_1.4>1.4.2) :

    Je pense qu’il s’agit d’une régression car le problème se pose aussi sur le site de démo de Spip-Thelia(Spip 2.1.12, Thelia 1.5.1 et Spip-Thelia 1.4.2) : http://plugin-thelia.openstudio.fr/

    De quoi s’agit-il ?

    Les voyelles accentuées saisies lors de la création d’un compte du processus de commande(1) ne sont pas pris en compte, AINSI que le caractère qui les suit immédiatement.

    Par exemple la personne qui saisira « Bérangère FÉRIÈRE 14 rue de la Baïsse 93800 ÉPINAY-SUR-SEINE » deviendra pour la boutique « Bange FIE 14 rue de la Base 93800 INAY-SUR-SEINE ».

    La correction de cette erreur par l’intéressé est impossible puisque la page "Modifier mes informations"(2) présente le même dysfonctionnement.

    À noter que la correction de l’adresse du client fonctionne à partir du backoffice de Thelia (ce qui laisse à penser que le soucis vient du plugin Spip-Thelia), mais comme ce backoffice ne permet pas la modification d’adresses des commandes, le problème reste entier pour ces dernières.

    Qu’en pensez-vous ?
    Une solution ?

    Merci d’avance pour vos idées et bonne journée à toutes et à tous

    Marc

    (1) ex : à la page http://plugin-thelia.openstudio.fr/spip.php?page=connexion
    (2) http://plugin-thelia.openstudio.fr/spip.php?page=compte_modifier

    • Je vous propose de répondre sur la page http://www.spip-contrib.net/Thelia où j’ai posté après coup le même message, car cette dernière semble davantage lue.
      Toutes mes excuses au gentil webmestre pour la suppression nécessaire du message ci-dessus :)
      Bonne journée
      Marc

    Répondre à ce message

  • Problème affichage association Espace privé :

    J’utilise SPIP et THELIA depuis un an, et ça fonctionne.

    Aujourd’hui, j’ai activé la fonction d’association des produits aux articles.
    J’ai bien un menu supplémentaire « PRODUITS ASSOCIÉS À L’ARTICLE » dans la page d’édition des articles, mais ce menu n’affiche pas correctement les produits.
    J’ai :

    #TITRE
    #TITRE [+]

    Comment régler ce problème ? MERCI

    Répondre à ce message

  • Alain BOURDEAU

    Bonjour,
    Avec le plugin thelia 1.4 [40278] qui marchait bien pour les liens de téléchargement pour les abonnements de fichiers .pdf, ne marche plus depuis une mise à jour indispensable du plugin cfg 1.16 [45207] ?

    En sélectionnant le lien envoyé on arrive sur la page d’accueil du site et le téléchargement ne se fait plus ? (même pour des anciens liens qui avaient très bien marchés.

    Merci pour votre aide.

    Répondre à ce message

  • nicofrand

    Lorsque dans ma boutique je clique sur « Voir la rubrique en ligne », je suis dirigé vers « rubrique.php ?id_rubrique=x » alors qu’il faudrait au moins « spip.php ?page=rubrique_thelia&id_rubrique_thelia=x ».

    Pour mon cas je vais utiliser htaccess pour transformer « rubrique.php ?id_rubrique=x » en « spip.php ?page=rubrique_thelia&id_rubrique_thelia=x » mais de manière générale si on a choisi la méthode « standard » de spip pour l’url_rewriting, ça posera problème...

    Répondre à ce message

  • 2

    Bonjour,

    un petit souci de langue. Je réussi à internationaliser tout dans mon site Thelia sous spip SAUF le TITRE, le CHAPO et la DESCRIPTION des articles à vendre. Je passe pourant la variable de langue qui a de l’effet pour tout le reste de la page.

    Une idée ?

    • Arnault

      C est le contenu de thelia qui n est pas traduit, quelques pistes :

      -  $forcer_lang=true ; dans mes options.php
      -  la traduction a été faite dans le backoffice de thelia ?
      -  la correspondance de langue entre thelia et spip est elle
      définie dans spip_thelia_fonc.php ?

    • Salut Arnault,

      Merci de ta réponse. Malheureusement la réponse est oui aux trois questions et j’ai toujours le même résultat.

    Répondre à ce message

  • 2

    Bonjour,
    J’essaye de faire fonctionner le plugin produits virtuels de Thélia avec le plugin Thélia de SPIP. J’ai remplacé dans Prodvirtuel.class.php ligne 244 : action=prodvirtueldl par thelia_action=prodvirtueldl comme vous le signalez dans votre billet. Le client reçoit bien le message avec le lien pour télécharger le document, sauf que le lien pointe sur la page d’accueil du site et non sur le document.
    J’ai regardé dans tous les sens mais je n’arrive pas à comprendre ce qui ne va pas.
    Auriez-vous une idée sur ce problème ?
    Bien cordialement

    • Bonjour,

      J’ai réussi à cibler la raison du dysfonctionnement, il suffit que j’enlève mon squelette sommaire.html du répertoire des squelettes pour que tout fonctionne. Bizarre, mais ça marche !

    • Bonjour,
      J’essaye de faire marcher ce plugin avec spip aussi.
      Je n’ai pas trouvé où il est dit qu’il faut changer la ligne 244 de Prodvirtuel.class.php.
      Il est vrai que ça fonctionne en faisant ces deux manips mais comment fais-tu avec spip avec un squelette sans sommaire.html ?

    Répondre à ce message

  • 3
    alain bourdeau

    Bonjour,
    Je test la fonction : identification unique spip - thélia mais ça ne ’marche pas’ !

    1er faut-il s’identifier dans spip ou dans thélia ?

    2em faut-il créer le nouveau ’client’ dans thélia ou dans spip ?

    3em une fois identifié, dans quelle(s) variable(s) disponible(s) sur l’ensemble de la session peut-on récupérer l’identité -id- ou email du client en cours de session.

    Merci bien.

    • Alain BOURDEAU

      Bonjour,
      Début de réponses :
      1er et 2em Tout est à faire dans thélia et cela crée un visiteur dans spip. La session dans spip n’est pas ’renseignée’ donc pas ’disponible’.

      3em par exemple :

      	<THELIA SI CONNECTE>
      		<li>Bonjour<b> THELIA-CLIENT_PRENOM THELIA-CLIENT_NOM</b></li>
      		<li><a href="#URL_PAGE{moncompte}"><:spipthelia:mon_compte:></a></li>
      		<li><a href="#URL_PAGE{sommaire, thelia_action=deconnexion}"><:spipthelia:se_deconnecter:></a></li>
      #SESSION_SET{pour_voir, THELIA-CLIENT_ID}
      	</THELIA SI CONNECTE>

      met à disposition la valeur de CLIENT_ID (thélia) dans la variable de session - pour_voir - par la balise : #SESSION{pour_voir} qui est disponible dans spip, pour ce ’client’ et sa session.

      Nouvelle question :

      Quelle syntaxe pour inclure cette valeur dans une boucle du type :

      <BOUCLE_le_client(thelia:PRODABONNEMENT){client = #SESSION{pour_voir}>
      -ici ce que je veut voir -
      </BOUCLE_le_client>

      Cette écriture de marche pas !!

      Mais si je remplace client = #SESSION{pour_voir} par : client = 1234, j’ai bien alors l’enregistrement des commandes de PRODABONNEMENT passées par le client_id 1234.

      merci pour une réponse. Alain

    • Alain BOURDEAU

      Suite de la question :

      Dans la boucle THELIA SI CONNECTE, si je mets #SESSION_SET{pour_voir, 1234} j’ai en suite un fonctionnement convenable de la boucle ARTICLES. C’est donc un problème de chronologie de traitement qui ne fourni pas la bonne information à #SESSION_SET{}.

      Que faire ? Merci

    • Alain BOURDEAU

      Bonjour,

      Je fait évoluer ma demande : Serait-il possible de modifier le point d’entrée dans SPIP pour le plugin ? Actuellement <nom>affichage_final</non>.

      Si le point d’entrée est avant la fin de SPIP alors les variables produites par THELIA seraient disponibles pour SPIP.

      Si oui quel point d’entrée ?

      Merci bien

    Répondre à ce message

  • 2

    URL rewriting : problème avec les accents

    Les urls des rubriques ou produits contenant des accents dans le titre ne fonctionnent pas.
    Les accents sont remplacés par un caractère bizarre (typique d’un problème de charset).

    Et cela le fait que le codage utf-8 soit activé ou pas dans la config du plugin.

    Pourtant, si je vais dans le BO THELIA, l’url indiquée est correcte, c.a.d que les accents sont bien supprimés.
    Mais la balise THELIA-REWRITEURL semble ne pas supprimer les caractères accentués.

    • Je n’ai toujours pas résolu ce problème.

      Je continue de penser qu’il s’agit d’un problème d’interprétation du charset des données en provenance de thelia par le plugin spip-thelia.

      HELP

    • J’ai trouvé une solution. Un peu bourrin mais cela marche et en attendant mieux...
      L’inconvénient de cette solution est qu’il faut modifier un source de THELIA.

      Le problème vient du fait que la fonction qui rewrite les url n’est pas conçue pour du UTF-8.

      -  il faut convertir le fichier /fonctions/divers.php en UTF-8
      Attention, cette opération vous fait péter tous les accents en les remplaçant par des caractères bizarre (un ? dans un losange). Il faut donc re-saisir tous les accents à la main.
      Pour cela, j’ai ouvert ce fichier dans un autre éditeur avant conversion, puis j’ai fait du copier-coller.
      ATTENTION, il y a plusieurs endroits dans le fichier. Regardez bien en comparant au fichier AVANT conversion.

      -  ensuite, dans ce même fichier, il faut modifier la fonction ereg_caracspec vers la ligne 325 :

      	// remplacement des caractères spéciaux + accents
      	function ereg_caracspec($chaine){
      		
        	// Modif BC
        	//$avant = "àáâãäåòóôõöøèéêëçìíîïùúûüÿñÁÂÀÅÃÄÇÉÊÈËÓÔÒØÕÖÚÛÙÜ:;,°";  
        	//$apres = "aaaaaaooooooeeeeciiiiuuuuynaaaaaaceeeeoooooouuuu----"; 
        	//$chaine = strtolower($chaine);
       		//$chaine = strtr($chaine, $avant, $apres);
      
      		$chaine = mb_strtolower($chaine, 'UTF-8');
        	$chaine = str_replace(
      			array('à','á','â','ã','ä','å','ì','í','î','ï','ò','ó','ô','õ','ö','ø',
      'ù','ú','û','ü','è','é','ê','ë','ç','ÿ','ñ','Á','Â','À','Å','Ã','Ä','Ç','É','Ê','È','Ë','Ó','Ô','Ò','Ø','Õ','Ö','Ú','Û','Ù','Ü',':',';',',','°'),
      			array('a','a','a','a','a','a','i','i','i','i','o','o','o','o','o','o',
      'u','u','u','u','e','e','e','e','c','y','n','A','A','A','A','A','A','C','E','E','E','E','O','O','O','O','O','O','U','U','U','U','-','-','-','-'),
       			$chaine); 		
      		// Fin modif

    Répondre à ce message

  • 1

    URL Rewriting

    Je donne l’info pour y avoir passé un bon moment avant de trouver.

    Le code htaccess mentionné plus haut est à placer avant le :

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

    C’était écrit dans mon htaccess mais je ne l’avais pas vu immédiatement

    • De plus, dans le code htaccess mentionné plus haut, il faut remplacer « id_rubrique » par « id_rubrique_thelia ».

      Ce qui devient :

      # Rewriting URL THELIA
      #RUBRIQUE ##############
      RewriteRule ^([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)_([a-z0-9-]*)_\.html spip.php?page=rubrique_thelia&id_rubrique_thelia=$2 [NC,QSA,L]
      RewriteRule ^([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)_\.html spip.php?page=rubrique_thelia&id_rubrique_thelia=$2 [NC,QSA,L]
      RewriteRule ^([a-z0-9-]*)_([0-9]*)_\.html spip.php?page=rubrique_thelia&id_rubrique_thelia=$2 [NC,QSA,L]
      
      #PRODUIT #############
      RewriteRule ^([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)_([a-z0-9-]*)__([^.]*)\.html spip.php?page=produit&ref=$5&id_rubrique_thelia=$2 [NC,QSA,L]
      RewriteRule ^([a-z0-9-]*)_([0-9]*)_([a-z0-9-]*)__([^.]*)\.html spip.php?page=produit&ref=$4&id_rubrique_thelia=$2 [NC,QSA,L]
      RewriteRule ^([a-z0-9-]*)_([0-9]*)__([^.]*)\.html spip.php?page=produit&ref=$3&id_rubrique_thelia=$2 [NC,QSA,L]
      #FIN THELIA

    Répondre à ce message

  • 1

    Bonjour, bravo pour tous les efforts déployés par la communauté des utilisateurs de SPIP en général, et aux développeurs du plugin Thelia en particulier !

    J’ai une petit question concernant le formulaire d’inscription des nouveaux clients dans la base Thelia, les fichiers plugin-thelia/inc/inc-connexion.html et plugin-thelia/inc/inc-formulerr.html semblent communiquer de manière incomplète, ou alors ma configuration à des lacunes :

    Le processus de vérification fonctionne, en ce sens qu’il renvoie bien vers la page d’erreur en cas de soumission incomplètes du formulaire, mais la page formulerr ne récupère pas les infos valides précédemment rentrées...! Quelqu’un voit-il d’où ça peut venir ?
    Bonne journée à tous...

    • Pierbou

      Je me répond à moi-même...
      Le fichier /plugins/plugin-thelia/inc/inc-formulerr.html peut-être personnalisé pour afficher les valeurs de retour, ce qui n’est pas le cas par defaut... Du côté de la ligne 33, on peut donc ajouter value=« THELIA-NOM » à la balise INPUT du champs Nom. Si cette valeur existe et est correctement interprêtée, elle pré-remplira le champs concerné dans le formulaire d’erreur de saisie, allègeant d’autant la tâche de correction...

      Sur ce principe, chaque champs INPUT obligatoire peut ainsi être potentiellement récupéré pour éviter d’avoir à retaper l’ensemble d’un formulaire parce qu’on a oublié de déclaré la son prénom !...

      <:spipthelia:nom :> THELIA-NOM
      <:spipthelia:prenom :> THELIA-PRENOM
      <:spipthelia:adresse :> THELIA-ADRESSE1
      <:spipthelia:code_postal :> THELIA-CPOSTAL
      <:spipthelia:ville :> THELIA-VILLE
      <:spipthelia:telephone_fixe :> THELIA-TELFIXE
      <:spipthelia:email :> THELIA-EMAIL
      <:spipthelia:confirmation_email :> THELIA-EMAIL

    Répondre à ce message

  • 5

    Bonjour,

    Je cherche à mettre en place l’identification unique, sans succès :

    -  SPIP 2.0.10 avec inscription ouverte aux rédacteurs, activation de l’identification unique via CFG, fonction chemin mise en commentaire
    -  Thélia 1.4.2.1
    -  Interface Thélia 1.4 (récupéré via SVN) avec les fichiers de pb_htaccess à la racine de SPIP

    Ais-je oublié une étape ?

    L’identification unique nécessite-t-elle une version supérieure de spip (bêta 2.1) ?

    L’enregistrement des clients/auteurs s’effectuent t-elle simultanément dans les deux bases ?

    Une solution de SSO (type CAS) serait-elle envisageable afin de mutualiser les auteurs/clients ?

    D’autres pistes ?

    Merci d’avance pour votre aide, vos idées...

    Pierre-Jean

    • Pour complément, j’ai l’erreur suivante sur ma page de connexion :

      spip.php ?page=connexion

      Cette page Web présente une boucle de redirection.

      The webpage at http://www.mondomaine.fr/spip.php?page=connexion has resulted in too many redirects. Clearing your cookies for this site or allowing third-party cookies may fix the problem. If not, it is possibly a server configuration issue and not a problem with your computer.

    • salut,

      je viens de faire un correctif a ce sujet, le commit sera inclus dans le prochain zip du plugin (d’ici une heure ou 2)

      dans /auth/thelia.php

      juste avant :

      $n = sql_insertq('spip_auteurs', array(
      						'source' => 'thelia',
      						'nom' => $nom,
      						'login' => $login,
      						'email' => $email,
      						'bio' => $bio,
      						'statut' => $statut,
      						'pass' => ''),0);

      rajouter :

      mysql_select_db($spip_db);

      pour le pb de redirection c’est un conflit entre le compte d’admin spip et thélia, tu peux vider les cookies de session pour remettre tout à zéro. je vais creuser la question

      ++ arnault

    • je précise que les clients doivent s’identifier avec son email comme identifiant

    • Merci beaucoup pour cette réponse, et pour le commit !

      Je teste ces deux choses ce soir, et je fais un retour sur le forum.

      Si je peux être utile à quelque chose, il ne faut pas hésiter. J’aimerais pouvoir aider à mon niveau notre petite communauté...

      Encore merci, à très bientôt !

      Pierre-Jean

    • Bonsoir à tous et merci à toute l’équipe

      De mon coté lorsque j’active l’identification unique, j’ai un bug sur l’ensemble des pages de l’espace publique... La page home est redirigé vers /index.php ?page=adresse et firefox bloque avec le message cette page est redirigée.....

      Y a t il une personne qui a rencontré ce problème ? si oui une idée de solution ?...

      Pas si simple ce plugin mais je m’acharne....

    Répondre à ce message

  • Bonjour concernant le rewriting d’URL de thelia dans spip comme dit ci-dessus.
    Je n’ai pas de problème avec le fait de mettre le code dans le .htacces. Par contre

    Ensuite, dans les squelettes (inc-rubriques.html, rubrique_thelia.html, produit.html..etc..) remplacer les URL spip vers des rubriques ou des produits par la balise THELIA-REWRITEURL.

    par exemple, dans rubrique_thelia.html ligne 48 et 54 : #URL_PAGEproduit,ref=THELIA-REF&id_rubrique=THELIA-RUBRIQUE_ID

    devient : THELIA-REWRITEURL

    je ne comprends tout.
    Faut-il réellement remplacer : #URL_PAGEproduit,ref=THELIA-REF&id_rubrique=THELIA-RUBRIQUE_ID par THELIA-REWRITEURL ?
    J’ai fait le test sur le fichier dans rubrique_thelia.html mais ça ne fonctionne pas.
    Est-ce exactement cette modif qu’il faut faire ?
    Merci

    Répondre à ce message

  • Laurent

    Avecproduit virtuel, et j’ai le même problème que Daniel (page 3).
    J’ai bien modifier Prodvirtuel.class.php

    Mon lien de téléchargement me renvoie toujours sur la page d’accueil du site.
    Avez-vous trouvez une solution à ce problème ?

    Merci

    Répondre à ce message

  • 10
    Marc VALLETEAU de MOULLIAC

    Bonjour, je commence à utiliser avec un grand bonheur ce plugin avec un spip 208[13982], merci mille fois à ses auteurs ...

    Dans ma découverte, une surprise, cependant : mes bases spip sont toujours encodées en utf-8, ce qui n’est pas le cas de Thelia. Alors, par exemple, dans la listes des pays qui s’affichent à la création d’un nouveau compte-client, tous les caractères accentués sont mal-fichus ... Comment résoudre ce problème ? A la vérification, en effet, tous les champs texte de la base Thelia sont en latin1_swedish_ci ...

    Merci de me donner une astuce ...

    Marc

    • chubaka

      Bonjour J’ai le même souci avec la liste déroulante des pays ;
      As-tu résolu ton souci ?
      merci

    • Marc VALLETEAU de MOULLIAC

      Oui, effectivement, j’avais envoyé ma solution sur la liste de spip ... et oublié de la mettre ici, désolé ... et, de plus, je dois dire que j’ai trouvé ce correctif grâce à un autre contributeur de spip, dont j’ai oublié le nom, qu’il m’en excuse, et en soit remercié grandement ...

      Voici donc la solution, que j’ai appliquée et qui a tout remis dans l’ordre. Il faut aller dans plugins/plugin-thelia-dev/spip_thelia_fonct.php, et mettre en commentaires (mettre deux slash en début de chaque ligne) trois lignes que je mets ci-dessous :

      ligne71
      //$_REQUEST[$clef]=unicode2charset(charset2unicode($valeur, &#8217;utf-8&#8217;),&#8217;iso-8859-1&#8217;) ;

      ligne139
      //$res = unicode2charset(charset2unicode($res, &#8217;utf-8&#8217;),&#8217;iso-8859-1&#8217;) ;

      ligne152
      //$texte = unicode2charset(charset2unicode($texte, &#8217;iso-8859-1&#8217;),&#8217;utf-8&#8217;) ;

      Voilà ... Apparemment, ne sont en cause ni sql ni php ...

    • Bonsoir
      J’ai aussi des problemes d’encodage de caractère, j’ai utilisé la solution proposé mais le probléme revient de maniere aleatoire
      je suis en spip 2.0.10 et thelia 1.4.2.1 il y a t il d’autre piste merci

    • sur la nouvelle version de thelia et du plugin thelia
      l’envoi de mail semble ne pas fonctionner
      smtp.class a été remplacé par mail aussi

      une solution ?

    • Autre problématique, il est impossible de modifier ou d’éditer une seconde adresse de livraison une fois celle ci saisie ...

    • Certes la solution proposée de mettre en commentaire des lignes dans spip_thelia_fonct.php resouds des probleme d’encodage (Nom et adresse client, pays, modalité de paiement, mais elle créée chez moi de nouveaux problème :

      Sous spip, la description du produit grâce au modèle « produit.html » dans un article comporte maintenant des problèmes d’accent. Paradoxe : le chapeau est le titre sont bien codés ! Ces erreurs se retrouvent aussi au niveau de la description des produits dans la boutique.

      Qui a une solution qui fonctionne totalement ? Ou qui sait pourquoi j’ai ce problème.

      Merci de votre aide

      Laurent

    • Bonjour à tous,
      J’ai le même souci. La solution proposée permet de résoudre les problèmes d’accent pour le titre, mais elle ajoute un nouveau problème d’accent dans le champ description.
      Avez-vous trouvé une réponse à ce problème ?
      Merci pour votre aide !

    • bjousse

      j’avais trouvé ca sur un forum et ca marche bien :

      dans cnx.class.php

      mysql_query(« SET CHARACTER SET ’latin1’ ») ;

      avant le
      return self: :$db_handle ;

    • bonjour et merci cela résout effectivement ce pb

    • Problème récurrent d’encodage des caractères latins :

      Les solutions données :

      -  écrire « include_spip( »inc/charsets« ) ; » au début de spip_thelia_fonc.php (juste en dessous de

      <?php).
      
      - commenter les lignes 71, 139 et 152 du fichier /www/plugins/auto/plugin-thelia-dev/spip_thelia_fonct.php
      
      71 // $_REQUEST[$clef]=unicode2charset(charset2unicode($valeur, ’utf-8’),’iso-8859-1’) ;
      
      139 // $res = unicode2charset(charset2unicode($res, ’utf-8’),’iso-8859-1’) ;
      
      152 // $texte = unicode2charset(charset2unicode($texte, ’iso-8859-1’),’utf-8’) ;
      
      - écrire dans cnx.class.php "mysql_query("SET CHARACTER SET ’latin1’") ;" avant le return self ::$db_handle ;
      
      Résultats :
      
      La dernière solution donne quelque chose quelque temps et ensuite le problème revient de façon incompréhensible.
      
      Versions : spip 2.0 - thelia 1.4.3.1 - plugin spip-thelia 1.4

    Répondre à ce message

  • 2

    Bonjour,
    Utilisant Spip Listes , j’ai effectivement une erreur sur la page en question.
    La voici : « Fatal error : Cannot redeclare class PHPMailer in D :\wamp\www\projets\codim\spip\lib\phpMailer\class.phpmailer.php on line 35 »
    J’ai cherché dans fonctions/moteur.php mais je n’ai pas la ligne suivante (citée ci-dessus) à la ligne 58 :
    « include_once( »classes/Smtp.class.php« ) ; »
    La mise en commentaire de la ligne qui pourrait être équivalente, à savoir « include_once( »classes/Mail.class.php« ) ; » n’enlève pas le bug.
    J’utilise Spip 2.0 et Thelia 1.4.3.
    Quelqu’un aurait-il une solution ?
    Merci d’avance,
    Webbud

    • Malheureusement, SPIP-Listes n’utilise pas le répertoire lib comme thelia.
      Il faut donc changer le lien vers class.phpmailer en ligne 11 de spiplistes_mail.inc.php
      par : include_spip(’../../lib/phpMailer/class.phpmailer’) ;
      avec spip-listes dans le répertoire auto.

    • Merci bien pour la soluce, je garde en note ! ... entretemps j’avais retiré mes squelettes persos du répertoire squelettes et les ai placé dans le répertoire par défaut squelettes-dist... et le problème a disparu. Enchantement ?

    Répondre à ce message

  • Alain BOURDEAU

    Bonjour,
    Une boucle spip_thelia de type : prodabonnement_commande ne produit rien.

    type de boucle :

    	<THELIA SI CONNECTE>
    <THELIA_lesclt type="CLIENT" id="THELIA-CLIENT_ID">
    THELIA-CLIENT_NOM <br />
    <THELIA_lesprod type="PRODABONNEMENT_COMMANDE" client="THELIA-CLIENT_ID">
    la commande THELIA-DEBUT = THELIA-ID
    </THELIA_lesprod>
    </THELIA_lesclt>

    Une erreur de syntaxe ou faut-il créer une fonction boucleprodabonnement_commande pour que ça marche.
    Merci Alain

    Répondre à ce message

  • 4
    Daniel Creton

    Bonjour et bravo pour ce plugin tout à fait fantastique !

    Cependant j’ai un ennui avec le plugin associé produitvirtuel.

    En local à la première installation , tout a très bien fonctionné. Puis le serveur c’est mis à tourner en boucle. J’ai supprimé les cookies et depuis le lien reçu genre .?thelia_action=prodvirtueldl&token=KFJAS4F2622I90R465DUG7A5ADA18F me renvoie sur la page d’accueil et non sur le téléchargement comme autrefois. Je n’ai rien touché d’autres

    Tout me semble bien propre au niveau de la bdd j’ai bien les bons ID pour les bons codes etc..

    Auriez vous une idée sur cette panne ?

    Cordialement

    • bavo pour ce plugin
      tout semble fonctionner correctement pour moi à une exception
      il m’est impossible de selectionner un pays lors de l’inscription de l’utilisateur
      une idée ?

      spip 2.0.10/plug-thelia-dev/thelia 1.4.2.1

    • désolé mais j’ai auusi le meme probleme avec les quantités

    • Bonjour,

      J’utilise le plugin produit virtuel, et j’ai le même problème que Daniel (page 3).
      Pour info j’ai bien modifier Prodvirtuel.class.php (
       ?thelia_action=prodvirtueldl&token=JY0APC5318GWBYBN5W83H0U7G8FKF)
      Mon lien de téléchargement me renvoie toujours sur la page d’accueil du site.
      Avez-vous trouvez une solution à ce problème ?

      Merci

      J.

    • Je rencontre le même problème avec spip 2.0.10.

      Une solution ?

    Répondre à ce message

  • Bonjour à tous,

    J’ai développé un site SPIP / THELIA et depuis peu je rencontre des problèmes pour afficher la balise THELIA-RUBRIQUE_NOM qui récupère le titre de la rubrique THELIA.
    Vous pouvez voir une démo ici : http://www.outils-jardin-bio.com/spip.php?page=rubrique_thelia&id_rubrique_thelia=1
    Le titre de la rubrique doit apparaitre dans le titre de la fenetre, ainsi que dans le contenu (au-dessus des pointillés) : Fourche à bécher
    Merci pour votre aide !

    PS : j’ai aussi un gros souci d’encodage pour afficher les produits Thelia. Pour le moment, je n’ai pas trouvé d’autres solutions que d’écrire sans accent !

    Répondre à ce message

  • Bonjour,
    Le débit d’un compte prépayé lors de l’achat d’un produit virtuel n’envoit pas au client le lien de téléchargement.
    Par contre lorsque l’on modifie dans le Back Office le statut de « prépayé » en « payé » le lien est envoyé.
    Comment faire pour que le statut prépayé entraîne l’envoi du mail avec le lien téléchargement ?

    Répondre à ce message

  • Je me réponds car j’ai enfin trouvé. C’est si simple !
    Pour tous les produits du site :
    À l’endroit désiré dans espace privé mettre :

    <produit|classement=titre>

    si on veut afficher tous les produits d’une rubrique

    <produit|rubrique=X|classement=titre>

    X étant le numéro de la rubrique THÉLIA et non celle de SPIP

    RP

    Répondre à ce message

  • Pouvez-vous me donner un exemple de BOUCLE SPIP-THELIA qui ferait afficher tous les produits Thelia du site classés par ordre alphabétique.

    Merci
    RP

    Répondre à ce message

  • 1
    Aurélien

    Bonjour,

    Je ne vois pas bien comment mettre en place l’URL REWRITING pour les pages autres que rubriques ou produits ? (panier, adresse, ...)

    Le code ici n’en fait pas mention.

    Quid des URLS ? THELIA-PANIER-REWRITE ?

    Aurélien

    • Arnault Pachot

      L’url rewriting des pages panier, commande, etc.. n’est pas géré.

      Je sais qu’il est possible dans spip 2 de définir des url personnalisées pour des pages données, personnellement je n’ai pas creusé la question...

    Répondre à ce message

  • 4
    Aurélien

    J’ai associé les produits aux articles.

    Sous SPIP, sur la page d’un article, j’obtiens à chaque fois le message suivant :

    erreur : la fonction chemin() dans ecrire/inc/utils.php doit être mise en commentaire !

    alors que j’ai pourtant correctement mis en commentaire cette ligne !

    De plus , j’ai DEUX boutons MISE A JOUR, alors que j’ai qu’un seul produit.

    • Aurélien

      Une idée ?

    • pour les deux boutons c’est normal. Quand la liste est longue, c’est plus pratique d’en avoir un en haut et un en bas.

    • l’erreur indiquée en rapport avec la fonction chemin() :

      -  peux tu modifier dans spip_thelia_fonct.php ligne 49

      if (function_exists('chemin')) {

      par :

      if (function_exists('chemin')&&($_REQUEST['exec']!="articles")&&($_REQUEST['exec']!="naviguer")) {

      et me confirmer que l’erreur disparaît ?

    • Aurélien

      Je te confirme que l’erreur a disparu !

      Merci beaucoup,
      Aurélien

    Répondre à ce message

  • 2
    Aurélien

    Lorsque je passe de spip.php ?page=adresse à spip.php ?page=commande, le navigateur (safari) cherche puis termine sa route sur /commande.php avec en erreur :

    Trop de redirections sont survenues

    • Aurélien

      Je me réponds :

      Dans la page adresse, Collissimo (mon unique moyen de transport) n’apparaissait pas alors que je l’avais activé dans Thélia.
      Je les rendu actif directement dans la table Modules et du coup la page commande fonctionne !

      voilà ;)

    • il peut y avoir aussi un pb suite à une maj, liés à une ancienne session thélia qui génèrent des pbs de redirection. Généralement supprimer les cookies de session avec le navigateur résoud aussi le pb.
      ++

    Répondre à ce message

  • 3
    Aurélien

    Y a-t-il moyen d’inverser les boucles ?

    A savoir que PRODUITS_ARTICLES devienne ARTICLES_PRODUITS ! Retrouver un article SPIP dans un produit THELIA ?

    Si oui, quelle serait la syntaxe ?

    Merci,
    Aurélien

    • si tu veux dire dans une boucle thélia, alors c’est pas simple.

      peut-être en faisant un filtre thélia qui accède à la bd spip et renvoie le id_article associé ?

      cf http://wiki.thelia.fr/index.php/Les...

    • Aurélien

      Merci pour la piste !

      Je vais essayer de voir si je peux trouver la syntaxe adéquate.

      Aurélien

    • Aurélien

      A priori ca pourrait fonctionner avec la boucle suivante dans une boucle Thélia :

      <BOUCLE_1(PRODUITS_ARTICLES){id_article LIKE %(#ENV{ID})%}>
      	#ID_ARTICLE
      </BOUCLE_1>

      Je cherche

    Répondre à ce message

  • REWRITE URL ?

    Bon je suis perdu là...
    J’ai dans un menu codé en dur des liens de types :

    <a href="#URL_PAGE{rubrique5_thelia,id_rubrique_thelia=THELIA-ID}" >TOTO</a>

    On fait comment avec REWRITE-THELIA dans ce cas là ?

    Répondre à ce message

  • 1

    Bonjour,

    J’essaie de lier les rubriques de ma boutique Thelia à des articles SPIP, mais je n’ai pas trouvé de modèle de boucles comme pour afficher les produits associés à une rubrique.

    J’ai testé cela mais ça ne fonctionne pas.



    THELIA-TITRE

    Quelqu’un aurait il une idée pour afficher ces rubriques de la boutique ?

    merci

    Répondre à ce message

  • 1

    Bonjour,

    Je souhaite internationaliser le site dont je m’occupe et donc utiliser les fonctionnalités multilingues de spip et thelia. J’ai un peu près compris comment activer la gestion multilingue sous spip (création d’un secteur spécifique pour chaque langue, traduction des articles...), de même que sous thelia (traduction des rubriques et articles).

    J’ai commencé à modifier mes squelettes pour tenir compte de la langue à l’aide du filtre {lang} pour les boucles spip et des liens vers les pages thelia en ajoutant aux url le paramètre de langue ?lang=

    Par exemple, pour créer un lien vers une rubrique thelia, j’utilise dans mon squelette :

    <a href="#URL_PAGE{rubrique_thelia,id_rubrique=THELIA-ID&amp;lang=#LANG}">THELIA-TITRE</a>

    Je me demande cependant comment utiliser la fonctionnalité urlrewriting de thelia.

    <a href="THELIA-REWRITEURL">THELIA-TITRE</a>

    fonctionne bien, mais n’ajoute pas d’information de langue à l’url.

    Faut-il modifier le moteur thelia, pour lui faire générer une information de langue supplémentaire, ou alors passer par le moteur spip pour la réécriture des liens thelia ?

    Y a-t’il un autre moyen de récupérer la variable lang de thelia : j’ai lu quelque part que thelia passe ce paramètre langue différemment de spip, par une méthode GET si mes souvenirs sont bon.

    Quelqu’un a-t’il déjà expérimenté l’url rewriting et le multilinguisme avec spipthelia ? Quel est la méthode que vous avez déjà utilisé avec succés ?

    • Après plusieurs tentatives, je commence à mieux comprendre le comportement imbriqué de spip et thelia.

      Spip gère les langues de façon indépendante de thelia. Et le comportement de thelia est changé par l’utilisation de spipthelia.

      Alors que thelia pris comme logiciel autonome mémorise un changement de langue par l’ajout une unique fois dans l’adresse d’une page à consulter d’une chaine de lang (lang=2 par exemple pour passer à l’anglais), il est nécessaire d’ajouter systématiquement une chaine de langue en utilisant spipthelia.

      Je m’explique :

      -  en utilisant thelia, le lien suivant dans un squelette :

      <a href="#REWRITEURL&lang=2">mon lien</a>
      permet d’appeler une page en anglais.

      à partir de ce changement de langue, tous les liens de la forme
      <a href="#REWRITEURL">mon autre lien</a>
      meneront vers des pages en anglais.

      -  en utilisant spipthelia :

      <a href="THELIA-REWRITEURL&lang=en">mon lien</a>
      permet aussi d’appeler une page thelia en anglais.

      Mais si sur le squelette de la page appelée nous avons
      <a href="THELIA-REWRITEURL">mon autre lien</a>
      la page appelée sera de nouveau en français.

      Il faut donc que tous les liens vers les pages THELIA des squelettes soit transformés de la façon suivante :
      <a href="THELIA-REWRITEURL&lang=#LANG">mon lien</a>

      Cela fonctionne, mais a l’inconvénient majeur que tous les liens auront une information lang. On a donc de l’url rewriting, avec les informations supplémentaires en paramêtres. On perd donc un peu l’intérêt de l’url rewriting.

      Tous les liens du site auront donc le format suivant :
      http://monsite.tld/monlienreecrit?lang=fr
      ou http://monsite.tld/monlienreecrit?lang=en

      Je n’ai pas trouvé mieux pour l’instant. D’où ma question aux développeurs de spipthelia : est-il raisonnablement possible d’espérer synchroniser la gestion des langues de spip et de thelia par le plugin spipthelia ?

      Je ne maîtrise pas bien le php, et je n’ai pas encore tout compris dans les mécanismes de gestion des langues des scripts. J’hésite un peu sur les modifications à apporter.

    Répondre à ce message

  • Je n’ai effectivement plus d’erreur en remplacent « action » par « thelia_action », mais par contre, il ne se passe rien (je reviens sur ma page, mais le mail n’arrive jamais).

    Idem, toujours dans le plugin parrainage, lorsque je veux utiliser le solde de parrainage... Je renvoie vers « commande.php ?thelia_action=compteparrainage » mais rien ne se passe (j’imagine que le solde devrait apparaitre dans le champ « remise »...

    Merci

    Répondre à ce message

  • 1

    Hello,

    Est-ce que quelqu’un a réussit à installer le plugin parrainage de Thelia sur un site tournant avec ce plugin SPIP_THELIA ? Y-a-t-il une astuce car j’ai essayé de l’installer et je me retrouve avec une erreur « Fichier action/parrainage_mail introuvable » lorsque j’essaye de parrainer quelqu’un ?? J’ai posé des questions sur le forum de thelia mais ils ne peuvent pas m’aider car il semble que le problème soit lié à l’utilisation avec SPIP...

    Sinon, pour répondre au message précédent, je peux envoyer mon fichier de langue en NL sans problème (Ou dois-je l’envoyer)... Par contre, j’ai également dû, pour ajouter cette langue 4, créer les nouveaux status en NL dans la table status ainsi que traduire tous les noms de pays pour la langue NL dans la table pays de Thelia...

    Merci

    • Je crois qu’il faut que tu modifies un peu la boucle thélia pour l’adapter au plugin spip/thélia et éviter les conflits avec SPIP. Un des conflits qui revient souvent et qui semble être le tien, c’est sur la variable « action » des formulaires qu’il faudrait remplacer par « thelia_action »

      par exemple dans :

      <form action="parrainage.php" method="post" />
      	<input type="hidden" name="action" value="parrainage_mail" />
      	Prénom de votre ami : <input type="text" name="prenom_filleul" />
      	Nom de votre ami : <input type="text" name="nom_filleul" />
      	E-Mail de votre ami : <input type="text" name="mail_filleul" />	
      	<input type="submit" value="OK" />
      </form>

      remplacer :

      <input type="hidden" name="action" value="parrainage_mail" />

      par :

      <input type="hidden" name="thelia_action" value="parrainage_mail" />

      sinon pour le fichier de langue en NL, tu peux :
      -  soit demander un accès sur SVN (la demande se fait sur la liste spip-zone) et ensuite « commiter » la modification directement sur le plugin
      -  soit me l’envoyer par mail (apachot at openstudio.fr) je l’ajouterai

      A+

    Répondre à ce message

  • Bonjour, est-il possible de créer, comme pour spip, un squelette différent pour une rubrique différente ? (exemple : rubrique_thelia-2.html ne fonctionnera que pour la 2e rubrique thelia)

    Merci et a bientôt

    Olivier

    Répondre à ce message

  • 3

    Bonjour,

    Quelqu’un pourrait-il m’expliquer comment ajouter une langue dans Thelia (ou en remplacer une existante) ?

    J’ai bien compris qu’il fallait ajouter la langue dans la table « lang » directement, mais comment Thelia va-t-il faire le lien avec le fichier de langue correct (p.ex : spipthelia_fr.php). J’aimerais ajouter le néerlandais à mon site (donc avoir un spipthelia_nl.php et pouvoir traduire les produits en néerlandais via l’interface d’admin !).

    Merci

    • Je me répond à moi même... J’ai ajouté une langue 4 dans la table lang, ajouté l’association nl/4 au niveau du plugin, et créé un fichier spipthelia_nl.php et visiblement, cela fonctionne...

      Je ne comprends toujours pas comment l’association est faite... J’imagine que les fichiers spipthelia_xx.php sont spécifiques au plugin et ne font pas partie de l’implémentation standard de spip et que c’est donc le plugin qui gère l’association.

    • Salut,

      c’est parce que toutes les chaînes de langue des squelettes sont gérées par SPIP. Ce sont des variables de type <:spipthelia:ma_chaine_de_langue :>

      donc SPIP va tout seul chercher si un fichier de langue spipthelia_nl.php existe pour le hollandais dans /lang

      ++

    • Au fait, si tu veux nous envoyer le fichier générique en hollandais, je l’ajouterai au plugin

      ++

    Répondre à ce message

  • Merci pour ce plugin que je suis en train de découvrir

    Avec des produits associé á l’article j’obtiens le message suivant :
    Warning : Invalid argument supplied for foreach() in /plugins/balise_session/public/cacher.php on line 32

    Une solution ?

    Rainer

    Répondre à ce message

  • Bon alors cette fois-ci j’ai bien la fenêtre pour associer un produit à mon article mais quand je clic dessus pour qu’elle s’ouvre et me présente les produits à mettre dans mon article j’ai ce message d’erreur :
    « Warning : mysql_num_rows() : supplied argument is not a valid MySQL result resource in /mnt/148/sda/2/7/bienvenuealabadie/la-mouniche/fonctions/boucles.php on line 119 »

    ça fonctionne pas avec la dernière version de Thélia (1.3.6) ?

    Répondre à ce message

  • 3

    Je ne comprends pas... J’ai la version 3.6 de Thélia et ça fonctionne bien, mais je ne trouve nullepart une interface pour associer un produit à une rubrique ou à un article.
    La seule chose que cfg me propose dans la configuration est le choix de la version pour le plugin Thélia. Je choisis version 3.4 ou supérieur et il me dit qu’il le prend en compte mais ça s’arrête là.

    • même problème pour moi ! qqn a une solution ?

    • autant pour moi ! il faut prendre la version dev qui correspond à la 1.2

    • Oui, c’est ce que je viens de trouver aussi à l’instant... lol

    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