User Tools

Site Tools

Translations of this page?:

en:template:advanced_string_variables

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Advanced String Variables ====== To get the value of a text field on the card, we can use the simple [[Text Variables|Text Variable]]. But sometimes, a more //complex// value is needed. For example, concatenating two strings. Some fields also propose different types of values, such as the [[Choice_Input|Dropdown Menu]], who has a selected value, and a selected text. Which one to display ? The **Advanced String Variables** exist for these situations. ===== Classic Use ===== An **Advanced String Variable** can be used by setting a canvas' field to a string that contains the token ''$myVariable$''. Unlike normal text variables, this variable can be set anywhere in the string : <code javascript> "text": "My Name is $name$" </code> You can even have multiple variables in the same string : <code javascript> "text" : "My Name is $name$ and I'm $age$ years old" </code> And that's it ! The following editable fields generate an **advanced string variable** : * [[Text Input|Input Text]] (get the text set in the field) * [[Multiline Text Input|Multiline Text]] (get the text set in the field) * [[Choice Input|Dropdown Menu]] (get the text displayed for the selected item) * [[Rich Text Field|Rich Text Field]] (get the displayed text, without the formatting) * [[color_picker|Color Picker]] (get the RGB color, and manipulate the color) * [[en:template:numeric_input_field|Numeric Input]] (get the numeric as a string) ===== Formatting ===== Sometimes, you could want to display some values inside a text in **bold** or //italic//. You could use a [[en:template:rich_text_field|Rich Text Field]] to achieve this, but what if your text is built from different strings ? Well, you just have to specifiy the formatting. Define your built-in string as normal, attached to the ''text'' property of a ''textbox''. Note that a simple ''text'' element will not support formatting. Then, add the ''styles'' property to your ''textbox''. This property will get a string value that starts with ''££'' (in order to specify it's a styles array), and followed by your built-in string. Then, add special characters to indicate your bold or italic text : <code javascript> "canvasFields": [ { "type": "textbox", "text": "My $text$ is bold or italic", "styles": "££My $text$ is **bold** or //italic//" } ] </code> As you can see, you repeat twice your built-in string. In ''text'', you have the string as it will be displayed on the card. Then, in ''styles'', you specify that it's a styles array with '££'. And then, you encapsulate your **bold** text by the characters ''%%**%%'', and your //italic// text by ''%%//%%''. You can encapsulate variables (''%%**$myVariable$**%%'')but don't forget to //close// the encapsulation. ===== Special values ===== Some fields have special values accessible from the **advanced string variables**. If nothing is specified, then only the classic use will work. A special value is used in the same way as a normal **advanced string variable**, but requires the use of an attribute : <code javascript> "text" : "My Name is $name$ and I'm $age.value$ years old" </code> As you can see, we have added the ''value'' attribute to the ''age'' variable by using a dot between the variable & the attribute. The existing attributes are listed below. ==== Text Input ==== Text Input fields have 3 special values : * ''text'' is the text displayed in the field, that the user selected (default value if none is indicated) * ''upper'' is the text displayed in the field, in upper case * ''lower'' is the text displayed in the field, in lower case ==== Multiline Text Input ==== Multiline Text Input fields have 3 special values : * ''text'' is the text displayed in the field, that the user selected (default value if none is indicated) * ''upper'' is the text displayed in the field, in upper case * ''lower'' is the text displayed in the field, in lower case ==== Dropdown Menu ==== Dropdown Menus have 6 special values : * ''text'' is the text displayed in the field, that the user selected * ''upper'' is the text displayed in the field, in upper case * ''lower'' is the text displayed in the field, in lower case * ''value'' is the value of the selected option, that can be more of a constant, with less information. * ''image'' is the url / data-url of the ''image'' property of the selected option, or of the ''miniature'' property if there is no ''image'', or an empty string if there is no ''image'' and no ''miniature''. * ''miniature'' is the url / data-url of the ''miniature'' property of the selected option, or of the ''image'' property if there is no ''miniature'', or an empty string if there is no ''miniature'' and no ''image''. ==== Rich Text Field ==== Rich Text Fields have two special values : * ''text'' is the text entered in the field, without the formatting (bold, italic). * ''html'' is the html version of the text (with tags ''<strong>'' for bold, ''<em>'' for italic, ''<br/>'' for linebreaks, ... ==== Color Picker Field ==== Color Picker Fields have several special values. See the [[Color_Picker#special_values|main page]] of this type of field.

en/template/advanced_string_variables.1498123180.txt.gz · Last modified: 2017/06/22 11:19 by Nicolas Ronvel