Прикрепленные файлы

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

Подключение

Подключаемая часть – файл 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/номер_файла/название_файла

Файлы

  1. modules/attachments/attachments.inc.php – подключение для работы с прикрепленными файлами;

  2. modules/attachments/attachments.get.php – отдает файл;

  3. modules/attachments/admin/attachments.admin.edit.php – вывод прикрепленных файлов в административной части модулей;

  4. modules/attachments/admin/attachments.admin.save.php – сохранение прикрепленных файлов в административной части модулей;

  5. modules/attachments/admin/attachments.admin.del.php – удаление прикрепленных файлов при удалении элементов модуля.



Не понятно? Уточните