Такой вот необычный кейс был реализован нами для одного из наших клиентов. Возникла необходимость показывать предпросмотры вложений — документов различного формата в коробочной версии Битрикс24 в списках CRM:
Для устновки ImageMagick необходимо ввести в командной панели ssh следующие команды:
yum install ImageMagick ImageMagick-devel
yum install php-pear gcc make php-devel
pecl install imagickна вопрос «Please proivde prefix…» пишем all
echo «extension=imagick.so» > /etc/php.d/imagick.ini
затем ребутим апач
service httpd restart
и проверяем что все установлено
php -m | grep imagick
Установка Libreoffice осуществляется следующим образом:
yum install libreoffice-headless
yum install libreoffice-writer
yum install libreoffice-calcshell_exec(‘/usr/bin/libreoffice —headless -convert-to pdf —outdir /home/bitrix/ext_www/portal.bitrix.center /home/bitrix/ext_www/portal.bitrix.center/testdoc.doc’);
После этого мы завели хайлоадблок для хранения превью файлов, и добавили в систему 2 обработчика: для события
$eventManager->addEventHandler(‘disk’, ‘onAfterAddFile’, function (\Bitrix\Main\Event $event)
{…}
$eventManager->addEventHandler(‘disk’, ‘onAfterDeleteFile’, function (\Bitrix\Main\Event $event)
{…}
При загрузке нового файла на диск Битрикс24 в зависимости т формата файла для него генерируется превью расширением ImageMagick и/или Libreoffice, далее превью хранится в инфоблоке. Шаблоны компонентов CRM Битрикс24, в которых необходим вывод превью — кастомизированы.
При удалении файла с диска Битрикс24, удаляется превью и удаляется запись о нем из хайлоадблока.