- Совместимость с XenForo
- XF 2.1
- XF 2.2
- XF 2.3
- Видимый копирайт
- Нет
В зависимости от конфигурации, для этого дополнения требуется поддержка перезаписи URL на веб-сервере!
Позволяет сохранять изображения в формате SVG (масштабируемая векторная графика) в качестве шаблонов. При этом создается новый файл svg.php в корневом каталоге XF.
Для создания ссылки на шаблон SVG;
В разделе Информация о плате, если установлено значение "Использовать полностью понятные URL-адреса" (use Friendly Urls), то генерируемый URL-адрес будет:
Иначе
Конфигурация перезаписи URL-адреса Nginx
Apache URL rewrite configДобавьте правило перед окончательными data/reference:
т.е., должно выглядеть примерно так;
Составление
Компиляция может быть привязана к более новым версиям glibc, что может вызвать проблемы с переносимостью
Поддержка интерфейса командной строки Inkscape
Примечание; используйте snap, так как в противном случае, вероятно, придется хранить экземпляр!
Сконфигурируйте команду CLI PIPE с помощью:
Особенности
Условный рендеринг SVG в PNG (для CSS/LESS)
Пример условного CSS для использования png поверх svg для мобильных клиентов
Явное использование в шаблонах:
Позволяет сохранять изображения в формате SVG (масштабируемая векторная графика) в качестве шаблонов. При этом создается новый файл svg.php в корневом каталоге XF.
Для создания ссылки на шаблон SVG;
Код:
{{ getSvgUrl('tempate.svg') }}
В разделе Информация о плате, если установлено значение "Использовать полностью понятные URL-адреса" (use Friendly Urls), то генерируемый URL-адрес будет:
Код:
/data/svg/<style_id>/<langauge_id>/<style_last_modified>/<templateName>.svg
Иначе
Код:
svg.php?svg=<templateName>&s=<style_id>&l=<langauge_id>&d=<style_last_modified>
Конфигурация перезаписи URL-адреса Nginx
Код:
location ^~ /data/svg/ {
access_log off;
rewrite ^/data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+).svg$ /svg.php?svg=$4&s=$1&l=$2&d=$3$args last;
return 403;
}
Apache URL rewrite configДобавьте правило перед окончательными data/reference:
Код:
RewriteRule ^data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+).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 [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+).svg$ svg.php?svg=$4&s=$1&l=$2&d=$3 [B,NC,L,QSA]
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Составление
Компиляция может быть привязана к более новым версиям 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
Поддержка интерфейса командной строки Inkscape
Примечание; используйте snap, так как в противном случае, вероятно, придется хранить экземпляр!
Код:
sudo snap install inkscape
Сконфигурируйте команду CLI PIPE с помощью:
Код:
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>
}
}
Явное использование в шаблонах:
XML:
<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>