

|
|
 
Данные типа file
Данные типа file - это любые файлы: картинки, аудио и видео файлы, дистрибутивы программ, документы, в том числе html-документы. Как они используются на страничке (отображаются, проигрываются или скачиваются) задается в шаблоне. В дескрипторе же просто задется тип - file, а пользователь просто закачивает файл на сайт.
Приведем пример шаблона, с помощью которого пользователь может закачивать файлы на сервер, а посетитель скачивать их:
file.tpl
<?php echo "
{$dat['edit']}
<a href='dataFiles/$dat[1]'>Скачать файл: $dat[1]</a>
";?>
file.tdd
<?php
$types[1]='file';
?>
Значением file-данного является имя файла. Файлы закачиваются из окна редактирования и автоматически помещаются в папку ./dataFiles на сервере. Если в этой папке уже имеются файлы с таким же именем, то к имени файла приписывается последовательный номер. Таким образом, имя файла пользователем непосредственно не редактируется.
Параметры, применяемые для всех типов файлов
Имя параметра | Назначение параметра | Значения (аргументы) параметра | Примечания |
allowedFormats | Форматы (типы) файлов, разрешенные для закачки | Перечень расширений имен файлов, через запятую. allowedFormats(gif,png) forbiddenFormats(exe) | |
forbiddenFormats | Форматы (типы) файлов, запрещенные для закачки |
nameField | Переименовать закачанный файл, используя в качестве имени текст из указанного поля. | Номер поля-источника. Необязательный второй аргумент — ограничение на максимальную длину имени (число символов) nameField(1,300) | - Этот параметр желательно применять для поискового продвижения.
- Этот параметр не будет действовать, если для данного задан параметр sourceField.
- Можно для нескольких file-данных задать одно и то же поле в качестве источника имени — накладок не будет, так как к имени файла будет приписан числовой суффикс.
|
destination | Альтернативная папка назначения для закачиваемых файлов | Путь относительно корневой папки сайта. destination ('dataFiles/catalog') |
- Создавать альтернативную п папку специально не нужно — это произойдет автоматически.
- По умолчанию, когда не указан параметр destination, закачиваемые файлы помещаются в папку сайта dataFiles.
- Альтернативную папку можно назначить в любом месте на сайте, однако лучше это сделать внутри папки dataFiles.
|
Пример:
.tdd
<?php
$types[4] = "file allowedFormats('zip','rar','arj') destination('dataFiles/archive')";
$types[5] = "file forbiddenFormats('exe','com')";
?>
Параметры, применяемые только для файлов-изображений
Имя параметра | Назначение параметра | Значения (аргументы) параметра | Примечания |
maxWidth | Максимальная ширина изображения | Целое положительное число (пиксель). maxWidth(800) maxHeight(800) | - Преобразование к новому размеру произойдет автоматически во время закачки
- Если вам нужны точные значения ширины и высоты, то задавайте их в атрибутах width и height элемента img в шаблоне. Однако это может привести к непропорциональной деформации изображения.
- Параметр thumbnail отменяет действие параметров maxWidth и maxHeight.
|
maxHeight | Максимальная высота изображения |
thumbnail | Создание миниатюры изображения | Одно или два целых положительных числа (пиксель).thumbnail(160) thumbnail(160,120)
| - Приводит изображение к заданным габаритам путем подгонки и отсечения лишних областей
- Если не указывать второй аргумент, то он по умолчанию будет равен первому аргументу, то есть, получается квадратное изображение.
|
newFormat | Преобразовать файл к новому формату (типу) | Одно из слов: gif, jpg, png. | |
widthField | Номер поля, в которое автоматически будет записываться значение ширины закачанного изображения | Целое положительное число (номер поля).widthField(3) heightField(4) | - Эти параметры можно применять в элементе img для атрибутов width и height, так как их указание ускоряет отображение страницы.
- Эти параметры полезны при показе изображения в новом окне с помощью JavaScript функции window.open, так как они позволяют задать размер нового окна, равный размеру изображения.
- Размеры изображения редактировать не рекомендуется, поэтому указанные поля лучше сделать скрытыми.
Размеры изображения можно не хранить, а узнать их прямо в шаблоне с помощью php-функции getimagesize(). Это избавит нас от необходимости заводить дополнительные поля в базе данных, но замедлит вывод страницы. Размеры изображения можно узнать и на стороне клиента, взяв с помощью JavaScript стандартные свойства width и height у DOM-объекта img. Однако, изображение при этом должно быть уже загруженным на страницу. |
heightField | Номер поля, в которое автоматически будет записываться значение высоты закачанного изображения |
quality | Качество изображения | Положительное число от 0 до 100 (проценты). | - Пока применяется только для формата jpg и только в том случае, если задано преобразование изображения (размера или формата).
- По умолчанию установлено значение 50%, что дает удовлетворительное качество. Для практических целей достаточно увеличивать значение показателя качества до 80%, далее вес файла растет резко по экспоненте. Когда нужно очень хорошее качество, ставьте 90%.
|
sourceField | В качестве источника будет использоваться файл, который находится в поле, номер которого записан в этот параметр. | Целое положительное число (номер поля источника). | - Тип данных файла-источника в дескрипторе должен быть объявлен выше, чем тип текущего файла ($types[]=...)
- Параметр действует, если непосредсвенно в текущее поле файл не закачивается.
- Этот параметр обычно используется для автоматического создания миниатюрного варианта изображения
- Так как закачка файла происходит автоматически, то данное поле рекомендуется делать скрытым.
|
stamp | Штамп (водяной знак, watermark) | URL изображения. stamp ('templates/stamp.png') |
- Все настройки для штампа (место, размер, отступы) будут доступны в окне редактирования записи.
- Настройки штампа можно делать в дескрипторе, а не только в окне редактирования.
- Для создания полупрозрачности или прозрачного фона используйте формат .png (лучше 24-битный, чем 8-битный)
|
Пример:
.tdd
<?php
$types[1] = 'file widthField(2)';
$types[2] = 'int(4)';
$types[3] = 'file maxWidth(100) maxHeight(100) sourceField(1)';
$types[6] = "file stamp('templates/stamp.png')";
# Поле 3 можно скрыть
$params['hiddenFields'] = array(3);
?>
Закачанный файл будет подвергается преобразованию согласно параметров и сохраняется на сервере в папке dataFiles.
Изображения рекомендуется преобразовывать к формату .gif, .jpg или .png.
Ниже приводятся нетривиальные примеры использования file-данных:
См. также
|