- Совместимость с XF
- 2.3.x
- 2.2.x
- Краткое описание
- XenForo 2 SVG Template Add-on v1.12.0+: Разрешает хранить и генерировать шаблоны SVG для легкой управления изображениями. 支持 URL 重写以获得干净的 URLs 并使用 CLI 或预编译二进制文件如 php-imagick, resvg 和 Inkscape 渲染为 PNG。通过 Nginx/Apache 重写规则与 XenForo 2 路由系统兼容。
НеобходимоStandard Library By Xonv1.12.0+
В зависимости от настройки, этот плагин требует поддержку URL-rewriting веб-сервера!
В зависимости от настройки, этот плагин требует поддержку URL-rewiting веб-сервера!
Разрешает хранить SVG (Scalable Vector Graphics) изображения как шаблоны. Это создает новый файл svg.php в корневой директории XF.
Чтобы сгенерировать ссылку на SVG шаблон (шаблон должен заканчиваться на .svg!);
РеNDERING SVG-ов в PNG-ы требует внешнего поддержания, и в зависимости от ОС это может привести к неестественному ограничению или плохому рендерингу.
Этонедопустимоеиспользовать Imagick если можно! Ubuntu (используя )https://launchpad.net/~ondrej/+archive/ubuntu/phpPPA); Code:
Заметка: некоторые дистрибутивы требуют установки libmagickcore-6.q16-3-extra для включения поддержки SVG. Устаревшие версии Imagick имеют плохую поддержку SVG, а также низкое доверие по безопасности.
Это генерический ход для подключения произвольного конвертации изображений в формате PNG, используя proc_open в PHP.
Настроить Render с использованием опции proc_open;
{sourceFile} является исходным SVG и записан как временный файл {destFile} - это конечный PNG-файл как временный файл
Или вход/выход можно сделать через потоки данных
Примечание: Имена шаблонов только алphanumerические строки, которые фиксируются перед вызовом командной строки
Пример используяresvgнастроить командную строку команду с;
Предварительно скомпилированный линукс x86_64 бинарник доступенhereСкомпилировано на CentOS 7, работает на Ubuntu 18.04/20.04
Сборка может биндиться с более новыми версиями glibc, что может привести к проблемам совместимости
Примечание; используйте Snap, иначе вероятно будет слишком старая версия!
Настройте команду CLI PIPE с;
Эксплицитное использование в шаблонах;
Добавить правило перед final index.php;
и, должен выглядеть похожим на;
Приносящие функции или исправления баговСоздайте запрос наpullvia ссылкой "Дополнительная информация".
В зависимости от настройки, этот плагин требует поддержку URL-rewriting веб-сервера!
В зависимости от настройки, этот плагин требует поддержку URL-rewiting веб-сервера!
Разрешает хранить 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); Code:
Код:
sudo apt install php7.4-imagick libmagickcore-6.q16-3-extra
sudo systemctl restart php7.4-fpm
Это генерический ход для подключения произвольного конвертации изображений в формате PNG, используя proc_open в PHP.
Настроить Render с использованием опции proc_open;
<CLI-binary> {destFile} {sourceFile}{sourceFile} является исходным SVG и записан как временный файл {destFile} - это конечный PNG-файл как временный файл
Или вход/выход можно сделать через потоки данных
Примечание: Имена шаблонов только алphanumerические строки, которые фиксируются перед вызовом командной строки
Пример используяresvgнастроить командную строку команду с;
Код:
/usr/local/bin/resvg --quiet {sourceFile} {destFile}
Сборка может биндиться с более новыми версиями 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 для клиентов мобильных устройств
Код:
.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>
XenForo 2 маршрутизация интеграция
Хотя рекомендуется использовать правила переадресации веб-сервера, этот плагин поддерживает расширение системы маршрутизации XenForo для предоставления нуля-конфигурированной поддержки шаблонов SVG
URL rewrite конфигурация Nginx
Код:
location ^~ /data/svg/ {
access_log off;
rewrite ^/data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ /svg.php?svg=$4&s=$1&l=$2&d=$3$args last;
return 403;
}
Код:
RewriteRule ^data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ svg.php?svg=$4&s=$1&l=$2&d=$3 [B,NC,L,QSA]
Код:
# If you are having problems with the rewrite rules, remove the "#" from the
# line that begins "RewriteBase" below. You will also have to change the path
# of the rewrite to reflect the path to your XenForo installation.
#RewriteBase /xenforo
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -l
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ -
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) -
RewriteRule ^data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ svg.php?svg=$4&s=$1&l=$2&d=$3 [B,NC,L,QSA]
RewriteRule ^.*$ index.php