%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.135.200.4 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/dev2fun.imagecompress/lib/ |
Upload File : |
<?php /** * @author darkfriend <hi@darkfriend.ru> * @copyright dev2fun * @version 0.4.0 */ namespace Dev2fun\ImageCompress; use Bitrix\Main\Localization\Loc; use Bitrix\Main\Config\Option; IncludeModuleLangFile(__FILE__); class Svg { private static $instance; public $lastError; public $binaryName = 'svgo'; private $MODULE_ID = 'dev2fun.imagecompress'; private $path = ''; private $enable = false; private function __construct() { $this->path = Option::get($this->MODULE_ID, 'path_to_svg', '/usr/bin'); $this->enable = Option::get($this->MODULE_ID, 'enable_svg', false); } /** * @static * @return Ps2Pdf */ public static function getInstance() { if (!isset(self::$instance)) { $c = __CLASS__; self::$instance = new $c; } return self::$instance; } /** * Проверка возможности оптимизации pdf * @return bool */ public function isOptim() { exec($this->path . "/{$this->binaryName} -v", $s); return ($s ? true : false); } /** * Процесс оптимизации JPEG * @param string $strFilePath - абсолютный путь до картинки * @param array $params - дополнительные параметры * @return bool * @throws \Exception */ public function compress($strFilePath, $params = []) { if(!$this->enable) return false; $strFilePath = strtr( $strFilePath, [ ' ' => '\ ', '(' => '\(', ')' => '\)', ']' => '\]', '[' => '\[', ] ); $event = new \Bitrix\Main\Event( $this->MODULE_ID, "OnBeforeResizeImageSvg", [&$strFilePath, &$params] ); $event->send(); $strCommand = ''; exec( "{$this->path}/{$this->binaryName} $strCommand --input=$strFilePath --output=$strFilePath 2>&1", $res ); // if(file_exists($strFilePathNew)) { // unlink($strFilePath); // rename($strFilePathNew, $strFilePath); // } if (!empty($params['changeChmod'])) { chmod($strFilePath, $params['changeChmod']); } $event = new \Bitrix\Main\Event( $this->MODULE_ID, "OnAfterResize", [&$strFilePath] ); $event->send(); return true; } public function getOptionsSettings($advanceSettings=[]) { return []; } }