[Réglé] Modification d'éléments de messages via la base de données

Forum de support pour les questions concernant l'utilisation de phpBB 3.1, les problèmes rencontrés lors de manipulations, de configuration du forum ou de personnalisation autres que les Styles ou les Extensions.

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

Pensez à effectuer une recherche, la réponse à votre question a de grandes chances d'avoir déjà été donnée.

[Réglé] Modification d'éléments de messages via la base de données

Messagepar ninouee » 16 Avr 2016 à 22:22

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 : support-utilisation-phpbb3/sujet195331.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
Modifié en dernier par ninouee le 01 Mai 2016 à 12:40, modifié 1 fois.
Avatar de l’utilisateur
ninouee
Posteur expérimenté
Posteur expérimenté
 
Messages: 311
Enregistré le: 22 Nov 2009 à 21:12

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

Messagepar Mazeltof » 16 Avr 2016 à 23:08

'soir ici,

je n'ai pas épluché en détail mais as tu regardé ici ?
ça pourrait peut être t'aider :wink:
Image Image Image
Avatar de l’utilisateur
Mazeltof
Resp. des graphistes
Resp. des graphistes
 
Messages: 2719
Enregistré le: 09 Mar 2009 à 23:02
Localisation: Arras

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

Messagepar ninouee » 16 Avr 2016 à 23:14

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
Avatar de l’utilisateur
ninouee
Posteur expérimenté
Posteur expérimenté
 
Messages: 311
Enregistré le: 22 Nov 2009 à 21:12

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

Messagepar cabot » 17 Avr 2016 à 09:36

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 [center=] sur ton nouveau forum, ça ne fonctionne pas ?
Sinon, pourquoi ne pas faire la mise à jour avec l'extension ABBC3 ?
Image
Avatar de l’utilisateur
cabot
Equipe site
Equipe site
 
Messages: 26796
Enregistré le: 13 Fév 2011 à 20:42
Localisation: Rarement sur la plaque

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

Messagepar ninouee » 17 Avr 2016 à 10:33

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:[s]
Si tu crées un BBCode [center=] 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]
Avatar de l’utilisateur
ninouee
Posteur expérimenté
Posteur expérimenté
 
Messages: 311
Enregistré le: 22 Nov 2009 à 21:12

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

Messagepar cabot » 17 Avr 2016 à 11:27

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. :/
Image
Avatar de l’utilisateur
cabot
Equipe site
Equipe site
 
Messages: 26796
Enregistré le: 13 Fév 2011 à 20:42
Localisation: Rarement sur la plaque

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

Messagepar ninouee » 17 Avr 2016 à 11:42

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.
Avatar de l’utilisateur
ninouee
Posteur expérimenté
Posteur expérimenté
 
Messages: 311
Enregistré le: 22 Nov 2009 à 21:12

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

Messagepar FoFa » 17 Avr 2016 à 13:14

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é.
De retour parmi vous :wink:
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10582
Enregistré le: 15 Nov 2008 à 19:04
Localisation: Auxonne

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

Messagepar ninouee » 17 Avr 2016 à 14:07

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
Avatar de l’utilisateur
ninouee
Posteur expérimenté
Posteur expérimenté
 
Messages: 311
Enregistré le: 22 Nov 2009 à 21:12

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

Messagepar FoFa » 17 Avr 2016 à 14:34

Ça bosse dur chez toi. Après la migration de forumactif à la main voilà autre chose.

Bon courage
De retour parmi vous :wink:
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10582
Enregistré le: 15 Nov 2008 à 19:04
Localisation: Auxonne

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

Messagepar ninouee » 17 Avr 2016 à 16:19

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.
Avatar de l’utilisateur
ninouee
Posteur expérimenté
Posteur expérimenté
 
Messages: 311
Enregistré le: 22 Nov 2009 à 21:12

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

Messagepar ninouee » 01 Mai 2016 à 11:41

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?
Avatar de l’utilisateur
ninouee
Posteur expérimenté
Posteur expérimenté
 
Messages: 311
Enregistré le: 22 Nov 2009 à 21:12

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

Messagepar FoFa » 01 Mai 2016 à 11:55

Essaie ça :

Code: Tout sélectionner
UPDATE phpbb_posts SET post_text = REPLACE(post_text,'[size=20','[size=150')
De retour parmi vous :wink:
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10582
Enregistré le: 15 Nov 2008 à 19:04
Localisation: Auxonne

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

Messagepar ninouee » 01 Mai 2016 à 12:11

Merci!!

Oui ça fonctionne!

Peux-tu m''expliquer pourquoi avoir mis un "]" à la fin du bbcode posait un problème?
Avatar de l’utilisateur
ninouee
Posteur expérimenté
Posteur expérimenté
 
Messages: 311
Enregistré le: 22 Nov 2009 à 21:12

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

Messagepar FoFa » 01 Mai 2016 à 12:20

Dans la base de données ca s'enregistre ainsi :
[size=120:ugsderg]ton texte[/size:ugsderg]

:ugsderg est aléatoire pour chaque message
De retour parmi vous :wink:
FoFa
Resp. des supporters
Resp. des supporters
 
Messages: 10582
Enregistré le: 15 Nov 2008 à 19:04
Localisation: Auxonne


Retourner vers Utilisation

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité