|
|
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
Панасин Александр
Зарегистрирован: 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 позволяет получить содержимое поля в виде массива.
|