add_object_attachments()

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

События функции: ds_files_attachments

Использование: add_object_attachments($files, $args);

$files — (array, int) массив ID файлов, так-же можно указать единичный ID

$args — (array) Массив аргументов

  1. object (string) — Тип к которому относится это вложение, в почте это ‘mail’, а в комментариях это ‘comment’.
  2. object_id (int) — ID объекта, к примеру id сообщения или комментария
  3. param1 (string) опциональный параметр
  4. param1_id (int) опциональный параметр
  5. param2 (string) опциональный параметр
  6. param2_id (int) опциональный параметр

Пример

$files = array(1, 5, 8); // IDs файлов

$args = array(
    'object' => 'mail', 
    'object_id' => $post_id, // ID сообщения
    'param1_id' => 1, // ID юзера от кого
    'param2_id' => 2, // ID юзера кому
); 

add_object_attachments($files, $args); // Вернет массив ID вложений

Код функции

function add_object_attachments($files, $args) 
{
	$attachments = array(); 

	if (is_array($files)) {
		foreach($files AS $file) {
			$data = array_merge(array('file_id' => $file, 'time' => time(), 'user_id' => get_user_id()), $args); 
			db::insert('files_attachments', $data); 
			$attachments[] = db::insert_id(); 
		}
	} elseif (is_numeric($files)) {
		$data = array_merge(array('file_id' => $files, 'time' => time(), 'user_id' => get_user_id()), $args); 
		db::insert('files_attachments', $data); 
		$attachments[] = db::insert_id(); 
	}

	do_event('ds_files_attachments', $attachments, $files, $args); 

	return $attachments; 
}