Прикрепленные файлы
Модуль работает с файлами, прикрепленными к элементам других модулей. Модуль состоит из трех частей: подключаемая часть, работа модуля в административной части и файл, отдающий прикрепленные файлы.
Подключение
Подключаемая часть – файл modules/attachments/attachments.inc.php. В нем описан класс Attachments_inc. В модуле к объекту классам можно обратится через переменную $this->diafan->_attachments. Экземпляр класса создается при первом вызове переменной.
Методы
array get(integer $element_id, string $module_name, [integer|boolean $attachment_id = FALSE]) – отдает информацию о прикрепленных файлах/файле.
-
access: public
-
integer $element_id: номер элемента, к которому прикрепляется файл
-
string $module_name: название модуля
-
integer|boolean $attachment_id: номер файла
string save(integer $element_id, string $module_name, [integer $site_id = 0]) – сохраняет добавленные файлы.
-
access: public
-
integer $element_id: номер элемента, к которому прикрепляется файл
-
string $module_name: название модуля
-
integer $site_id: страница, к которой прикреплен модуль
boolean|string upload(array $file, string $module_name, integer $element_id, [integer|boolean $n = FALSE]) – загружает файлы.
-
access: public
-
array $file: загружаемый файл/файлы
-
string $module_name: название модуля
-
integer $element_id: номер элемента, к которому прикрепляется файл
-
integer|boolean $n: false $n номер файла в массиве файлов, если предан массив
boolean delete(integer $element_id, string $module_name, [integer|boolean $attachment_id = FALSE]) – yдаляет прикрепленные файлы/файл.
-
access: public
-
integer $element_id: номер элемента, к которому прикрепляется файл
-
string $module_name: название модуля
-
integer|boolean $attachment_id: номер файла
Пример
// получаем файлы, прикрепленные к вопросу в модуле «Вопрос-Ответ» в файле modules/faq/faq.model.php $attachments = $this->diafan->_attachments->get($id, 'faq');
// выводим полученные файлы в шаблоне модуля в файле modules/faq/faq.view.php foreach($attachments as $att) { if($att["is_image"]) { if($row["use_animation"]) { $a_href = '<a href="'.$att["link"].'" rel="prettyPhoto[gallery'
.$att["element_id"].$att["module_name"].'_1]">'; $a_href2 = '<a href="'.$att["link"].'" rel="prettyPhoto[gallery'
.$att["element_id"].$att["module_name"].'_2]">'; } else { $a_href .= '<a href="'.$att["link"].'" rel="big_image" width="'
.$att["width"].'" height="'.$att["height"].'">'; $a_href2 = $a_href; } echo '<p id="attachment'.$att["id"].'">'.$a_href.$att["name"].'</a> ('.$att["size"].')' .' '.$a_href2.'<img src="'.$att["link_preview"].'"></a></p>'; } else { echo '<p id="attachment'.$att["id"].'"><a href="'.$att["link"].'">'
.$att["name"].'</a> ('.$att["size"].')</p>'; } }
// загружаем файлы, прикрепленные к задаваемому вопросу в файле modules/faq/faq.ajax.php $result = $this->diafan->_attachments->save($id, "faq", $site_id);
Как добавить прикрепленные файлы к модулю
В конфигурации модуля (modules/модуль/admin/модуль.admin.config.php) и в файле редактирования элементов модуля (modules/модуль/admin/модуль.admin.php) необходимо добавить параметр 'attachments':
$this->variable_table = array(…, 'attachments' => 'module', …);
Настройки
Модуль настраивается в конфигурации модуля, к которому прикрепляются файлы. Все настройки являются необязательными «Прикрепленные файлы». Можно определить следующие параметры работы модуля:
Разрешить добавление файлов – позволяет пользователям прикреплять файлы к элементу модуля.
Максимальное количество добавляемых файлов – количество добавляемых файлов.
Доступные типы файлов (через запятую)
Пример: doc, gif, jpg, mpg, pdf, png, txt, zip
Распознавать изображения – позволяет прикрепленные к сообщению файлы в формате JPEG, GIF, PNG отображать как изображения.
Размер для большого изображения – размер изображения, отображаемый в пользовательской части сайта при увеличении изображения предпросмотра.
Размер для маленького изображения – размер изображения предпросмотра.
Использовать анимацию при увеличении изображений – добавляет JavaScript код, позволяющий включить анимацию при увеличении изображений.
Максимальный размер загружаемых файлов – параметр показывает максимально допустимый размер загружаемых файлов, установленный в настройках хостинга.
Загруженные файлы открываются по адресу: http://www.site.ru/attachments/get/номер_файла/название_файла
Файлы
-
modules/attachments/attachments.inc.php – подключение для работы с прикрепленными файлами;
-
modules/attachments/attachments.get.php – отдает файл;
-
modules/attachments/admin/attachments.admin.edit.php – вывод прикрепленных файлов в административной части модулей;
-
modules/attachments/admin/attachments.admin.save.php – сохранение прикрепленных файлов в административной части модулей;
-
modules/attachments/admin/attachments.admin.del.php – удаление прикрепленных файлов при удалении элементов модуля.
Не понятно? Уточните
|