- Совместимость с XF
- 2.3.x
- 2.2.x
- Краткое описание
- В зависимости от конфигурации этот плагин требует поддержку URL-rewriting веб-сервера!
Требуется Стандартная библиотека версии v1.12.0+
С зависимостью от конфигурации, этот дополнение требует поддержки URL-rewriting сервера веб-сервера!
С зависимостью от конфигурации, этот дополнение требует поддержки URL-rewriting сервера веб-сервера!
Разрешает хранение изображений SVG (Scalable Vector Graphics) в качестве шаблонов. Это создает новый файл svg.php в корневой директории XF.
Для генерации ссылки на шаблон SVG (шаблон должен заканчиваться на .svg!);
Преобразование SVG в PNG требует внешней поддержки и, в зависимости от ОС, может привести к необычным ограничениям или кривому отображению.
Не рекомендуется использовать Imagick, если это возможно!
Ubuntu (используя https://launchpad.net/~ondrej/+archive/ubuntu/phpPPA);
Код:
Примечание; некоторые дистрибутивы требуют установки пакета libmagickcore-6.q16-3-extra для включения поддержки SVG.
Старые версии Imagick имеют плохую поддержку SVG, а также плохую репутацию по безопасности.
Это универсальный хвост для подключения произвольного преобразования PNG с использованием proc_open в php.
Настройка визуализации с помощью опции proc_open, включая;
{sourceFile} — исходный SVG, записанный как временный файл {destFile} — целевой файл PNG, записанный как временный файл
Или можно использовать пайпы для ввода/выхода
Примечание; имена шаблонов ограничены только буквенно-цифровыми строками, что поддерживается валидацией перед вызовом опции CLI.
Пример использования resvg, настройка CLI команды с;
Сборка может быть связана с более новыми версиями glibc, что может привести к проблемам с совместимостью.
Примечание; используйте snap, иначе версия может быть слишком старой!
Настройка CLI команды PIPE с;
Less:
Прямой использований в шаблонах;
Хотя рекомендуется использование правил URL-rewriting веб-сервера, это дополнение поддерживает расширение системы маршрутизации XF2 для предоставления нулевой-конфигурационной поддержки шаблонов SVG.
Пример: должно выглядеть похоже на;
Природные функции или исправления ошибок
Прошу создать запрос Pull на GitHub через ссылку "Дополнительная информация".
С зависимостью от конфигурации, этот дополнение требует поддержки URL-rewriting сервера веб-сервера!
С зависимостью от конфигурации, этот дополнение требует поддержки URL-rewriting сервера веб-сервера!
Разрешает хранение изображений SVG (Scalable Vector Graphics) в качестве шаблонов. Это создает новый файл svg.php в корневой директории XF.
Для генерации ссылки на шаблон SVG (шаблон должен заканчиваться на .svg!);
Код:
{{ getSvgUrl('tempate.svg') }}
Under Board information, if "Use Full Friendly URLs" (useFriendlyUrls) is set the URL generated is:
Code:
/data/svg/<style_id>/<langauge_id>/<style_last_modified>/<templateName.svg>
Otherwise
Code:
svg.php?svg=<templateName>&s=<style_id>&l=<langauge_id>&d=<style_last_modified>
Не рекомендуется использовать Imagick, если это возможно!
Ubuntu (используя https://launchpad.net/~ondrej/+archive/ubuntu/phpPPA);
Код:
Код:
sudo apt install php7.4-imagick libmagickcore-6.q16-3-extra
sudo systemctl restart php7.4-fpm
Старые версии Imagick имеют плохую поддержку SVG, а также плохую репутацию по безопасности.
Это универсальный хвост для подключения произвольного преобразования PNG с использованием proc_open в php.
Настройка визуализации с помощью опции proc_open, включая;
{sourceFile} — исходный SVG, записанный как временный файл {destFile} — целевой файл PNG, записанный как временный файл
Или можно использовать пайпы для ввода/выхода
Примечание; имена шаблонов ограничены только буквенно-цифровыми строками, что поддерживается валидацией перед вызовом опции CLI.
Пример использования resvg, настройка CLI команды с;
Код:
/usr/local/bin/resvg --quiet {sourceFile} {destFile}
Предварительно скомпилированный бинарный файл
Предварительно скомпилированный x86_64 бинарный файл для Linux доступен здесь. Скомпилирован на CentOS 7, работает на Ubuntu 18.04/20.04Сборка может быть связана с более новыми версиями glibc, что может привести к проблемам с совместимостью.
Код:
curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
cargo install resvg
cp ~/.cargo/bin/resvg /usr/local/bin/resvg
chmod +x /usr/local/bin/resvg
Код:
sudo snap install inkscape
Код:
inkscape --export-type=png -p
Условное преобразование SVG в PNG (для CSS/LESS)
Пример использования условного CSS для использования PNG вместо SVG для мобильных клиентовLess:
Код:
.mod_interrupt--svg.mod_interrupt
{
&--stop
{
&:before
{
content: url({{ getSvgUrl('sv_bbcode_modinterrupt_stop.svg') }}) !important;
}
<xf:if is="$xf.svg.as.png">
.is-tablet &:before,
.is-mobile &:before
{
content: url({{ getSvgUrlAs('sv_bbcode_modinterrupt_stop.svg', 'png') }}) !important;
}
</xf:if>
}
}
Код:
<xf:if is="$xf.svg.enabled">
<xf:if is="$xf.svg.as.png and $xf.mobileDetect and $xf.mobileDetect.isMobile()">
<img src="{{ getSvgUrlAs('example.svg', 'png') }}"/>
<xf:else />
<img src="{{ getSvgUrlAs('example.svg', 'svg') }}"/>
</xf:if>
<xf:else />
<i class="fa fa-stop" />
</xf:if>
URL-rewriting конфигурация Nginx
Код:
location ^~ /data/svg/ {
access_log off;
rewrite ^/data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ /svg.php?svg=$4&s=$1&l=$2&d=$3$args last;
return 403;
}
URL-rewriting конфигурация Apache
Добавьте правило перед финальным файлом index.php;Пример: должно выглядеть похоже на;
Код:
RewriteRule ^data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ svg.php?svg=$4&s=$1&l=$2&d=$3 [B,NC,L,QSA]
Прошу создать запрос Pull на GitHub через ссылку "Дополнительная информация".