nc_load_multifield( $field_id, $message, $template = null )
инициализирует объект призвольного поля мультифайла
Добавлено в FB #1429
| Параметр | Описание | 
|---|---|
| $field_id | номер поля | 
| $message | номер объекта/записи | 
| $template | шаблон отображения | 
Получить данные о файлах в действии после добавления/изменения:
$f_Slider = nc_load_multifield(2367, $message); $files_data = $f_Slider->to_array();
Массив $files_data будет содержать объекты с данными о файлах
Наложить водяные знаки:
foreach($files_data as $file_object) {
    $photo_path = $DOCUMENT_ROOT . $file_object->Path;
         if(!is_file($photo_path)) continue;
         nc_ImageTransform::putWatermark_file($photo_path, '/netcat_files/watermark.png', 0);
}
Вывести слайдер в макете:
$f_Slider_tpl = array(
     'prefix' => "<div>",
     'record' => "<div>
         <a href='%Path%'><img src='%Preview%' alt='' /></a>
         </div>",
     'divider' => '',
     'suffix' => '</div>',
);
echo nc_load_multifield(2367, 11, $f_Slider_tpl);
Для версии без этой функции(4.72 - 5.4FB #1429) можно использовать функцию nc_load_multifield_tmp(), добавьте ее в модуль разработчика:
/**
 * Инициализирует объект произвольного поля мультифайла(4.72 совместимая версия)
 * @param type $field_id - номер поля
 * @param type $message - номер объекта/записи
 * @param type $template - шаблон отображения
 * @return \nc_multifield|null
 */
function nc_load_multifield_tmp($field_id, $message, $template = null) {
    $field_id = (int) $field_id;
    $message = (int) $message;
    $db = nc_Core::get_object()->db;
    $field = $db->get_row("SELECT `Field_Name`, `Description`, `Format` FROM `Field` WHERE `Field_ID` = ".$field_id, ARRAY_N);
    if (empty($field)) return NULL;
    $SQL = "SELECT Name, Size, Path, Field_ID, Preview, ID, Priority
             FROM Multifield
                 WHERE Field_ID = " . $field_id . "
                   AND Message_ID = " . $message . "
                     ORDER BY `Priority`";
    $field_data = (array) $db->get_results($SQL);
    $field_object = new nc_multifield($field['Field_Name']);
    if (!empty($field_data)) {
        $field_object->set_data($field_data);
    }
    if ($template) {
        $field_object->template->set($template);
    }
    return $field_object;
}

Комментарии 2