В зависимости от версий компонента Chronoforms, пятой или шестой, настройка отправки файлов на формах обратной связи ничем принципиально не отличается. В обоих случаях на формах размещаются элементы, соответствующие полям типа «file» (одно или несколько), которые обязательно привязываются к функциям загрузки файлов и к функциям «Email» с помощью определенных параметров. Отличия существуют только в отношении функциональности всех этих элементов формы.

Настройка отправки файлов на формах Chronoforms 6

Настройка отправки файлов на формах Chronoforms 6 обычно не представляет никаких сложностей и сводится к трем этапам:

  1. Настройка поля «File Field»
  2. Установка и настройка функции «Upload files»
  3. Привязка поля «File field» к функции «Email»

Шаг 1. На форме размещается само поле «File field» путем перетаскивания мышью из группы «Fields», что находится во вкладке «Представления» (Views) раздела конструктора формы «Страницы» (Pages). Затем открывается для редактирования. Параметры элемента, необходимые для отправки файлов, указаны на рисунке ниже.

Настройка поля «File Field» на формах Chronoforms 6

Рис. 1

  1. Уникальное значение в поле «Имя» (Name) генерируется автоматически. Но если используется мультипликатор или же на форме есть несколько таких полей и очередное получено путем простого копирования, то это значение необходимо исправить.
  2. Переключатель «Загружать несколько файлов?» (Multi file select?) дает возможность для пользователя загружать по нескольку файлов с помощью единственного поля «File field». В зависимости от задачи, нужно установить переключатель в соответствующее положение или же оставить как есть. В случае применения динамического множителя, для полей «File field» внутри него разрешение загрузки нескольких файлов через одно поле не рекомендуется.
  3. В разделе «Настройки данных» (Data Settings) параметров поля «File field» для того, чтобы включить значение поля (которым является имя файла) в e-mail сообщение, нужно установить переключатель в положение «Включено».
  4. Переключатель «Загрузка на сервер» (Upload to server) из раздела  «Настроек загрузки и добавления вложений» (Upload and attachment settings) необходимо установить в положение «Включено». В противном случае файлы не будут отправлены, т. к. не будут загружены на сервер сайта. Все файлы, отправляемые вместе с формой по e-mail, загружаются по умолчанию в папку www\components\com_chronoforms6\chronoforms\uploads с помощью функции «Upload files». Поэтому нужно проследить, чтобы параметр автозагрузки был включен и там.
  5. Переключатель «Прикрепить к e-mail сообщению» (Attach to email) также должен быть включен, причем не только в настройках поля «file field» но и в привязанной к нему функции «Email». В противном случае файлы будут загружаться на сервер, но не будут отправляться вместе с электронным сообщением.
  6. Текстовый параметр «Расширения» (Extensions) имеет приоритет перед аналогичными настройками функции «Upload files» в том случае, если на форме используется только одно поле «File field». Не является обязательным. Заполняется в виде списка разрешений через запятую без пробела.
  7. Значение «Максимальный размер» (Max size) имеет тип integer и представляет собой максимально допустимый размер файла в килобайтах. Это значение также будет иметь приоритет лишь в случае использования на форме только одного поля «File field».Параметр также не является обязательным и его можно прописать позже, в соответствующих настройках обработчика «Upload files». Размер рассчитывается исходя из того, что в 1 мегабайте 1024 килобайт.

Шаг 2. Настройка функции «Upload files», которая и будет загружать файлы на сервер сайта в указанную папку для дальнейшей отправки вместе с письмом.

Эта функция имеет два собственных события — «success» и «fail». Для того, чтобы в случае ошибки загрузки форму можно было перезагрузить и предложить пользователю повторить попытку, понадобится другой обработчик — «Event loader». Его нужно взять в группе «Basic» и поместить в область собственного события «fail» функции «Upload files». По умолчанию «Event loader» содержит все необходимые параметры и его донастройка не требуется.

Обычно, донастройка «Upload files» также не требуется, но если полей «File field» на форме обратной связи несколько, или же необходима некоторая кастомизация параметров самих файлов, то сделать это можно путем изменения следующих опций (см. рис. 2):

Настройка  функции «Upload files» на формах Chronoforms 6

Рис. 2

  1. «Путь к папке загрузки» (Upload directory path) — обязательный параметр, указывающий на ту папку сервера, куда будут загружены предложенные пользователем файлы. По умолчанию это папка www\components\com_chronoforms6\chronoforms\uploads. При необходимости этот параметр можно заменить на абсолютный путь к другой папке сайта (например, /var/www/user/data/www/joomla.ru/images/files/).
  2. «Список расширений, разрешенных по умолчанию» (Default Allowed extensions list) — эти расширения будут использоваться системой в том случае, если они не указаны в пользовательской конфигурации файлов (см. п. 3).
  3. «Пользовательская конфигурация файлов» (Custom Files config) — этот параметр представляет собой многострочный список, где каждому полю «File field» соответствует одна строка. Указывать расширения следует после имени поля типа «file» и двоеточия без пробелов, через запятую. Например: field_name:ext1,ext2. Если на форме используется мультипликатор, то для указания имени однотипных полей «File field», дублируемых множителем используется латинская строчная буква «n». Формировать представление таких имен следует так, как указано в примере на рисунке 2. Здесь, слева показано значение параметра «Имя» в настройках поля «File field», расположенного в теле множителя.
  4. «Источник имени файла» (File name provider) — параметр, указывающий системе, как именно следует именовать загружаемый на сервер файл. Обычно, к имени каждого файла добавляется префикс, соответствующий дате и времени его отправки без разделителей. Например, по умолчанию файлу «cat.gif», отправленному на сервер 3 января 2015 года в 23 часа 42 минуты и 3 секунды, будет присвоено имя «20150103234203_cat.gif». Чтобы система этот префикс не добавляла, нужно скопировать автоматические значения параметров имени и расширения, расположенные в пояснительном тексте под полем и вставить их в него, разделив точкой, без пробелов (см. рис. 2).
  5. «Максимальный размер файла в Кб» (Max size in KB) — обязательный параметр, указываемый в виде целого числа без единицы измерения. Если полей на форме несколько, указывается самый большой.
  6. «Минимальный размер файла в Кб» (Min size in KB) — обязательный параметр, указываемый в виде целого числа также без единицы измерения. Если полей на форме несколько, указывается самый маленький.

Шаг 3. Привязка содержимого полей «File field» к отправляемой форме путем донастройки обработчика «Email». Для этого необходимо открыть его для редактирования и изменить всего два параметра в разделе «Настройки отправки» (Attachments settings) в зависимости от того, сколько полей «File field» имеется на форме.

Настройка  функции «Email» на формах Chronoforms 6 для отправки файлов

Рис. 3

  1. «Поля автовложения файлов» (Auto Atthach file fields) — параметр, отвечающий за добавление файлов со всех активных полей «File field» к электронному сообщению в автоматическом режиме. Как правило, его следует установить в положение «Включено».
  2. «Список вложений» (Attachments list) — многострочный список абсолютных путей к файлам, которые следует прикрепить к сообщению. Этот параметр функции не является обязательным и указывать его следует только тогда, когда на форме имеется несколько полей «File field». На рисунке 2 указан путь к файлам, загружаемым на сервер пользователем через поля «File field», созданные «на лету» с помощью мультипликатора. В случаях, когда поля «File field» на форме вообще не используются, но к сообщениям формы требуется прикреплять заведомо подготовленный файл (или файлы), то в данном поле следует указать абсолютный путь к этому файлу, например /var/www/user/data/www/sitename/images/image.png.

Отправка файлов с помощью форм обратной связи Chronoforms 5

Отправка файлов с помощью форм обратной связи Chronoforms 5 настраивается также, как и в проектах CF6 — созданием связки из полей «File Field» и двух функций — «File Upload» и «Email», размещаемых в теле обработчика «On submit» формы.

Шаг 1. Необходимо разместить и настроить на форме поле «File Field». Их может быть несколько, в том числе, расположенных в теле динамического повторителя.

Набор параметров «File Field», которые нужно установить независимо от того, используется этот элемент как единичный или же в составе группы «Multi field», представлен в редакторе такими опциями:

Настройка поля «File Field» на формах Chronoforms 5

Рис. 4

  1. «Имя поля» (Field Name) — обязательный параметр. Должен быть уникальным, не содержать пробелов и спецсимволов, кроме случаев, когда поддерживается загрузка нескольких файлов (включено «Multiple») или же данное поле расположено в теле множителя мультипликатора. В этом случае к дефолтному имени добавляются квадратные скобки. Например, для поля «file8» значение этого параметра может определяться как «file8[]».
  2. «ID поля» (Field ID) — уникальный идентификатор поля. При использовании динамического множителя, к уникальному идентификатору добавляется значение у контейнера «Multiplier» параметра «Замена». Например, было «text8», стало — «text8-__N__».
  3. «Несколько» (Multiple) — переключатель, позволяющий пользователю загружать несколько файлов через одно поле «File Field». При использовании мультипликатора рекомендуется присвоить этому параметру значение «Нет» (No).

Шаг 2. Далее необходимо в разделе конструктора формы «Установка» (Setup) разместить в теле обработчика «On submit» формы другую функцию — «Files Upload». Рекомендуется поместить ее выше функции «Email», которая будет отправлять файлы.

Если при загрузке файлов через форму на сервер произойдет ошибка, следует перезагрузить страницу и предоставить пользователю повторить попытку. Для этого нужно поместить в теле собственного события «On fail» функции «Files Upload» другую функцию — «Event Loop». Она не требует донастройки и готова к работе.

Нужно привязать все поля «File Field», имеющиеся на форме к функции «Files Upload» путем изменения ее параметров:

Настройка функции «Files Upload» на формах Chronoforms 5

Рис. 5

  1. «Включить» (Enabled) — переключатель, который отвечает за вызов функции «Files Upload».
  2. «Конфигурация файлов» (Files config) — многострочный список допустимых расширений, где каждому полю «File Field» соответствует своя строка. Вне зависимости от прочих настроек, применения или отсутствия повторителя, имя поля «File Field» указывается без каких-либо прочих добавлений и отделяется от списка расширений двоеточием. Расширения отделяются друг от друга сепаратором, указанным в поле «Разделитель» (см. п.8).
  3. «Путь загрузки» (Upload path) — абсолютный путь к папке загрузки файлов на сервере. По умолчанию система загружает файлы в папку www\components\com_chronoforms5\chronoforms\uploads\yourFormName. Если необходимо указать другую папку загрузки, в это поле прописывается абсолютный путь к ней.
  4. «Максимальный размер файла» (Max file size) — верхнее значение ограничения размера загружаемых файлов в килобайтах (без указания единицы измерения).
  5. «Минимальный размер файла» (Min file size) — нижнее значение ограничения размера загружаемых файлов в килобайтах (без указания единицы измерения).
  6. «Массив полей» (Array fields) — список полей «File Field», позволяющих загружать по несколько файлов (включена настройка «Multiple» или поле находится в теле повторителя). Элементы списка перечисляются через запятую без пробелов. Имена полей, независимо от наличия добавлений к ним в соответствующих параметрах «Имя поля», указываются без таковых. Например, имя поля «file8[]», в списке должно быть указано как «file8». Поля «File Field», позволяющие загрузить на сервер только один файл, в данный список добавлять не нужно.
  7. «Код, возвращающий имя файла» (File name code) — параметр, определяющий правила присвоения имени загружаемому на сервер файлу. По умолчанию, каждому файлу присваивается префикс, соответствующий дате и времени загрузки (без пробельных символов и других разделителей). Для того, чтобы система не добавляла к имени файла префикс, в это поле следует поместить код «<?php return $file_name; ?>».
  8. «Разделитель» (Extensions separator) — символ, который используется для разделения разрешенных расширений файлов в поле «Конфигурация файлов» (см. п.2).

Шаг 3. В заключение нужно привязать все поля «File Field» формы к функции «Email», которая отвечает за вложение загруженных на сервер файлов в состав электронного сообщения.

Параметры, необходимые для настройки вложений должны быть такими:

Настройка функции «Email» на формах Chronoforms 5 для отправки файлов

Рис. 6

  1. «Формат Email» (Email format) — формат электронного сообщения, отправляемого функцией «Email». Если с формой отправляются и файлы, то данный параметр всегда должен иметь значение «Html»
  2. «Прикрепленные файлы» (Attachment files) — список вложений. Имена всех полей «File Field», указанные через запятую без пробелов, скобок и префиксов, соответствующих значению «Замены» у контейнеров «Multiplier» (если таковые используются).