Разработчики нашей любимой системы сделали поле
Множественная загрузка файлов, но на сегодняшний день возможности этого поля ограничены. Уверен, что в будущем функционал поля будет расширен и приобретёт свойственные для NetCat красоту и удобство, а пока этого нет, я предлагаю использовать следующее решение:
Если в качестве файлов загружаются картинки, то иногда нужена особая обработка картинок, нежели
$f_Img->settings->resize(600, 600)->preview(150, 150)
Допустим наше поле называется
Photo_Gallery и имеет номер
1511(при внедрении подставьте свои название и номер).
Тогда, например, в "Действие после изменения объекта" можно вставить код:
Код:";
if($inside_admin) {
ob_end_clean();
header("Location: ".$goBackLink."&inside_admin=1");
foreach($files_name as $v){
$photo_path = $DOCUMENT_ROOT.'/netcat_files/multifile/1511/'.$v;
if(!is_file($photo_path)) continue;
nc_ImageTransform::imgResize($photo_path,$DOCUMENT_ROOT.'/netcat_files/multifile/1511/preview_'.$v,'155', '155', 1);
/*Здесь можно применять по аналогии и другие функции nc_ImageTransform или даже свои собственные алгоритмы*/
}
exit;
}
else {
echo NETCAT_MODERATION_MSG_OBJCHANGED;
echo "<br /><br />".$goBack;
}
echo "
Если возможностей обычного шаблона вывода
$f_Photo_Gallery_tpl вам мало, то можно и здесь сдеать свой код. Например, в шаблон компонета "Объект в списке" вставляем:
Код:";
if($f_Photo_Gallery->count()){
$Photo_Gallery = '';
foreach($multifiles[$f_RowID]['Photo_Gallery'] as $k => $v){
if($k) $Photo_Gallery.= '<a href="'.$v['Path'].'" target="_blank" rel="group'.$f_RowID.'" title="'.$v['Name'].'"><!-- --></a>';
else $Photo_Gallery.= '<a href="'.$v['Path'].'" target="_blank" rel="group'.$f_RowID.'" title="'.$v['Name'].'"><img border="0" src="'.$v['Preview'].'" width="155" height="155" /></a>';
}
$result .= "
Затем новоиспечённую переменную вставляем в нужное место шаблона, например
".($f_Photo_Gallery->count() ? $Photo_Gallery : '<img border="0" src="/images/noimg.jpg" width="155" height="155" />')."
В цикле переменная $v будет имть ключи:
[Field_ID] => 1511 - номер поля
[Message_ID] - дублирует $f_RowID
[Priority] - наверно, приоритет. Только как его нормально менять?
[Name] - название файла, если было задано
$f_Photo_Gallery->settings->use_name() в шаблонах действий
[Size] - размер файла
[Path] - путь к файлу
[Preview] - путь к превьюшке
[ID] - поле ID из таблицы Multifield базы данных.
Надеюсь, что кому-нибудь помог
Комментарии 34
$multifiles[$f_RowID]['img'][0]['Field_ID']
img название поля
Вторая
$multifiles[$f_RowID]['Photo_Gallery'][0]['Path']
И так далее ))
Где публичные списки косяков? Где ссылки на важные статьи? Где важные темы форума? Где попытки структурирования знаний сообщества?
Ничего этого нет, вместо этого один маркетинг, который только замусоривает мозги клиентам.
Но если говорить о масштабировании, то в 5.2 появился встроенный функционал для этого (в настройках поля). Правда не для всех задач он пригоден.
Не подскажите где искать файлы, ответственные за обработку этого поля?
Касательно второй задачи (генерить дополнительные превьюшки) я бы на вашем месте не исправлял исходники неткат, это ведь доставит вам проблем с обновлением в дальнейшем. Лучше просто в действии после добавления объекта обработайте с помощью самодельной функции каждую "большую" фотку и сгенерите для нее дополнительную превьюшку, например, рядом с уже созданным файлом preview_*.jpg
[URL='https://www.dropbox.com/s/jobywrt3s0tpk0m/nc_load_multifield.php']dropbox nc_load_multifield.php[/URL]