JeuWeb - Crée ton jeu par navigateur
Système de Wiki - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Système de Wiki (/showthread.php?tid=3322)

Pages : 1 2


Système de Wiki - djidi - 10-10-2011

Bonjour,

Ca fait longtemps que je pense à une problématique de mon site que j'avais laissé de côté mais qu'il faudrait que je résolve assez vite désormais.
Mon site permet aux utilisateurs de créer des tutoriels pour les différents jeux accessibles sous forme d'un Wiki : Chaque tutoriel peut ensuite être édité par n'importe quel autre utilisateur.

Mon problème viendrait de deux utilisateurs qui éditeraient le même tutoriel au même moment. Le travail du premier serait totalement effacé par celui du second.

Du coup, comment faire pour éviter ce problème ?

Merci d'avance.


RE: Système de Wiki - Sephi-Chan - 10-10-2011

Il suffit d'opter pour une verrou optimiste : quand quelqu'un commence à éditer le document, ça crée en fait une nouvelle version avec un numéro de version incrémenté par rapport au dernier en date.


RE: Système de Wiki - djidi - 11-10-2011

Donc je fais juste des versions ?
Parce que même avec cette méthode, le plus récent ne contiendra que les modifications de l'utilisateur B (Celles de l'utilisateur A étant la version N-1).
C'est comme ça que procèdent les wiki classiques ?


RE: Système de Wiki - niahoo - 11-10-2011

Le fonctionnement type est à mon sens un système de patch. Quand l'utilisateur A fait une modification d'une page, ton système enregistre la nouvelle version et peut logiquement faire la liste des modifications apportées par rapport à la version précédente, et les appliquera à la version visible (un peu le HEAD de git par exemple)

Quand l'utilisateur B va enregistrer sa nouvelle version, les modifications qui seront faites seront également appliquées à la version HEAD.

Après c'est peut être pas faisable facilement mais ça gère les accès concurrents.

Tu devrais installer mediaWiki (celui utilisé par wikipedia, je suppose donc qu'il est costaud) et voir ce que ça fait quand tu balances deux modifications à partir d'une même base.

Si eux n'ont pas jugé utile de le gérer je suppose qu'on peut s'en passer, et sinon tu peux regarder comment ils font.


RE: Système de Wiki - Sephi-Chan - 11-10-2011

Pardon mais avant de s'embêter à gérer la concurrence, je pense qu'il y a beaucoup plus simple à faire.

Un verrou optimiste couplé à un système qui permet d'intervenir sur de petites portions du document devrait déjà suffire à gérer de très nombreux contributeurs.

Ensuite, toujours sans toucher à la concurrence, quand l'utilisateur sauvegarde, on peut détecter s'il y a eu d'autres versions entre le début et la fin de son fork, et lui afficher un diff.

Enfin, pas de quoi s'embêter à mon avis : Keep it simple, et ce sera sûrement suffisant et très bien ! Et good enough is the new perfect. Smile

Mais je plussoie la consultation des sources de MediaWiki.


RE: Système de Wiki - djidi - 11-10-2011

Après test sur MediaWiki, celui-ci indique qu'un utilisateur a effectué des modifications.
Il affiche ensuite en dessous du formulaire, le formulaire contenant l'autre version, ainsi qu'un diff (et il dit ensuite "débrouille toi avec ca" Big Grin)
Je vais donc partir sur cette façon de procéder.

Pour le diff, si quelqu'un connait un script permettant de gérer correctement la comparaison de portions HTML je suis très intéressé.
J'avais essayé testé quelque-uns sur mon site, mais ça fonctionnait assez mal principalement avec les tableaux HTML.


RE: Système de Wiki - Sephi-Chan - 11-10-2011

Le diff te permettrait de cibler les portions différentes. Ensuite voilà ce que j'imagine : l'utilisateur voit les 2 versions côté à côté et en choisit une qui devient éditable, l'autre ne disparaît pas pour autant et ça lui permet donc de faire un merge manuel en assemblant à sa guise le contenu des deux versions.

Mais penses-tu vraiment avoir un tel besoin ? ^^


RE: Système de Wiki - niahoo - 11-10-2011

Ou sinon pourquoi tout simplement ne pas installer mediawiki, beaucoup de gens y sont habitués, wikipedia est plutot simple d'utilisation pour beaucoup ?


RE: Système de Wiki - djidi - 11-10-2011

Bah j'ai déjà plus de 180 pages avec du contenu HTML... et je trouve plus agréable d'avoir une syntaxe html qu'une syntaxe wiki.

@Sephi : Ce que j'ai besoin c'est que le dernier utilisateur à enregistrer son tutoriel puisse être au courant que des modifications ont étés faites pendant qu'il travaillait dessus et qu'il puisse les reporter facilement.
Le diff ce serait surtout pour mettre rapidement en valeur les modifications à reporter, ce qui est pas mal quand, pendant que l'un ajoutait du contenu, l'autre corrigeait des fautes d'orthographe ^^





RE: Système de Wiki - niahoo - 11-10-2011

(11-10-2011, 10:16 AM)djidi a écrit : Bah j'ai déjà plus de 160 pages avec du contenu HTML... et je trouve plus agréable d'avoir une syntaxe html qu'une syntaxe wiki.

Toi peut-être, mais surement pas les joueurs, et le but d'un wiki c'est quand même de pouvoir l'éditer à plusieurs …

(11-10-2011, 10:16 AM)djidi a écrit : @Sephi : Ce dont j'ai besoin c'est que le dernier utilisateur à enregistrer son tutoriel puisse être au courant que des modifications ont étés faites pendant qu'il travaillait dessus et qu'il puisse les reporter facilement.
Le diff ce serait surtout pour mettre rapidement en valeur les modifications à reporter, ce qui est pas mal quand, pendant que l'un ajoutait du contenu, l'autre corrigeait des fautes d'orthographe ^^

Je ne comprends pas car voir un diff te met bien au courant que des modifs ont été faites, et te permet de les reporter facilement. Donc est-ce simplement une remarque comme ça où n'as tu pas vu que tu te répondais à toi-même ?


Sinon pour revenir sur le HTML, je trouve ça vraiment chiant à écrire, mais j'aime beaucoup markdown par contre. À mon avis c'est vraiment un plus pour l'utilisateur. les balises c'est relou. même sur un forum les balises c'est relou. Ça demande de comprendre le principe du formatage de texte.
Bien sûr tu peux utiliser quelque chose dans le genre de tinyMCE mais alors pour les diff ça risque de pas être super facile à mettre en place !