В предыдущих версиях Chronoforms значения полей или параметров запроса можно было получать и выводить в шаблоне почтового сообщения путем использования шоткода, который представлял собой имя поля, заключенное в фигурные скобки.

В Chronoforms 6 реализован новый механизм манипулирования данными формы, который существенно упрощает веб-мастеру целый ряд задач, для решения которых в предыдущих версиях компонента требовался значительный объем php-кода. Теперь, используя команды chrono syntax (или шоткоды), можно получать данные из запроса и передавать их любому элементу формы, включая интерфейс управления полями, шаблон сообщения, производить любые операции с базой данных сайта.

Различные команды chrono syntax при составлении шоткода можно комбинировать. Разработчиками на текущий момент реализован один уровень вложенности команд, который позволяет поместить в один шоткод, между двумя фигурными скобками, еще одно или несколько выражений (но уже в круглых скобках).

Освоение приемов использования шоткодов очень важно, и поможет не только упростить процесс работы над созданием форм, но и позволит существенно расширить их функциональность.

В этой статье приводится описание и синтаксис шоткодов, а также примеры их использования на формах Chronoforms 6.

Описание и синтаксис шоткодов на формах Chronoforms 6


{view:field_name}

Используется вывода представления. Соответствующий элемент должен присутствовать на форме во вкладке «Конструктор (Design)».

Синтаксис:

  • -//-//-

{function:function_name} или {fn:function_name}

Используется для вызова функции, созданной во вкладке редактора форм «Настройка (Setup)».

Синтаксис:

  • -//-//-

Примеры:

  1. Вызов функции «PHP» из события «load» формы в коде функции пользовательского события.

{var:function_name}

Используется для получения доступа к переменной в результате срабатывания (!) функции, где function_nameимя функции, созданной во вкладке редактора форм «Настройка (Setup)».

Почти каждая обработанная функция (action) возвращает переменную результат. Типы возвращаемой переменной могут быть различными, как логические значения (true или false), так и массивы данных (array). Функция function_name, результат работы которой нужно получить, может быть вызвана  с помощью кода {function:function_name}.

Так, например, обработчик  Email возвращает в качестве результата логическое значение (true или false), а функция «Read data» вернет массив с содержимым полей таблицы БД.

Значение переменной доступно только после (!!!) обработки функции.

При использовании элемента PHP в соответствующем поле можно  использовать также следующий код для установки и получения переменных.

Синтаксис:

  • {var:function_name} — доступ к переменной.
  • {var.pr:function_name} — печать переменной.

Примеры:

  1. Получение массива данных, возвращаемых обработчиком «Read data» в коде функции «PHP» (php-альтернатива шоткоду).
  2. Загрузка массива, возвращаемого двумя функциями «PHP», в качестве значений для элементов «options» для поля с типом «radio».
  3. Получение элемента из массива, возвращаемого функцией «PHP».
  4. Получение элемента из массива, возвращаемого функцией «PHP» с помощью php-кода (альтернатива команде chrono syntax).

{event:event_name}

Используется для отображения содержимого события, которое должно быть установлено и может содержать HTML-код или другие инструкции CF6.

Синтаксис:

  • -//-//-

{data:parameter_name}

Используется для получения параметра url (все, что идет после символа «?») или входного значения поля формы.

Синтаксис:

  • {data:} — получение массива значений формы полностью. Может использоваться для сохранения значений всех полей формы в БД (например, когда используется функция-обработчик «Save Data»).
  • {data:array.field}  — получение элемента field из массива, который хранится в поле array.
  • {data:parameter_name}  — получение значения поля или параметра url.
  • {data:parameter_name/0}  — получение значения по умолчанию, если входного значения поля не существует.
  • {data.set:parameter_name$value} или {data.set:parameter_name$(var:function_name)} — установка value в качестве значения параметра.
  • {data.empty:parameter_name} — проверка пустых значений parameter_name, в результате которой возвращается true или false.
  • {data.count:parameter_name}  — получение количества элементов в массиве parameter_name (например, если parameter_name является групповым полем checkboxes).
  • {data.pr:parameter_name} или {data.pr:} — вывод (печать) содержимого parameter_name или всей формы в текстовом формате.
  • {data.br:parameter_name} — конвертация в содержимом текста parameter_name символов перевода каретки в теги разрыва строки <br> (например, для полей типа textarea).
  • {data.jsonen:parameter_name} — кодировка содержимого parameter_name в формат json.
  • {data.jsonde:parameter_name}  — декодирование содержимого parameter_name из формата json.
  • {data.join:parameter_name} или {data.join[,]:parameter_name} — объединение содержимого массива parameter_name и преобразование в одну строку.
  • {data.split:parameter_name} — разбивка содержимого parameter_name на массив элементов.
  • {data.clear:parameter_name} — очистка значения (установка null) в поле parameter_name.

При использовании функции-обработчика «PHP» или подобных элементов, где данные шоткоды применить не получится, можно использовать php-код в качестве альтернативы для получения или установки входных значений полей формы.

Примеры:

  1. Получение значения поля «dropdown» в коде функции «PHP» (альтернатива шоткоду на php).
  2. Передача значения переменной в поле «hidden» из кода обработчика «PHP» (php-альтернатива шоткоду).
  3. Установка значений заполненных пользователем полей формы в поля интерфейса функции «Email».
  4. Вывод значений текстовых полей формы в теле сообщения для страницы сайта, генерируемого с помощью функции «Message».

{date:}

Используется для получения текущей даты и времени или установки их необходимых значений в формате MySQL. Для получения или установки значений региона и временной зоны в качестве параметров требуется использование только тех значений, которые распознаются встроенными методами языка PHP (список поддерживаемых временных зон можно посмотреть здесь). В противном случае команда выдаст ошибку.

Синтаксис:

  • {date:} — получение текущей даты UTC в формате Y-m-d H: i: s.
  • {date:H:i} — передача строкового параметра php-форматирования для получения текущей даты и/или времени в виде H:i.
  • {date/site:} — установка часового пояса, используемого сайтом, в качестве значения часового пояса для использоания на форме.
  • {date:Y-m-d$(var:some_date_value_or_timestamp)} — передача переменной даты/времени some_date_value_or_timestamp для переформатирования ее/его значения в вид Y-m-d.
  • {date/time_zone:format_string} — установка временной зоны time_zone для текущего времени в формате format_string.
  • {date/region/time_zone:format_string} — установка региона region и временной зоны time_zone для текущего времени в формате format_string.
  • {date:format_string$+ xx days yy hours} — установка сдвига во времени в сторону увеличения/уменьшения (+/-) текущего значения на xx days yy hours и вывод в формате format_string.

Примеры:

  1. Установка московской временной зоны в теле функции «Custom code» для текущего времени и даты.
  2. Установка сдвига во времени на будущее и прошедшее значения в коде «Custom code».
  3. Форматирование времени, переданного в качестве переменной с помощью вложенной chrono syntax команды {data:}. Шоткод используется в поле «Тело документа» интерфейса управления функцией-обработчиком «Email».

{user:user_param}

Используется для получения информации user_param о текущем зарегестрированном пользователете, который просматривает страницу с формой.

Синтаксис:

  • {user:id} — получение идентификатора текущего зарегистрированного пользователя.
  • {user:username} — получение имени пользователя.
  • {user:email} — получение e-mail адреса пользователя.

{value:string}

Возвращает переданную строку string как значение php.

Синтаксис:

  • -//-//-

{session:parameter_name}

Используется для получения значения parameter_name, которое может устанавливаться, в том числе, с помощью функции «Save to session», созданной во вкладке редактора форм «Настройка (Setup)».

Синтаксис:

  • {session:variable_name} — получение переменной сеанса variable_name.
  • {session.set:var_name$value} — установка значения value для переменной сеанса var_name.
  • {session.clear:var_name} — очистка значения у переменной сеанса var_name.

При использовании функции-обработчика «PHP» или подобных элементов, где команды chrono syntax неприменимы, можно использовать php-код в качестве альтернативы для получения или установки значений переменных текущей сессии.

Примеры:

  1. Установка новой переменной сессии и присвоение ей значения с помощью шоткода.

{redirect:event_name} или {redirect:URL}

Используется для перенаправления на другое событие или на другой URL-адрес, а так же для передачи GET-параметров.

Синтаксис:

  • -//-//-

{url:}

Используется для получения URL-адреса соединения или события.

Синтаксис:

  • {url:_self} — получение переменной адреса текущей страницы.
  • {url:event_name} — получение относительного адреса события event_name.
  • {url/full:event_name} — получение абсолютного адреса события event_name.
  • {url:event_name$param_name=value} — передача входного значения value GET-параметру param_name, с которым оперирует событие event_name.

Примеры:

  1. Получение URL-адреса текущей страницы в качестве входного значения для функции «Redirect».

{path:}

Используется для получения пути к определенному каталогу в файловой системе сайта. Следует обратить внимание, что при просмотре пути со стороны серверной части сайта, выходная строка будет включать в себя также и папку «administrator».

Синтаксис:

  • {path:root} — получение пути к корневой папке сайта (например: /home/my_domain/my_domain.name).
  • {path/url:} — получение URL-адреса к папке chronoforms (например: https://my_domain.name/components/com_chronoforms6/chronoforms).
  • {path:} — получение пути к папке chronoforms (например: /home/my_domain/my_domain.name/components/com_chronoforms6/chronoforms).

{type_of_message:text}

Используется для вывода системных сообщений Joomla указанного типа type_of_message с содержимым text

Синтаксис:

  • {error: text} — сообщение об ошибке.
  • {success: text} — сообщение при успешном завершении задачи.
  • {info:text} — информационное сообщение.
  • {warning:text} — предупреждение.

Примеры:

  1. Вызов сообщения с помощью echo в коде обработчика «PHP».

{stop:} или {end:}

Используется для остановки исполнения любого кода, следующего после точки размещения.

Синтаксис:

  • -//-//-

Примеры:

  1. Остановка исполнения скрипта формы в коде функции «Custom code».

{lang:localized_variable_name} или {l:localized_variable_name}

Используется для вывода языкового перевода, представленного в качестве значения языковой переменной localized_variable_name с использованием активного языка сайта. Текстовые переводы должны быть определены во вкладке «Локализации» (Locales) редактора формы.

Синтаксис:

  • -//-//-

Примеры:

  1. Вызов переменных локализации в метке поля «dropdown», а также для элементов «options».

{page:param}

Используется для получения параметра param текущей страницы (посещаемой пользователем), на которой расположена форма.

Синтаксис:

  • {page:url} — получение ссылки на текущую страницу с формой.
  • {page:title} — получение заголовка текущего материала Joomla, на странице которого расположена форма.

Примеры:

  1. Передача заголовка текущей статьи с формой в поле интерфейса управления визуальным элементом «hidden».

{debug:}

Используется для вывода отладочной информации о текущем шаге процесса обработки события формы.

Синтаксис:

  • -//-//-

Примеры:

  1. Вывод отладочной информации в коде функции «Custom code» события «submit».

{uuid:}

Генерирует хэш-строку из 36 символов (5 блоков, разделенные знаком «-»), которая может использоваться в качестве универсального уникального идентификатора в процессе манипуляций над данными формы.

Синтаксис:

  • -//-//-

{rand:}

Используется для получения рандомного 10-значного целого числа (интервал не поддерживается).

Синтаксис:

  • -//-//-

Примеры:

  1. Генерация случайного числа в коде обработчика «Custom code».

{ip:}

Используется для получения и вывода IP адреса текущего пользователя в формате строки.

Синтаксис:

  • -//-//-

Примеры:

  1. Получение и вывод текущего IP-адреса пользователя в поле «Text field» формы.
***

На данный момент работа над материалами статьи продолжается…

Хостинг SpaceWeb