Блог

30.09.2016

Как организовать скачивание файлов из инфоблока (Битрикс)

Однажды, для одного из проектов понадобилось организовать раздел с файлами для скачивания на базе инфоблока.

У меня ушло очень много времени на поиск удобного решения, в большей степени PDF файлы, которые всё больше наровят именно отрыться, а не скачаться.

  1. Заходим в Администрирование (www.ваш-сайт.ru/bitrix/admin/).
  2. Переходим на вкладку "Контент → Типы инфоблоков → Нужный тип инфоблока (например создать тип инфоблока "Файлы") → Создаем сам инфоблок, например тоже Файлы"
  3. Далее переходим на вкладку "Свойства" и создаем новое свойство, примерно как на картинке: 

    Сохраняем.

  4. Далее переходим в публичную часть, на страницу, на которой планируем разместить инфоблок со спискам файлов для скачивания.
  5. Добавляем компонент news.list, открываем параметры компонента и настраиваем его:
    • Указываем созданый тип информационного блока и код информационного блока
    • Находим "Источник данных" и в свойствах прописываем название нашего свойства "FILES_DOC", отключаем все лишнее, сохраняем.
  6. Открываем шаблон компонента, предварительно скопировав его в свой шаблон и кастомизируем его. Выделяем всё и заменяем следующим кодом:
    <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
    <table>
      <tbody>
      <?foreach($arResult["ITEMS"] as $arItem):?>
      <tr>
      <td><a href="<?echo $arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["SRC"]?>" download="<?echo $arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["SRC"]?>" ><?echo $arItem["NAME"]?></a> 
    <i> (размер: <strong><?echo round($arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["FILE_SIZE"]/1024, 2); ?> кБ</strong>, формат: <strong><?echo pathinfo($arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["SRC"], PATHINFO_EXTENSION);?></strong>)</i></td>
      </tr>
      <?endforeach;?>
      </tbody>
      </table>
    
  7. Стили делаем на свой вкус.

Разберем по пунктам:

  • Значение href в ссылке
    <?echo $arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["SRC"]?>
    - ссылка непосредственно на файл;
  • download="<?echo $arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["SRC"]?>"> 
    - самый простой способ заставить браузер скачивать, а не открывать файл (Точно работает в браузерах Google Chrome, Opera, Firefox...в Safari пока что не хочет).
  • <?echo $arItem["NAME"]?>
    - название элемента
  • <?echo round($arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["FILE_SIZE"]/1024, 2); ?>
    - Вес файла в килобайтах
  • <?echo pathinfo($arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["SRC"], PATHINFO_EXTENSION);?>
    - формат файла.

Надеюсь моя статья Вам поможет.


Название: Как организовать скачивание файлов из инфоблока (Битрикс)
Картинка для анонса: 
Детальное описание: 

У меня ушло очень много времени на поиск удобного решения, в большей степени PDF файлы, которые всё больше наровят именно отрыться, а не скачаться.

  1. Заходим в Администрирование (www.ваш-сайт.ru/bitrix/admin/).
  2. Переходим на вкладку "Контент → Типы инфоблоков → Нужный тип инфоблока (например создать тип инфоблока "Файлы") → Создаем сам инфоблок, например тоже Файлы"
  3. Далее переходим на вкладку "Свойства" и создаем новое свойство, примерно как на картинке: 

    Сохраняем.

  4. Далее переходим в публичную часть, на страницу, на которой планируем разместить инфоблок со спискам файлов для скачивания.
  5. Добавляем компонент news.list, открываем параметры компонента и настраиваем его:
    • Указываем созданый тип информационного блока и код информационного блока
    • Находим "Источник данных" и в свойствах прописываем название нашего свойства "FILES_DOC", отключаем все лишнее, сохраняем.
  6. Открываем шаблон компонента, предварительно скопировав его в свой шаблон и кастомизируем его. Выделяем всё и заменяем следующим кодом:
    <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
    <table>
      <tbody>
      <?foreach($arResult["ITEMS"] as $arItem):?>
      <tr>
      <td><a href="<?echo $arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["SRC"]?>" download="<?echo $arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["SRC"]?>" ><?echo $arItem["NAME"]?></a> 
    <i> (размер: <strong><?echo round($arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["FILE_SIZE"]/1024, 2); ?> кБ</strong>, формат: <strong><?echo pathinfo($arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["SRC"], PATHINFO_EXTENSION);?></strong>)</i></td>
      </tr>
      <?endforeach;?>
      </tbody>
      </table>
    
  7. Стили делаем на свой вкус.

Разберем по пунктам:

  • Значение href в ссылке
    <?echo $arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["SRC"]?>
    - ссылка непосредственно на файл;
  • download="<?echo $arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["SRC"]?>"> 
    - самый простой способ заставить браузер скачивать, а не открывать файл (Точно работает в браузерах Google Chrome, Opera, Firefox...в Safari пока что не хочет).
  • <?echo $arItem["NAME"]?>
    - название элемента
  • <?echo round($arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["FILE_SIZE"]/1024, 2); ?>
    - Вес файла в килобайтах
  • <?echo pathinfo($arItem["DISPLAY_PROPERTIES"]["FILES_DOC"]["FILE_VALUE"]["SRC"], PATHINFO_EXTENSION);?>
    - формат файла.

Надеюсь моя статья Вам поможет.


Детальная картинка: 
Начало активности (дата): 30.09.2016 11:04:51
Дата создания: 30.09.2016 11:05:17
Кем создан (ID): 1
Кем создан (имя): (admin) Виталий Элс
Теги:  Инструментарий

Возврат к списку

Хотите посотрудничать? Contact Us

Подписаться на обновления

Согласен