Поля переменных данных

В любом месте абзаца или на отдельной строке секций .text и .htmx можно вставить поле переменных данных. Эти объекты используются для вставки информации, которая может часто обновляться, вычисляться встроенными в документ программами, зависеть от конкретного пользователя или установок конфигурации.
Начало поля - комбинация символов {*
Конец поля - комбинация символов *}
{*описание поля*}
После символов начала поля должен идти символ кода операции:
! - вставка внутренней ссылки;
$ - вставка внешней ссылки;
@ - вставка значения переменной;
= - вставка значения выражения;
? - ввод значения переменной.
При вставке внутренних ссылок (!) далее можно указать либо номер (имя) записи документа, на который должна указывать ссылка, либо полный текст запроса с параметрами. В первом случае будет сформирована ссылка, переход по которой откроет указанный документ. Во втором случае - ссылка, переход по которой вызовет выполнение затребованной функции. Второй способ для начинающих пользователей не актуален, поскольку в этом случае нужно знать коды операций, выполняемых системой, а также назначение параметров, которые должны быть ей переданы. Опытные пользователи, пройдя по разным ссылкам сайта могут эмпирически догадаться, какие коды операций следует использовать при вызове тех или иных функций и какие параметры им нужно передавать.
После указания номера записи или URI можно через пробел указать текст, под которым будет фигурировать ссылка. Если этого не сделать, то в качестве текста будет подставлен сформированный код запроса, что обычно выглядит очень неэстетично.
Ссылки формируются таким образом, что результат перехода будет отображаться в новой вкладке (окне) браузера. Если нужно, чтобы результат был отображен в текущей вкладке (окне), то после символа ! следует указать двоеточие (:).
Примеры написания полей внутренней ссылки:
{*!46 Открыть документ с номером 46 в новой вкладке*}
{*!:46 Открыть документ с номером 46 в текущей вкладке*}
{*!index.php?act=29 Открыть меню пользователя*}
{*!:?act=96 Вывести общую статистику доступа к сайту в текущей вкладке*}
Результат интерпретации полей:
Открыть документ с номером 46 в новой вкладке
Открыть документ с номером 46 в текущей вкладке
Открыть меню пользователя
Вывести общую статистику доступа к сайту в текущей вкладке
Разумеется, оформить ссылку можно и напрямую, не используя поля (A href=...), но для внутренних ссылок это будет неправильно. Дело в том, что для авторизованных пользователей к любому запросу, адресуемому внутрь сайта система автоматически прикрепляет параметр ps, с уникальной для каждого пользователя (да еще и изменяющейся во времени!) информацией. Если напрямую написать A href=..., без пристыковки параметра ps, то после перехода по такой ссылке система будет считать, что к ней обратился неавторизованный пользователь. То есть при формировании документов, содержащих ссылки на другие документы сайта без полей внутренних ссылок обойтись нельзя (если, конечно, не использовать встроенную функцию link() - см. раздел "Встроенные функции").
При вставке внешних ссылок правила оформления полей те же, но запрос на внешний ресурс нужно писать полностью. Ссылка будет сформирована без ps. Здесь уже можно напрямую использовать A href=... вместо поля.
Пример вставки значения переменной:
@a=230
Значение переменной a={*@a*}
Значение переменной a=230
Пример вставки значения выражения:
Результат вычисления sin(534)+cos(99)={*=sin(534)+cos(99)*}
Сейчас у вас {*=now()*} сначала дата, потом время
Ваше имя в системе {*=user()*}
Результат вычисления sin(534)+cos(99)=-0.030871217940234
Сейчас у вас 2017-07-24 11:42:10 сначала дата, потом время
Ваше имя в системе #54.198.147.221
Поля ввода значений переменных, в общем случае, имеют следующую структуру:
?имя:тип:д1:д2
имя - имя переменной
тип - тип переменной
д1 - параметр длины1
д2 - параметр длины2
Имя переменной должно начинаться с латинской буквы, далее - латинские буквы, цифры или знак подчеркивания (_).
Тип переменной:
C строка символов;
L checkbox;
M многострочная переменная;
P поле ввода пароля.
Для типов C и P: д1 - видимая длина поля ввода, д2 - максимальная длина вводимой строки. По умолчанию 10 и 60.
Для типа M: д1 - число строк видимой части поля ввода, д2 - число столбцов видимой части поля ввода. По умолчанию 10 и 60.
Для типа L д1 и д2 игнорируются.
Пример:
Использование полей ввода позволяет превратить документ в бланк со свободным расположением "окошек" для ввода данных. Здесь будет вводиться переменная x={*?x}. Далее, введем переменную y={*?y:8:100*}. А здесь ответим на вопрос: {*?be_or_not:L*} - быть или не быть? И далее, конечно, надо пространно объяснить "почему?", "кто виноват?" и "что делать?". Для этого стоит перейти на следующую строку
{*?text:M:5:100%*}
Использование полей ввода позволяет превратить документ в бланк со свободным расположением "окошек" для ввода данных. Здесь будет вводиться переменная x= . Далее, введем переменную y= . А здесь ответим на вопрос: - быть или не быть? И далее, конечно, надо пространно объяснить "почему?", "кто виноват?" и "что делать?". Для этого стоит перейти на следующую строку

Если Вы авторизованный пользователь, то в самом низу документа можно найти кнопку "Принять". Нажав ее можно сохранить, то, что Вы набрали. И эти значения сохранятся до тех пор, пока Вы их не измените сами. Для других читателей этого документа будут сохраняться другие значения.