Gérer des fiches de joueurs avec TW5 [Résolu]


#1

Bonjour à tous/toutes ! Tout d’abord je tiens à dire que je ne connais pas grand chose au code de tiddlywiki, ne maitrisant actuellement qu’un peu de css/html/javascript …

Je suis MJ et voudrais utiliser tiddlywiki pour gérer mes fiches de joueurs (pour un jeu de rôle donc), et pour cela j’utilise des DataTiddlers. Pour chaque joueur, je crée deux tiddlers, le premier est un DataTiddler (pour entrer les données du joueur) et l’autre un tiddler normal qui affiche les données de manière plus esthétique.
Le DataTiddler ressemble à ceci:

[BD-John] -> nom du datatiddler
NomJoueur: John
Niveau: 28

Le tiddler générant la feuille de joueur ressemblera à ceci (par exemple):

[FicheJoueur-John] -> nom du tiddler
Le joueur s'apelle {{BD-John##NomJoueur}} et est au niveau {{BD-John##Niveau}}.

Le problème est que chaque fois que je crée une nouvelle fiche joueur, je dois changer le nom de la base de données pour chaque champ, et il y a plus d’une centaine de champs …

Serait-il possible de récupérer le nom du tiddler fiche de personnage pour rechercher automatiquement les données dans le DataTiddler correct? Cela me ferait gagner beaucoup de temps.

Donc par exemple, si la fiche de joueur s’apelle FicheJoueur-Bob, tout les champs de la fiche se rempliront en allant chercher leur données dans la base de donnée “BD-Bob”.

Encore une fois, mes excuses si ce problème est facile à résoudre, j’ai recherché dans le wiki et le groupe de discussion mais j’ai pas réussi à trouver plus d’infos sur les datatiddler :confused:

Je vous remercie d’avoir lu ce post.


#2

MAJ : J’ai trouvé une réponse à mon problème ! Il suffit d’utiliser cette syntaxe :

<$tiddler tiddler={{{ [is[current]removeprefix[CharacterSheet]addprefix[BD]] }}} >
   The player is named {{##PlayerName}} and is at the lvl{{##Level}}... etc.
</$tiddler>

Qui permet de calculer le titre de la base de donnée à utiliser en remplaçant “CharacterSheet” par “Base de donnée”.


#3

Bonjour @Telumire

J’ai testé. C’est bien vu et intéressant.

Pour plus de clarté dans ton exemple, tu devrais remplacer

<$tiddler tiddler={{{ [is[current]removeprefix[CharacterSheet]addprefix[BD]] }}} >
The player is named {{##PlayerName}} and is at the lvl{{##Level}}… etc.
</$tiddler>

par

<$tiddler tiddler={{{ [is[current]removeprefix[FicheJoueur]addprefix[BD]] }}} >
The player is named {{##NomJoueur}} and is at the lvl{{##Niveau}}… etc.
</$tiddler>

puisque les champs du tiddler BD-John sont notés en français.

et juste de préciser que chaque nouveau tiddler “~FicheJoueur-[Nom du joueur]” devra donc contenir le code ci-dessus.

Ton exemple en démonstration ICI

Merci pour ce partage.


#4

Bonjour @prolegomenes,

cette solution n’est pas de moi mais de Eric Shulman, qui m’a répondu entre temps sur le groupe anglais ^^
Voici un screenshot de son message, pour ceux qui aimeraient avoir un peu plus de détails sur le fonctionnement du code fournit :slight_smile:

En tout cas merci d’avoir mis en ligne cet exemple, je pense que ce site vas beaucoup m’aider à l’avenir !