Page 1 sur 1

Modification d'éléments de messages via la base de données

Posté : 16 avr. 2016 à 22:22
par ninouee
Bonjour à tous,

Suite à mon passage de PHPBB3.0.X à PHPBB3.1.X et l'arrêt de l'utilisation du mod Advanced BBCODE (ABB3C), je cherche à corriger les vieux BBCODE utilisés dans les messages afin de les remplacer par les nouveaux.
Je précise que je travaille sur wampserver du coup je peux faire autant de bêtises que je le souhaite. :D

Actuellement je fais un teste avec : A l'origine je pensais saisir tous les BBCODES (vieux et nouveaux) et seulement mettre les nouveaux en visibles. Or, si on n'édite pas le sujet le changement n'est pas pris en charge.

Du coup j'ai cherché autre chose.

J'ai trouvé une explication très interessante dans ce sujet : http://forums.phpbb-fr.com/support-util ... 95331.html ou ce code est utilisé pour changer un nom par un autre dans la table des messages:

Code : Tout sélectionner

UPDATE phpbb_posts SET post_text=REPLACE(post_text,'http://www.xxx.fr/phpBB2/','http://www.xxx.fr/phpBB3/') WHERE post_text LIKE '%http://www.xxx.fr/phpBB2/%' 
Alors, si cela peut fonctionner je n'aurais qu'à saisir mes nouveaux BBCODE et faire une mise à jour sur la base de données.

J'ai essayé de reprendre le code mais je n'arrive à rien. D'origine, SQL de phpmyadmin indique qu'un élément du code ne fonctionne pas. Et j'ai comme un doute pour la prise en charge de l’élément à remplacer.

Voila mon premier essaie:

Code : Tout sélectionner

UPDATE phpbb_posts SET post_text=REPLACE(post_text,'[align=center] {TEXT}[/align]
','[center] {TEXT} [/center]') WHERE post_text LIKE '%[align=center] {TEXT} [/align]% '
Et mon autre essaie:

Code : Tout sélectionner

UPDATE phpbb_posts SET post_text=REPLACE(post_text,'[align=center] {TEXT}[/align]
','[center] {TEXT} [/center]') WHERE post_text LIKE '%[align=center] {TEXT} [/align]% '
Mon gros doute c'est que le code est en deux parties:

Code : Tout sélectionner

[align=center]
début code

Code : Tout sélectionner

{TEXT}
: variable

Code : Tout sélectionner

[/align]
: fin du code

et doit être remplacer ceci:

Code : Tout sélectionner

[center]
début code

Code : Tout sélectionner

 {TEXT} 
variable

Code : Tout sélectionner

[/center]
fin du code

Pouvez-vous m'expliquer où je me trompe?

Merci à vous. :D

Re: Modification d'éléments de messages via la base de données

Posté : 16 avr. 2016 à 23:08
par Mazeltof
'soir ici,

je n'ai pas épluché en détail mais as tu regardé ici ?
ça pourrait peut être t'aider :wink:

Re: Modification d'éléments de messages via la base de données

Posté : 16 avr. 2016 à 23:14
par ninouee
Bonjour!

Merci pour le lien :D

J'ai déjà fait le test d'ABB3C en version extension et il ne correspond pas à mes besoins car il lui manque les BBCODE essentiels qu'il avait avant sur PHPBB 3.0.x.
Je suis donc obligée de tout recréer de manière plus mécanique et plus simple.

Mais ce n'est pas ça mon plus gros problème.

En simplifiant les BBCODE pour que j'arrive à le faire marcher, le code a changé. Du coup sur les messages, les nouveaux comme les anciens ne fonctionnent pas.
Comme mon forum dépasse les 250000 messages et qu'il y a beaucoup de présentations de fiches séries/films/acteurs/personnages... Fait de manière propre et bien présentés via les BBCODE. Je ne peux pas me permettre de tout éditer, messages par messages pour que les présentations soient propres.

D'où ma recherche de mise à jour de base de donnée via requête SQL. :D

Re: Modification d'éléments de messages via la base de données

Posté : 17 avr. 2016 à 09:36
par cabot
Tu as essayé de faire la manip avant le passage en 3.1, histoire de pouvoir utiliser le script permettant de réanalyser les BBCode fourni dans le STK ?
En fait ça ne changera rien. :mrgreen:

Si tu crées un BBCode
sur ton nouveau forum, ça ne fonctionne pas ?
Sinon, pourquoi ne pas faire la mise à jour avec l'extension ABBC3 ?

Re: Modification d'éléments de messages via la base de données

Posté : 17 avr. 2016 à 10:33
par ninouee
Bonjour Cabot :D

cabot a écrit :Tu as essayé de faire la manip avant le passage en 3.1, histoire de pouvoir utiliser le script permettant de réanalyser les BBCode fourni dans le STK ?
En fait ça ne changera rien. :mrgreen:
Avant le passage en 3.1 j'avais une méga erreur sur mon forum, j'ai fait tout les nettoyages nécessaires pour pouvoir faire la mise à jour et qu'elle se passe bien. Après plusieurs tentatives, la seule manière qui a marché sur le long terme c'était de retirer toutes les modifications des mods et de purger les BDD avec STK. Du coup les bbcodes ont sautés. :D

Il me semble que sur le tuto d'ABB3C il est précisé de ne pas toucher au BBCODE lors du transfert pour que ceux qu'ils ont gardé puissent être réinitialisés. Et fonctionnent après la la MAJ.
Mais ayant une erreur fatale avant et après maj à cause des BBCODE j'ai du tout purger.

D'autre part, le nouveau ABB3C ne propose plus les mêmes BBCODE du coup il en manque énormément (tableau, tabulation....). Alors je me suis dit que vu qu'il faut que je recréé tous ceux dont j'ai besoin autant que je me passe d'ABB3C. :mrgreen:
cabot a écrit :
Si tu crées un BBCode
sur ton nouveau forum, ça ne fonctionne pas ?
Sinon, pourquoi ne pas faire la mise à jour avec l'extension ABBC3 ?

Non ça ne fonctionne pas.
Quand on installe ABB3C sur 3.1.X après avoir purger, les anciens BBCODE ne fonctionnent pas il faut éditer les messages. :D
Etant donné que j'ai purgé la BDD, les bbcode dans les message qui datent d'avant la MAJ ne sont pas pris en compte.


Sans oublier que mon forum est assez vieux, qu'il a connu plusieurs version de BBCODE et donc faire un nettoyage des messages en remplaçant les vieux code par les nouveaux via une requette ferait un bon nettoyage.

Par exemple j'ai plusieurs BBCODE pour la même chose qui cohabitent:

Code : Tout sélectionner

[center][/center]

Code : Tout sélectionner

[align=center][/align]

Re: Modification d'éléments de messages via la base de données

Posté : 17 avr. 2016 à 11:27
par cabot
ninouee a écrit :D'autre part, le nouveau ABB3C ne propose plus les mêmes BBCODE du coup il en manque énormément (tableau, tabulation....). Alors je me suis dit que vu qu'il faut que je recréé tous ceux dont j'ai besoin autant que je me passe d'ABB3C.
Yui mais ça aurait permis de garder au moins les BBCodes qui sont mis à jour par l'extension. A savoir aussi qu'aucun BBCode n'est supprimé lorsqu'on supprime l'extension, seule la gestion des permissions dégage, ce qui permet de ne pas mettre le dawa dans les messages.
Fin bon, si ta base a déjà subit les foudres du STK et que tu n'as pas d'autre sauvegarde, ça ne change rien au problème. :?

Je te souhaite bon courage pour la suite en espérant que tu trouves une solution à ton problème. :/

Re: Modification d'éléments de messages via la base de données

Posté : 17 avr. 2016 à 11:42
par ninouee
J'ai d'autres sauvegardes et je travaille sur wamp serveur du coup je peux tout recommencer autant de fois que je le veux. Le vraie forum tourne tranquillement sur sa version actuelle. ;-)

Je peux essayer de refaire la mise à jour sans enlever la partie ABB3C. Non en fait je vais tenter cet après midi.

Je crains toutefois que pour les BBCODES manquant je doive tout de même faire un travail de mise à jour. Je vous tiens au courant.

Re: Modification d'éléments de messages via la base de données

Posté : 17 avr. 2016 à 13:14
par FoFa
Hello

Fais une mise à jour de abbcode. Les bbcode qui sont conservés ne changeront pas. Après tu devras créer seulement ceux qui ont sauté. Donc refaire 5 bbcode au lieu de 30. Ce sera déjà ça.

Pour modifier les bbcode dans la base de données faut pas chercher [align=center]. C'est un poil plus compliqué.

Re: Modification d'éléments de messages via la base de données

Posté : 17 avr. 2016 à 14:07
par ninouee
Bonjour Fofa

J'en ai déjà recréé quelques uns et c'est un bon exercice.

Là j'ai remis la base en 3.0.X et je retire les mods inutiles excepté abb3c pour faire l'upgrade selon le mode d'emplois. J'espère arriver à faire le passage en 3.1.x sans trop d'encombres.

Toutefois j'aurais quand même du ménage à faire dans les postes lol

Re: Modification d'éléments de messages via la base de données

Posté : 17 avr. 2016 à 14:34
par FoFa
Ça bosse dur chez toi. Après la migration de forumactif à la main voilà autre chose.

Bon courage

Re: Modification d'éléments de messages via la base de données

Posté : 17 avr. 2016 à 16:19
par ninouee
Oui il faut bien si je veux faire fasse à mes concurrent qui sont chez forumactif. Je me fait littéralement bouffer par des petits nouveaux mais comme on dit c'est le jeux ma pauvre lucette. :mrgreen:

Bon j'ai fait le test en faisant la mise à jour en gardant abb3c et en le rajoutant. Comme je le craignais une partie des bbcodes n'ont pas été pris en charge mais ça va me faire moins de travail.
J'aurais néanmoins du travail à faire au niveau de la base.
Je vais faire un essaie avec le code trouvé.

Je vous tien au courant.

Re: Modification d'éléments de messages via la base de données

Posté : 01 mai 2016 à 11:41
par ninouee
Bonjour


Ayant réglé pas mal de problèmes j'attaque les détails :D

Pour une raison stupide (je m'en rend compte maintenant) j'avais changé la gestion de la taille des polices pour les bbcodes.
Par exemple pour la taille

Code : Tout sélectionner

[size=150][/size]
chez moi c'est

Code : Tout sélectionner

[size=20][/size]
Comme je préfère ne pas trop toucher aux réglages de base du forum et comme je vais avoir beaucoup de chose à remettre en état. J'ai pensé aux requêtes SQL pour changer automatiquement une valeur de bbcode par une autre.

Après recherches, j'ai trouvé cette requette:

Code : Tout sélectionner

UPDATE phpbb_posts SET post_text = REPLACE(post_text,'[size=20]','[size=150]') 
et ça me répond ceci :
0 ligne affectée. (Traitement en 2.2612 secondes.)

Je pensais avoir suivi l'explication qui est ici http://sql.sh/fonctions/replace et je ne comprend pas mon erreur.

Avez-vous une idée?

Re: Modification d'éléments de messages via la base de données

Posté : 01 mai 2016 à 11:55
par FoFa
Essaie ça :

Code : Tout sélectionner

UPDATE phpbb_posts SET post_text = REPLACE(post_text,'[size=20','[size=150')

Re: Modification d'éléments de messages via la base de données

Posté : 01 mai 2016 à 12:11
par ninouee
Merci!!

Oui ça fonctionne!

Peux-tu m''expliquer pourquoi avoir mis un "]" à la fin du bbcode posait un problème?

Re: Modification d'éléments de messages via la base de données

Posté : 01 mai 2016 à 12:20
par FoFa
Dans la base de données ca s'enregistre ainsi :
[size=120:ugsderg]ton texte[/size:ugsderg]

:ugsderg est aléatoire pour chaque message