Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Своя функция в шаблоне множественной загрузки файлов

10.07.2014, 16:31
Даниил

Зарегистрирован:
2013-11-29
Сообщений: 8

Есть поле, в которое загружаются разные файлы. Нужно вывести файлы списком в виде: Имя | Размер (кб или мб) | Скачать

Можно ли как то в шаблон добавить свою функцию?

Сам шаблон:

$f_Attachment_tpl = array(
'prefix' => "<div class='layer-attachment'><ul>",

'record' => "<li><div class='td'><a href='%Path%'>%Name%</a></div><div class='td'>".nc_bytes2size('%Size%')."</div></li>",

'divider' => " ",
'suffix' => "</ul></div>",
'i' => 1
);

nc_bytes2size функция которая байты преобразует байты в кб или мб.
В поле 3 файла. два одинакового размера, один побольше. Вот что выводится:

4293 байт
4293 байт
139273 байт

Если вместо '%Size%' подставить число, то все ок.
10.07.2014, 18:50
Гость
Гость

скорее всего %Size% воспринимается как строка, или заменяется после выполнения функции. Попробуйте в шаблоне не мучать, а переопределить, перед выводом или как-то на уровне массива. напишите echo('%Size') и там будет видно что ваша функция получает.
или напишите запрос к базе и сами все формируйте.
там до одури все просто, привязка идет через номер поля в инфоблоке и Message_ID записи, путь к файлу то же прописан
10.07.2014, 22:23
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 1037

Не мучайтесь выводить коробочным вариантом
Используйте запрос к БД и цикл foreach()
Делается на рас два
Код:
$items = $nc_core->db->get_results("SELECT * FROM Multifield WHERE Message_ID=".$f_RowID." AND Field_ID=2056", ARRAY_A );
<? foreach($items as $item){ ?>
<li><div class='td'><a href='".$item[Path]."'>".$item[Name]."</a></div><div class='td'>".nc_bytes2size($item[Size])."</div></li>
<? } ?>

2056 - ID Поля мультизагурзки

Модуль "Почтовые уведомления" – настройка email уведомлений на вашем сайте без программирования. Бесплатно. http://netcat.ru/products/CatStore/solution_242.html
11.07.2014, 11:12
Даниил

Зарегистрирован:
2013-11-29
Сообщений: 8

Благодарю, стало все яснее
27.07.2014, 16:05
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Теперь появилась и "коробочная" функция обработки поля "Множественная загрузка"
Функция nc_load_multifield позволяет получить содержимое поля в виде массива.
198 196 2014-07-27 16:05:36 13730
Описание проекта