Лого форума forum.black-minecraft.com
You went over to the dark side.
We're on social media:
Decor
Resource icon

💠 Leaks Addon for Xenforo 2.x.x SVG Template by Xon [2.4.1]
Short Description: Позволяет сохранять изображения SVG в виде шаблона

No permission to download
Since this resource is in the "Leaks" category, we can't guarantee to update it! But we will try to update the resource to the latest version.
Reactions:
  • Like
Reactions: 2 users
For versions
  1. 2.1
  2. 2.2

Описание SVG Template by Xon:​

В зависимости от настроек, аддон может требовать от web-сервера поддержки правил rewrite

Позволяет сохранять изображения SVG (масштабируемая векторная графика) в качестве шаблонов. Это создает новый файл svg.php в корневом каталоге XF.

Чтобы сгенерировать ссылку на шаблон SVG (в конце имени шаблона должен быть .svg!);

{{ getSvgUrl('tempate.svg') }}
В разделе «Информация о форуме», если установлен параметр «Использовать дружественные URL-адреса» (useFriendlyUrls), создается следующий 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>

Рендеринг в PNG​


Для рендеринга SVG в PNG требуется внешняя поддержка, и в зависимости от ОС это может привести к странным ограничениям или плохому рендерингу.

Поддержка php-imagick​


Не рекомендуется использовать Imagick, если это может помочь!

Ubuntu (using Link hidden, please Sign in or Sing up PPA);
Code:
sudo apt install php7.4-imagick libmagickcore-6.q16-3-extra
sudo systemctl restart php7.4-fpm
Примечание; некоторые дистрибутивы требуют установки libmagickcore-6.q16-3-extra для включения поддержки SVG.

Более старые версии Imagick имеют плохую поддержку SVG, помимо плохой репутации Imagick в области безопасности.

Поддержка CLI​


Это общий аварийный выход для подключения произвольного преобразования в png с использованием proc_open в php.

Настройте рендеринг с помощью опции proc_open с;
<CLI-binary> {destFile} {sourceFile}

{sourceFile} - это исходный SVG, записанный как временный файл. {destFile} - это целевой PNG-файл как временный файл.

В качестве альтернативы ввод / вывод может осуществляться через pipes.

Примечание; имена шаблонов представляют собой только буквенно-цифровые строки, которые принудительно проверяются перед вызовом параметра CLI.

Поддержка resvg CLI

Пример использования Link hidden, please Sign in or Sing up, настройте команду CLI с помощью;

/usr/local/bin/resvg --quiet {sourceFile} {destFile}

Предварительно скомпилированный двоичный файл​


Предварительно скомпилированный двоичный файл linux x86_64 доступен Link hidden, please Sign in or Sing up. Скомпилирован на CentOS 7, работает на Ubuntu 18.04 / 20.04

Компиляция​

Компиляция может привязываться к более новым версиям glibc, что может вызвать проблемы с зависимостью.
Code:
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 CLI​

Примечание; используйте 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>

Интеграция маршрутизации XenForo 2​


Хотя правила rewrite рекомендуются, это дополнение поддерживает расширение системы маршрутизации XenForo для обеспечения поддержки нулевой конфигурации для шаблонов SVG.

Конфигурация rewrite URL Nginx​

Code:
location ^~ /data/svg/ {
   access_log off;
   rewrite ^/data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ /svg.php?svg=$4&s=$1&l=$2&d=$3$args last;
   return 403;
}

Конфигурация rewrite URL-адресов Apache​


Добавьте правило перед финалом index.php;

RewriteRule ^data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ svg.php?svg=$4&s=$1&l=$2&d=$3 [B,NC,L,QSA]

т.е. должно выглядеть примерно так:
Code:
#    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/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
    RewriteRule ^data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ svg.php?svg=$4&s=$1&l=$2&d=$3 [B,NC,L,QSA]
    RewriteRule ^.*$ index.php [NC,L]

Для работы требуется дополнение Browser Detection
Author
Red_Dragon
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from Red_Dragon

Top