Ouvrir un tiddler en fonction de la valeur de champs

Bonjour à tous,

Une variante de mon précédent poste Concaténer deux champs

CONTEXTE:

On demande à un utilisateur de choisir parmi deux listes de menu déroulants, quel type de menu il souhaite créer

  • Le type de menu: (simple ou déroulant)
  • Son emplacement: (LeftBar, NavBar ou SideBar)

Les choix opérés sont stockés dans deux champs:

-type
-emplacement

On a donc 6 solutions possibles :

  • SimpleLeftBar
  • SimpleNavBar
  • SimpleSideBar
  • DéroulantLeftBar
  • DéroulantNavBar
  • DéroulantSideBar

À chaque solution correspond un tiddler permettant à l’utilisateur de concevoir le menu qu’il a choisi.

Les tiddlers sont déjà crées comme indiqué ci-dessus.

On demande au visiteur de confirmer son choix avant d’appuyer sur la touche “Créer”

Vous avez choisi de créer un menu {{!!type}} dans la {{!!emplacement}}

QUESTION :

Comment puis-je paramétrer le bouton “Créer” pour qu’il ouvre le tiddler correspondant au choix de l’utilisateur

Par exemple si l’utilisateur à choisi “Déroulant” et “SideBar”, le bouton doit ouvrir le tiddler DéroulantSideBar.

Any clue ?

Merci

Salut Eric,

J’ai fait comme tu m’as appris, dans un tiddler ‘Ouv’

\define myway(par1 par2)
<$button>
<$action-sendmessage $message="tm-new-tiddler"

title="$par1$$par2$"

/>
Créer
</$button>
\end

<$select tiddler='Ouv' field='ouvtype'>
<option>simple</option>
<option>déroulé</option>
</$select>
<$select tiddler='Ouv' field='emplacement'>
<option>LeftBar</option>
<option>NavBar</option>
<option>SideBar</option>
</$select>

Vous avez choisi de créer un menu {{!!ouvtype}} dans la {{!!emplacement}}
<$macrocall $name="myway" par1={{!!ouvtype}} par2={{!!emplacement}}/>

Bon weekend

1 « J'aime »

Bonjour Jean-Bernard,

Whaoo!:heart_eyes:

Voilà ! c’est presque exactement ça.

Le seul dernier souci est que, suite à la validation du bouton Créer, les tiddlers sont ouverts en mode édition, alors qu’il faudrait qu’ils s’ouvrent en mode visualisation.

En fait les tiddlers ainsi crées par concaténation existent déjà et contiennent les codes permettant la création physique - par l’utilisateur - de nouveaux menus. (en voici un exemple avec DéroulantSideBar)

En quelque sorte, il faudrait remplacer Le widget tm-new-tiddler par un widget de type tm-open-tiddler.

En tout cas, merci pour ton code qui démontre bien le process de concaténation via une liste de choix. C’est vraiment instructif !

1 « J'aime »

Ah ! Dans ce cas, ne te casse pas la tête et modifie l’action de ton bouton ainsi :

\define myway(par1 par2)
<$button>
<$action-navigate $to="$par1$$par2$"/>
Ouvrir
</$button>
\end

https://tiddlywiki.com/static/ActionNavigateWidget.html

Bon weekend :cloud_with_rain:

YOU MADE MY DAY !!
Merci.

Salut ! a tous !!
Quand je copie le code dans Tiddlywiki 5.1.21 ben çà marche pas !!
Une solution ??