[clos] Evolution du logiciel du forum vers PhpBB 3.2

Problèmes, bugs et difficultés rencontrés sur le site.
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

[clos] Evolution du logiciel du forum vers PhpBB 3.2

Message par Dominique »

Je vous propose une évolution du logiciel du forum vers PhpBB 3.2
Le logiciel est ici : https://github.com/RefugesInfo/www.refu ... ee/dev-dom
Vous pouvez le tester ici : http://dom.refuges.info/

Avantages (je concède, assez maigres):
Format forum responsive (pour l'affichage sur petits mobiles)
Possibilité de fusionner 2 sujets
Code indépendant du logiciel du forum qui peut être mis à jour
Compatible avec PHP 7

L'idée est de remplacer /forum/... par la dernière livraison complète 3.2 avec pack français http://phpbb-fr.com/telechargements
Comme on ne touchera pas à ces fichiers, on pourra reprendre régulièrement les futures livraisons (ce que je fais sur chemineur)
On y ajoute /forum/photos-points qui est indépendant
PhpBB 3.2 est conçu pour pouvoir développer des plugins dont les fichiers sont complètement indépendants du logiciel forum.
L'arbo de ses fichiers est un peu ésotérique et définie ici https://area51.phpbb.com/docs/dev/31x/e ... asics.html mais ce que nous avons à faire est simple : https://github.com/RefugesInfo/www.refu ... 45e888dadb

Migration de la base:
Phpbb 3.2 est livré avec un convertisseur de base phpbb 2.* qui marche parfaitement.
J'ai préfixé les nouvelles tables phpbb3_ mais on pourra, à terme, supprimer les tables phpbb_*
Petite différence: le lien fiche <-> forum phpbb_topics/topic_id_point est reportée dans points/topic_id

Interfaces wri -> forum:
- Les fonctions appelées souvent et ne faisant que lire des infos dans le SQL forum (autoconnexion, texte premier post, ...) sont conservées dans les modeles/*.php et accèdent aux données du forum via PDO. les modifs sont ici : https://github.com/RefugesInfo/www.refu ... 382b585429
- Les fonctions appelées rarement et modifiant le contenu du forum (création d'un topic point, modification du nom du topic, transfert de commentaire, suppression du forum) simulent un appel URL du forum au moyen de https://github.com/RefugesInfo/www.refu ... #L632-L646 et https://github.com/RefugesInfo/www.refu ... #L135-L179.
Ceci permet d'utiliser les fonctions internes à PhpBB pour assurer ces tâches et garanti l'intégrité de la base qui est beaucoup plus complexe qu'on ne le pense.

Note : L'autoload des classes PHP du modèle MVC/WRI est incompatible avec celui de PhpBB basé sur Symphony, une URL utilise soit le modéle WRI/MVC (et accéder à la base via PDO) soit celui de PhpBB (et accéder à la base via $db). Pas de mélange de code possible.

A discuter.
L'effort vaut il le résultat ?
Le code proposé est il lisible / maintenable ?
(il reste quelques bugs, notamment le bandeau WRI à reporter dans les pages du frum mais je voulais d'abord valider le principe)
La recherche plante mais je pense que c'est plutôt un problème de base (un polygone qui ne se referme pas) que de code.
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Salut,

Commençons par les félicitations :
Je rêvais qu'un jour quelqu'un s'en occupe, parce que celui qu'on a est vraiment ancien, et qu'a force de bidouiller il devenait foireux (cf le bug "saucisson" : viewtopic.php?t=6410 ), il fallait alors le courage, l'energie (et la connaissance de phpbb3) pour reprendre ça de zéro.
Quelque part, je sentais que le messie ça serait toi ;-)

Voilà, je suis totalement pour, et je soutiens la démarche à fond.
L'effort vaut il le résultat ?
J'y crois. Surtout que tu as déjà quasiment tout fait !
Par contre je ne suis pas sûr de pouvoir y investir du temps de code, débugger par contre oui.


Maintenant, je sais que forum et site sont imbriqués, et que les outils de modération "site vers forum" ou les fonctions "dernier message forum" "authentification synchronisé" "rendu équivalent des balises bbcode" sont les points qui pourraient coincer.
Tant au niveau code pour que ça marche, qu'au niveau habitudes de nos modérateurs qui sont l'une sinon "LA" ressource la plus importante que nous ayons et qui pourraient pester, à juste titre, s'ils ne retrouve pas un truc qui leur convient.

Bref, t'es chaud bouillant pour prendre en compte les doléances ?
prèt à accepter que notre ours grogne parce que ça se présente "pas comment avant" ou que ça merdoie un peu ?
Prèt à accepter que je grogne aussi car forcément, à mon age, on s'est habitué à des choses et qu'on trouvera forcément qu'elle manque (bien qu'on en gagne tout un tas en plus) ?

Si oui, ben alors go.
Je liste au fur et à mesure ce que je remarque et qu'on essaye de corriger avant de passer "en prod" ?

- l'histoire du bandeau pour avoir un truc navigable ?
- On tente de dégager les spammeurs qui n'ont même pas attendu une mise en prod pour nous remplir le bousin ?
http://dom.refuges.info/nouvelles/
- rendu bbcode du "dernier message" :
http://dom.refuges.info/point/4696/gite ... om-du-Gite
- http://dom.refuges.info/point/4699/caba ... -CABANE-2/
"Le forum du point "NOUVELLE CABANE 2" (id=4699) ne semble pas exister"
J'ignore si c'est lié à la migration de forum
- si je créé une nouvelle cabane, j'ai max erreurs php, je ne sais pas si c'est lié au forum (ça ne le fait pas sur http://sly.refuges.info)

Rien vu d'autre pour l'instant mais est-ce que c'est comme ça que tu veux progresser ?
autre manière de rapporter les bugs ? (github ?)
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

Merci pour les encouragements.
Je voulais surtout valider que tu te sentes confortable avec la structure des extensions phpbb3 : https://github.com/RefugesInfo/www.refu ... esInfo/wri
Pas de pb avec les doléances, j’aime les longues soirées à corriger dans l’urgence et l’ :ours: est un expert de phpbb 3.2 depuis la migration chemineur :)
Merci pour les remarques : à ce stade, on est plutôt au niveau de la maquette d’évaluation. Merci pour les quelques nouveaux points. C’est en effet comme ça que je désire avancer. Je n’attend pas de coup de main de programmation.
sly a écrit :… au niveau habitudes de nos modérateurs qui sont l'une sinon "LA" ressource la plus importante que nous ayons et qui pourraient pester, à juste titre, s'ils ne retrouve pas un truc qui leur convient.
C’est en effet LA condition du passage : TOUT doit être comme avant d’un point de vue utilisation. Je compte sur vous pour être vigilants.
sly a écrit :On tente de dégager les spammeurs qui n'ont même pas attendu une mise en prod pour nous remplir le bousin ?
Là, on tombe sur 2 os :
1/ Les couillons (noms des trolls en Midi-Pyrénées) sont beaucoup plus attirés par phpbb3.2 (ils ont des outils les diables) que par 2.0 (ils ont oublié comment ça marchait ou n’étaient pas nés) ! Je me demande d’ailleurs si le forum est si sécurisé. Il faudra penser à durcir ça avant de déployer (quoi que ça se soit calmé sur chemineur)
2/ La gestion des users de phpbb n’est pas au top : pas possible de cocher une liste d’utilisateurs et de les supprimer avec leurs posts. Il faut les pourchasser un par un et c’est galèroïde. Point à voir. Peut être via les plugins dispo.
sly a écrit :Le forum du point "NOUVELLE CABANE 2" (id=4699) ne semble pas exister
Oui, c’est un résidu de mes debugs des fonctions création/suppression de points+-forum associé.
On pourrait réinitialiser la base de test.
sly a écrit :si je créé une nouvelle cabane, j'ai max erreurs php
Ha ! M. j’ai vérifié 50 fois avant de publier pourtant. Et les messages d’erreurs ne sont pas au top.
Bon. Il reste du boulot quand même. Merci.
sly a écrit :rendu bbcode du "dernier message"
Hum. Là, ça va être coton !
sly a écrit :est-ce que c'est comme ça que tu veux progresser ?
autre manière de rapporter les bugs ? (github ?)
Tip top.
github, ça m’embête si on ne peux pas dédier le suivi à la branche (Pas trouvé) on risque de confondre avec les bugs en prod.
Sur le forum dev, c’est pareil.
Peut être ouvrir un autre dépôt ? Je pense à https://github.com/dc92/www.refuges.info qui est un fork chez moi et possède son propre track (mais ça va être compliqué pour les non développeurs).

Pour l’instant, stand by : je ne peux m’y consacrer qu’en dent de scie et je pense terminer ma TODO list avant de solliciter vos capacité de testeurs.
La suite donc à +- long terme (rien ne presse).
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Dominique a écrit : Sur le forum dev, c’est pareil.
Si on utilise ce sujet pour ça, ça permet de ne pas trop brouillé le reste, ça permet aux utilisateurs normaux de nous filer un coup de main.
Dominique a écrit : Peut être ouvrir un autre dépôt ? Je pense à https://github.com/dc92/www.refuges.info qui est un fork chez moi et possède son propre track (mais ça va être compliqué pour les non développeurs).
On peut faire les deux ?
On maintient ici les problèmes peu techniques, les discussions et là bas on ouvre les tickets que nous sommes seuls de toute façon à comprendre.

Mais je te laisse juge et chef sur la question, je fais comme tu penses être le mieux.


Mais pas de problème, tu l'as dis, rien ne presse.
Avatar du membre
leosw
Messages : 539
Enregistré le : 28 févr. 2013, 17:28
Localisation : Montagne noire

Message par leosw »

Salut à vous!

Je suis encore bien vivant mais très peu disponible, d'où le peu de commentaires de ma part.
Je suis vivement pour cette mise à niveau qui ne peut apporter que sécurité et stabilité.

Bonne fin de week-end!

Léo
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

Bonjour

Me revoilà enfin avec une version de WRI complète sur base PhpBB V3.2 : http://dom.refuges.info/
Prêt pour des tests intensifs avant de basculer.
Je vous propose de noter les bugs en répondant sur ce fil (un post par bug ou remarque) : je noterai l'avancement de la correction en ***EDIT*** sur chaque post.
Les remarques des utilisateurs lambda sont aussi attendues que celles des codeurs (on ne regarde pas le problème de la même façon)
Comme déjà discuté, il n'y a aucune urgence, prenez votre temps, on ne basculera que quand les utilisateurs principaux auront donné leur avis et qu'il n'y aura plus de problèmes.

==> N'hésitez pas à faire des tests avec différents niveaux d'autorisation (admin, modo, utilisateur, non connecté) : j'ai eu de grosses galères à ce niveau.

Pour les codeurs:
Le code complet est ici: https://github.com/RefugesInfo/www.refu ... ee/dev-dom
Les évolutions des fichiers purement MVC de WRI sont ici: https://github.com/RefugesInfo/www.refu ... f9992b3ec1
Le répertoire /forum contient les fichiers non modifiés de PhpBB V3.2.0 http://www.phpbb-fr.com/telechargements/ pack complet
Le répertoire /forum/ext/RefugesInfo/couplage/... contient une extension telle que définie à partir de PbpBB 3.1, qui vient compléter le fonctionnement du forum tout en ayant des fichiers distints.
L'architecture et les fichiers de l'extension sont ici : https://github.com/RefugesInfo/www.refu ... o/couplage
Les tables du nouveau forum sont préfixées phpbb3_ et ne sont pas modifiées non plus.
Il sera possible de suivre les évolutions en utilisant les procédures d'upgrade de PhpBB sans impacter les autres fichiers.
Modifié en dernier par Dominique le 04 mai 2017, 16:34, modifié 2 fois.
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

Premier problème connu : sur PhpBB3, le chargement des fichier image dans un post du forum se fait sur la page de saisie et est accompagnée d'une barre de progression qui signale quand le fichier est chargé.
Si on valide le post avant que toutes les chargements soient terminés, on obtient une "ERREUR HTTP" (sans plus de commentaires)
Il ne s'agit pas d'un bug à proprement parlé mais du comportement de PhpBB (qui semble normal aux développeurs de PhpBB)
Je ne me suis pas lancé dans la correction des bugs et des aberrations de PhpBB.

Question On laisse comme ça ? (répondre en ***EDIT***)

sly : donc là, je suis censé éditer ton message et écrire ma "réponse" ? Bon, tentons : donc ben, oui on s'en fiche, si l'utilisateur ne surveille pas la barre qui bouge. Bon, sont un peu bizarre chez phpbb, un appel javascript pour griser ou non le bouton "envoyer" ne m'aurait pas semblé impossible, bref, ça le fait comme ça.
Modifié en dernier par Dominique le 04 mai 2017, 16:35, modifié 1 fois.
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

Deuxième problème connu :
Quand on est dans le forum, on ne dispose ni de l'* de modération ni du WiKi dans le bandeau du haut.
En effet, il faudrait aller assez loin dans la récupération du contexte de WRI dans le forum pour pouvoir les afficher et, pour ça, dupliquer une partie non négligeable du code.

J'ai fait l'impasse considérant que ce n'était pas vital.
D'accord ou pas ? (répondre en ***EDIT***)


sly:
----
poisse, dois-je comprendre que le bandeau dans la partie forum est une re-copie à 100% du bandeau du reste du site ? Cela veut-il dire que toute modif dans le bandeau du site doit être répercutée sur la zone forum ? Est-il full statique ? Donc on ne peut pas avoir le "zone couvertes" dynamique, ou l'image qui change ?
vital, non bien sûr. (rien ne l'est !) mais c'est vrai qu'un bandeau qui change de contenu selon où on en est de la navigation c'est prout. Tentons de voir si on peut chercher une solution sans trifouiller le code de phpbb. Le template qui génère le bandeau permet-t-il le javascript ? si oui, peut on envisager qu'il ouvre une ressource et en écrire le html, par exemple appeler genre https://dom.refuges.info/bandeau-wri/ qui serait une route qui renvoi le code html du bandeau, donc mutualisé avec le reste et pré-traité par le code wri ?
----
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Dominique a écrit : je noterai l'avancement de la correction en ***EDIT*** sur chaque post.
Je ne suis pas sûr d'avoir compris : tu veux que les modérateurs éditent directement le message qui indique le bug puis le complète dans le même post ?
Et genre on écrit à la main :

Hop c'est bon ça marche parce que ça ou si
--
sly le 04/05/2017 16h42


?
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

sly a écrit :
Dominique a écrit : je noterai l'avancement de la correction en ***EDIT*** sur chaque post.
Je ne suis pas sûr d'avoir compris : tu veux que les modérateurs éditent directement le message qui indique le bug puis le complète dans le même post ?
Et genre on écrit à la main :

Hop c'est bon ça marche parce que ça ou si
--
sly le 04/05/2017 16h42

?
Je pensais que tout le monde crée 1 post par bug qu'il trouve.
Et quand je l'ai corrigé, je marque ***EDIT*** corrigé dessus.

Autre solution 1 sujet par bug dans ce forum avec un mot clé [phpbb3]
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Dominique a écrit : Je pensais que tout le monde crée 1 post par bug qu'il trouve.
Et quand je l'ai corrigé, je marque ***EDIT*** corrigé dessus.
Ok, j'avais compris ça, je me demandais juste "et si tu as besoin de précision" mais on verra plus tard.

Bon, ok pour ça dans un premier temps, on verra bien selon le volume. Comme je commence à en avoir l'habitude, souvent quand j'ai demandé de l'aide sur une zone de test, ça n'a pas donné grand chose, trop peu concret, demandeur de temps, les utilisateurs/modérateurs ont commencé à me remonter les bugs quand c'était en prod, dans un pur style fonctionnel :
"tiens, j'ai modifié ça et j'ai une erreur"

On ne peut en vouloir à personne

***EDIT (DOM)*** L'essentiel est d'avoir tout bon du premier coup sur la récup de la base. Sinon pour les fonctionnalités, on peut corriger après.
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

manque de la favicon sur le forum

Message par sly »

manque de la favicon sur le forum

***EDIT DOM*** CORRIGE
Avatar du membre
Dominique
Messages : 3704
Enregistré le : 08 avr. 2006, 21:58

Message par Dominique »

Sly a écrit :dois-je comprendre que le bandeau dans la partie forum est une re-copie à 100% du bandeau du reste du site ? Cela veut-il dire que toute modif dans le bandeau du site doit être répercutée sur la zone forum ? Est-il full statique ? Donc on ne peut pas avoir le "zone couvertes" dynamique, ou l'image qui change ?
vital, non bien sûr. (rien ne l'est !) mais c'est vrai qu'un bandeau qui change de contenu selon où on en est de la navigation c'est prout. Tentons de voir si on peut chercher une solution sans trifouiller le code de phpbb. Le template qui génère le bandeau permet-t-il le javascript ? si oui, peut on envisager qu'il ouvre une ressource et en écrire le html, par exemple appeler genre https://dom.refuges.info/bandeau-wri/ qui serait une route qui renvoi le code html du bandeau, donc mutualisé avec le reste et pré-traité par le code wri ?
----
Le bandeau est bien commun (voir /vues/_bandeau.html)
Le pb, c'est de lui fournir les bonnes variables PHP, ce que je tente ici : https://github.com/RefugesInfo/www.refu ... hp#L55-L68

ça va bien pour les autorisations qui se transposent sans pb, moins pour la liste des wiki
On peut se demander si c'est bien utile de générer cette liste en PHP et si on ne pourrait pas simplement la mettre en html dans _bandeau.php
Pour moi, elle n'est pas plus dynamique là : https://github.com/RefugesInfo/www.refu ... ki.php#L87
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Message par sly »

Dominique a écrit : ça va bien pour les autorisations qui se transposent sans pb, moins pour la liste des wiki
On peut se demander si c'est bien utile de générer cette liste en PHP et si on ne pourrait pas simplement la mettre en html dans _bandeau.php
Pour moi, elle n'est pas plus dynamique là : https://github.com/RefugesInfo/www.refu ... ki.php#L87
En effet, une liste dans un array ou du code html c'est une liste statique de toute façon.

Mais il y a une raison derrière ce choix, c'était, si je me souviens bien, de faire la chasse aux urls en dur pour gérer plus facilement un changement ultérieur éventuel de format d'url.
Ta tentative va donc à contre-courant ;-) (mais j'ai compris que c'était un essai)

genre si on doit passer de /wiki/page vers /wiki?p=$page ou vers /doc/page
dans un monde bien factorisé, on ne change le code qu'a un unique endroit

Peut être par contre que je suis allé un peu loin par rapport à simplement utiliser
$config["base_wiki"]."licence"
plutôt que :
lien_wiki("licence")

Donc, ça me va de laisser tomber la fonction lien_wiki de tout le site et de remplacer dans le bandeau
$vue->lien_wiki["liens"]
par
$config["base_wiki"]."liens"


***EDIT DOM****
ça se précise pour la liste des wiki dans le bandeau car elle existe déjà en doublon en dur : https://github.com/RefugesInfo/www.refu ... #L138-L144
Avatar du membre
sly
Messages : 5041
Enregistré le : 29 févr. 2004, 17:59
Localisation : Chambéry - Savoie

Pas de menu "zones couvertes"

Message par sly »

Pas de menu "zones couvertes" :
Proche du cas "wiki"

Toutefois, si pour le cas du wiki ça va se gérer en jetant la fonction lien_wiki, le cas de l'* de modération, ou du menu "zones couvertes" pourrait reposer le même type de problème: on arrive pas/mal à incorporer des fonction wri dans phpbb.

J'ai vu ton code dans listener.php et j'ai vu ton inclusion du config.php de wri, je me suis dis, après tout, si ça marche pour le config.php pourquoi ça ne marcherait pas pour tout autre modèle.
J'ai l'impression que c'est le "global $config" que phpBB n'aime pas dans les différentes fonctions.
Un petit print_r place sur la voie, la variable $config est déjà utilisée par phpBB et contient déjà des tas de choses.
Quand les fonctions wri font un "global $config" celui-ci est vidé des infos dont elles ont besoin et rempli des config propres à phpbb.
Pas simple...


***EDIT DOM***
Bon, là on dépasse le simple bug : ça touche trop de points. Une réflexion d'archi s'impose.
La difficulté, c'est l'autoload des includes WRI qui ne cohabite pas bien avec PhpBB.
Je regarde ça en profondeur pour une solution élégante.


***EDIT DOM*** CORRIGE
Comme j'adore résoudre beaucoup de problèmes compliqués avec une solution simple, j'ai fait comme ça : https://github.com/RefugesInfo/www.refu ... hp#L56-L69