Composer - самый популярный менеджер пакетов. И его очень не хватает при разработке в Vtiger CRM. Сегодня я расскажу вам свою методику подключения данного пакета в систему.
Итак, начнём с самого начала.
Первое, что нам потребуется - это установить composer. Подробно расписывать процесс установки я не буду, тут всё зависит от вашей операционной системы. Для установки просто переходим на сайт https://getcomposer.org/ и следуем инструкциям.
Теперь, когда composer установлен глобально, переходим в паку с вашей CRM и запускаем команду:
composer install
После этого нам остаётся только подключить менеджер пакетов к CRM.
Для этого переходим в файл index.php и перед строчкой
include_once 'vtlib/Vtiger/Module.php';
вставляем это:
include_once 'vendor/autoload.php';
После этого vtiger crm у вас должен открываться с ошибкой )
Теперь вам нужно установить несколько пакетов. Запустите в консоли следующую команду:
composer require ezyang/htmlpurifier
Затем вот эту:
composer require phpoffice/phpspreadsheet
Производим изменения в файле
include/utils/VtlibUtils.php
Ищем строчку:
include_once ('libraries/htmlpurifier/library/HTMLPurifier.auto.php');
Меняем на:
include_once ('vendor/ezyang/htmlpurifier/library/HTMLPurifier.auto.php');
Идём в файл
vendor/composer/autoload_files.php
Далее необходимо произвести изменения в файле
modules/Reports/ReportRun.php
Ищем строчку
require_once("libraries/PHPExcel/PHPExcel.php");
Меняем её на
require_once("vendor/autoload.php");
Теоретически теперь можно удалить папку libraries/PHPExcel
Теперь давайте попробуем обновить smarty. Запускаем команду:
composer require smarty/smarty
И меняем строчку в файле includes/runtime/Viewer.php:
vimport ('~/libraries/Smarty/libs/SmartyBC.class.php');
на следующую:
vimport ('~/vendor/smarty/smarty/libs/SmartyBC.class.php');
И теперь также можно при желании удалить папку со smarty libraries/Smarty/libs
После этого Vtiger у вас должна работать корректно.
И всё, composer должен быть установлен в вашей системе. Для тестирования можно проделать следующее. Попробуйте устанивить полезную утилиту для дебага:
composer require kint-php/kint --dev
Данная команда установит вот этот пакет: https://github.com/kint-php/kint
Далее переходим например в файл:
modules/Potentials/models/ListView.php
И перед строчкой
return $massActionLinks;
вставляем следующее:
d($massActionLinks);
Теперь попробуйте открыть список сделок и вы уидете перед таблицей блог с debug-информацией.
С этого момента вы можете спокойно ставить любые пакеты через composer в вашу Vtiger CRM. И они автоматически будут подключены к системе.