This shows how to add a custom question variable. It requires ThumbList version 2023-01-18 or newer.
Add new function to config.php:
We define a new function that will be called with different pieces of information about a picture, and it can modify some of the question variables or add new ones.
$ThumbList['CustVarFunction'] = 'MyQuestionVars'; function MyQuestionVars($filepath, $opt, &$QVars0, &$QVars){ # filename without the extension .jpg $basename = $QVars['?i']; # replace dots and underscores with spaces $mycaption = preg_replace('/[._]+/', ' ', $basename); # space CamelCase $mycaption = AsSpacedUTF8($mycaption); # Uppercase Words $mycaption = mb_convert_case($mycaption, MB_CASE_TITLE, "UTF-8"); # add new question variable $QVars['?x_mycaption'] = $mycaption; # instead, we could rewrite ?i # $QVars['?i'] = $mycaption; }
The function will be called with the following arguments:
$filepath
: the path to the file on the server (e.g. uploads/Group/pic.jpg)$opt
: the arguments from the(:thumblist ...:)
directive$QVars0
: an array with the question-variables ?1, ?2, ?3 and ?4, see documentation.$QVars
: an array with the question-variables except ?1, ?2, ?3 or ?4, see documentation.
You can add new variables, it is recommended to add custom variables prefixed by "?x_" for like in the example "?x_mycaption". If in the future the Thumblist core adds new variables, they will never start with "?x" so there is a smaller risk of things breaking then.
The new question variable can be used in a wiki page, or in one of the configuration variables, and also as page variables in ImageTemplate (see documentation).
In a wiki page
Simply write your (new) question-variables as usual.
In the example below, we show both the "?i" variable, the base name of the picture, and our new "?x_mycaption" variable that is derived from the base name:
(:thumblist count=16..19 cols=2 px=200 captionfmt="?i?n?x_mycaption":) | ||||