• Для скачивания файлов Вам необходимо быть зарегистрированным пользователем, иметь 5 полезных сообщений и 5 реакций - состоять в группе Местный !
Иконка ресурса

Плагин SVG Template by Xon 1.6.1

Позволяет сохранять изображения SVG в виде шаблона
  • Автор Автор Pokschubin™
  • Дата создания Дата создания
Совместимость с XenForo
  1. 2.2
Видимый копирайт
Нет
В зависимости от конфигурации, для этого дополнения требуется поддержка перезаписи URL веб-сервера!

SVG-шаблон​

В зависимости от конфигурации, для этого дополнения требуется поддержка перезаписи URL веб-сервера!

Позволяет сохранять изображения в формате 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 (с использованием https://launchpad.net /~ondrej/+archive/ubuntu/php PPA);
Код:
sudo apt install php7.4-imagick libmagickcore-6.q16-3-extra
sudo systemctl restart php7.4-fpm

Примечание; для включения поддержки SVG в некоторых дистрибутивах требуется установка libmagickcore-6.q16-3-extra.

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

Поддержка CLI​

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

Настройте визуализацию с помощью опции proc_open с;
<CLI-binary> {destFile} {sourceFile}

{SourceFile} - исходный SVG-файл, записанный как временный файл {destFile} - конечный PNG-файл в виде временного файла

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

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

поддержка командной строки resvg​

Пример использования resvg версии 0.35.0+, команда configure CLI - Pipe с;
Код:
/usr/local/bin/resvg --quiet --resources-dir=/tmp/ - -c

Пример использования resvg, настройте команду CLI с помощью;
Код:
/usr/local/bin/resvg --quiet {sourceFile} {destFile}

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

Предварительно скомпилированный двоичный файл Linux x86_64 стал доступен здесь. Скомпилирован на CentOS 7, работает на Ubuntu 18.04/20.04/22.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

Поддержка командной строки 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>

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

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

Nginx URL переписать конфигурацию​

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

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

Добавьте правило перед окончательным index.php;
Код:
    RewriteRule ^data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ svg.php?svg=$4&s=$1&l=$2&d=$3 [B,NC,L,QSA]

ie, должен выглядеть аналогично;
Код:
    #    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]
  • Автор
    Pokschubin™
    Скачиваний
    0
    Просмотры
    126
    Первый выпуск
    Обновление

    Рейтинги

    0 00 звёзд Оценок: 0
    Нет прав для скачивания

    Ещё ресурсы от

    Последние обновления

    1. 1.6.1

      Исправлена поддержка вариантов стиля XF2.3 для getSvgUrl() в свойствах стиля
    2. 2.6.0

      Требуется StandardLib версии v1.19.0+ Если установлен, требуется кэш Redis 2.17.0+ Обновление...
    3. 2.5.2

      Исправлено "[E_DEPRECATED] strlen(): передача null параметру #1 ($string) типа string не...

    Похожие ресурсы

    [SVG] Custom Footer
    Возможность настраивать копирайт по своему усмотрению
    Скачиваний
    0
    Обновлено
    [SVG] Flag Icons
    Иконки флагов стран мира
    Скачиваний
    0
    Обновлено
    [SVG] Forum logo Pokschubin™
    Расширение настроек логотипа форума
    Скачиваний
    0
    Обновлено
    [SVG] Forum Statistics Below Nodes
    Виджет статистики форума под списком форумов
    Скачиваний
    2
    Обновлено
    Назад
    Верх Низ