THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 reecriture avec 1.5

(09-06-2011 11:06:10)


Bonjour,

Suite a 1 mise a jour 1.4.0 vers 1.5.0
j'ai 1 petit souci la reecriture n'existe pas dans la BO pour les produits existants du coup en FO renvoi systematiquement vers l'index du site
et pour les ajouts de produits pas de reecriture non plus.

Alors que sur un Thelia 1.5.0 la reecriture se fait a la volee...
Que ce soit avec le .htaccess 1.5 d'origine ou modifie de Lexa.
Merci.

Reg


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

  • yoan
  • Cofondateur Thelia

Offline

#2 Re: reecriture avec 1.5

(09-06-2011 14:28:55)


J'ai l'impression que ta maj a pas franchement fonctionné, c'est bizarre.
La table reecriture est vide ?


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline

#3 Re: reecriture avec 1.5

(10-06-2011 02:35:13)


L'installation s'etait sans doute mal passee,
je n'avais pas de table 'reecriture'
du coup j'ai refait une mise a jour (de ma mise a jour tongue)

Maintenant la table est bien presente,
le champ 'URL reecrite' s'alimente en cas de creation de nouveau produit,
par contre pour mes "vieux" produits il faudrait apparemment que je 'valide' chaque fiche (2000 produits hmm)
A moins qu'il n'y ai 1 astuce?
Merci.


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

Offline

#4 Re: reecriture avec 1.5

(10-06-2011 03:55:39)


Alors apres X mises a jour mes champs 'URL reecrite' se trouvent bien remplis, ouf tongue

mais par contre au depart en partant de la 1.4.0>1.5.0 non, d'ailleurs la version installee apparaissait en BO comme 1.4.4
Desormais 1.4.4(?)>1.5.0 la reecriture est effective sur mes anciens produits et version 1.5.0 indiquee en BO
Peut etre 1 piste a creuser wink


Je viens preciser aussi que 1.4.0>1.5.0 le plugin 'compatibilite V.1' etait 'incompatible'
et que 1.4.4>1.5.0 il fonctionne...

Last edited by reg (10-06-2011 03:58:21)


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

Offline

#5 Re: reecriture avec 1.5

(10-06-2011 10:47:10)


Bon j'ai modifie la fonction 'rewrite.php' et le htaccess en fonction de mes besoins,

mais il y a 1 truc que je ne comprends pas dans le BO lorsque je reviens (<-fiche precedente) l'url change comme je le souhaite, mais pas dans la BDD, il faudrait que je valide 1 a 1 toutes les fiches hmm
n'y aurait il pas 1 autre solution plus rapide?
Merci.

Je reviens, en plus quand on valide la nouvelle 'url' l'ancienne n'est pas effacee en BDD...

Last edited by reg (10-06-2011 10:49:57)


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

Offline

#6 Re: reecriture avec 1.5

(10-06-2011 11:08:52)


Je reviens, en plus quand on valide la nouvelle 'url' l'ancienne n'est pas effacee en BDD

C'est voulu, afin d'éviter les 404 si jamais l'ancienne URL a déjà été référencée.


OpenStudio Toulouse

Offline

#7 Re: reecriture avec 1.5

(10-06-2011 11:30:06)


Ok bien pense smile

Sinon pour simplifier, je le signale si eventuellement quelqu'un voulait faire la meme chose, j'ai refais un mise a jour en modifiant au prealable le rewrite.php

En meme temps que je tape je reflechi tongue
la vielle URL meme si referencee n'existe plus donc elle ne pourra pas etre trouvee au dela de la vie du cache du navigateur, non?

Reg wrote:

Sinon pour simplifier, je le signale si eventuellement quelqu'un voulait faire la meme chose, j'ai refais un mise a jour en modifiant au prealable le rewrite.php

Euh c'est bon pour le BO, bonne URL rewrite sans valider chaque fiche, mais la table 'reecriture' n'a pas ete modifiee sad

Last edited by reg (10-06-2011 11:40:13)


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

Offline

#8 Re: reecriture avec 1.5

(11-06-2011 04:09:08)


Comment valider toutes les fiches de la BO d'1 coup?

Ou comment faire pour que ma table 'reecriture' recupere toutes les 'URL reecrite' du BO?

Merci wink


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

Offline

#9 Re: reecriture avec 1.5

(11-06-2011 05:59:42)


reg wrote:

Comment valider toutes les fiches de la BO d'1 coup?

Ou comment faire pour que ma table 'reecriture' recupere toutes les 'URL reecrite' du BO?

Merci wink

Si il ne s'agit que de passer un champ actif à 1 ou quelque chose de simple, avec une requete SQL directement dans PHPmyadmin c'est assez facile et rapide.

Mais si tu veux remplir la table reecriture en fonction d'autres tables, il faut réaliser un fichier php qui va traiter les données et les insérer dans ta table.
c'est souvent plus rapide que de le faire manuellement.

Offline

#10 Re: reecriture avec 1.5

(11-06-2011 07:07:48)


Nick3340 wrote:

Si il ne s'agit que de passer un champ actif à 1

non justement car les valeurs ne sont pas encore dans la table

si tu veux remplir la table reecriture en fonction d'autres tables

mon probleme s'est justement que je voudrais remplir cette table mais a partir des valeurs en BO qui ont l'air d'etre creee "a la volee" et non pas stockees dans 1 table...

Merci.


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

Offline

#11 Re: reecriture avec 1.5

(11-06-2011 16:11:09)


reg wrote:

mon probleme s'est justement que je voudrais remplir cette table mais a partir des valeurs en BO qui ont l'air d'etre creee "a la volee" et non pas stockees dans 1 table...

Merci.

As-tu un exemple ? j'ai du mal à saisir ce que le script doit faire.

Pour remplir la table réécriture il faut (pour un produit) :
l'ID du produit
ID rubrique du produit
titre de la rubrique
titre du produit

Pour refaire l'url, ça donnerai un truc dans ce genre :
$id_produit.'-'.$titre_rub.'-'.$titre_produit

Pour param :
&id_produit=$id_produit&id_rubrique=$id_rubrique

Enfin... il me semble.

Offline

#12 Re: reecriture avec 1.5

(12-06-2011 02:36:19)


En BO le champ 'URL recrite' (fonction rewrite.php modifiee) s'affiche bien comme je le souhaite:

ex: GRAHAM GREENE_Les naufragés_0036.html (auteur_titre du livre_ref)(titre du produit_chapo du produit_ref)
mais dans la BDD la table 'reecriture' pour le meme produit indique:
livres_1_graham-greene__0036.html(titre de la rubrique_ID de la rubrique_titre du produit_ref)

si je valide la fiche produit l'inscription en BDD change et prend elle aussi l'url souhaite
Ce que je voudrais c'est trouver un "raccourci" pour m'eviter de valider 2000 produits wink

Last edited by reg (12-06-2011 02:43:18)


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

Offline

#13 Re: reecriture avec 1.5

(12-06-2011 07:11:36)


le raccourci, c'est de réaliser un script qui va faire ce traitement, une fois le script fini, il faudra juste cliquer sur "go" et en quelques secondes toute ta table sera correctement modifiée.

si tu veux, tu m’envoies les tables nécessaires par mail. et d'ici quelques jours je te renvoie ta table reecriture remplie comme il faut. je le ferais quand j'aurais un peu de temps libre wink

Offline

#14 Re: reecriture avec 1.5

(12-06-2011 07:36:47)


Vais encore essayer 2/3 bidouilles avant, merci en tout cas big_smile


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

Offline

#15 Re: reecriture avec 1.5

(22-03-2012 15:40:53)


Bonjour,

J'ai le même soucis, j'ai reprit un site qui nécessite deux langues supplémentaires, à l'origine, que le français. Donc, pour éviter de devoir se repaluché à la mano les urls dans les différentes langues, j'ai écrit un script php qui scanne toutes les lignes de la table reecriture ayant la valeur actif=1, et je rajoute 'en-', ou 'de-' selon la nouvelle langue, et bien entendu, lorsque je crée cette nouvelle ligne, je met aussi le bon code de la langue, mais, après coup, je remarque que quand bien même dans la base de données c'est bien à jour (via le back office de thelia), pour autant sur le site, la valeur de #REWRITEURL est vide, pour corriger cela, je suis obligé de valider les unes après les autres chaque fiche, alors que 1) Dans la base de données, elles sont présente, et 2) dans le back office elles sont bien aussi à jour.
Alors, que se passe-t-il ? un cache persistant, si oui, comment le purger d'un coup ?

Cdlt.
Olivier.

Offline

#16 Re: reecriture avec 1.5

(23-03-2012 02:18:43)


la valeur de #REWRITEURL est vide

#REWRITEURL ne s'utilise plus depuis thelia 1.5 wink


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

Offline

#17 Re: reecriture avec 1.5

(23-03-2012 09:27:27)


Quand bien même, si j'utilise #URL, cela n'affecte pas le résultat final, càd, pas de lien réecrit ...
Pour faire simple, tous les liens mappé en francais (lang=1) sont présent, mais tout ceux en anglais (lang=2), et allemand (lang=3) sont absent, à partir du moment ou j'ai utilisé mon script pour générer ceux là !
Ya-t-il quelque chose à faire en dehors de la création des nouvelles lignes dans la table reecriture ?

Voici mon fichier traduction.php

<?php

$link = mysql_connect(...) or die("Impossible de se connecter : " . mysql_error());
mysql_select_db(..., $link);

$translate = $_GET['translate'];
$lang_from = 1; // Langue source
$fond_from = 'produit'; // Fond source

$query = sprintf('SELECT * FROM reecriture WHERE fond = "%s" AND lang = %d AND actif = 1', $fond_from, $lang_from);
$result = mysql_query($query);

if(mysql_num_rows($result)==0) die('Aucun enregistrement trouvé !');

$count=0;
while($row = mysql_fetch_assoc($result)){

	$url = 'en-' . $row['url'];
	$fond = $row['fond'];
	$param = $row['param'];
	$actif = 1;
	$lang_to = 2; // Langue cible
	
	$query_check = sprintf('SELECT * FROM reecriture WHERE fond = "%s" AND param="%s" AND actif = 1 AND lang = %d ', $fond, $param, $lang_to);
	$result_check = mysql_query($query_check);
	if(mysql_num_rows($result_check)==0){
		$count++;
		$query_add = sprintf('INSERT INTO reecriture (url, fond, param, actif, lang) VALUES("%s", "%s", "%s", %d, %s)', $url, $fond, $param, $actif, $lang_to);
		if($translate=='YES') $result_add = mysql_query($query_add); // si dans l'url il y a translate=YES, on exécute la commande sql
		echo 'for id['.$row['id'].'] ----- ' . $query_add . "\r\n";
	}else{
		while ($row = mysql_fetch_assoc($result_check)) {
 			print_r($row);
		}
	}
}

Là, le plus fort, c'est que je suis passé par mon fichier de traduction, mais étant donnée que cela n'affectait pas l'affichage, j'ai reprit les rubriques, produits, etc... les uns après les autres, la seule chose que j'ai fait, c'est allé en mode édition et de validé, du faite que les champs urls était déjà renseigné, et là, cela fonctionne, mais je ne sais pas pourquoi il faut passer obligatoirement par le back office, sachant de 'théoriquement' c'est des requêtes sql qui récupères les informations.
Quelqu'un du staff thelia pourrait m'éclairer à ce sujet, ou une personne avertie, car me 'retaper' à la mano à nouveau tous les enregistrements, ce n'est pas la solution, surtout pour le client final.

Cdlt.
Olivier