Theme editor

  • New XenForo Released Full Nulled 2.3.10 is available for download now. -> HERE
    New XenForo Released Upgrade Nulled 2.3.10 is available for download now. -> HERE
    XenForo Enhanced Search (XFES) 2.3.10 is available for download now. -> HERE
    XenForo Resource Manager (XFRM) 2.3.10 is available for download now. -> HERE
    XenForo Media Gallery (XFMG) 2.3.10 is available for download now. -> HERE

Svg Template by Xon

| XF 2.3 Add-ons (Free) Svg Template by Xon 2.6.3

No permission to download
💾 Resources submitted by: Staraddons • 💬 Posts: 1579 • 🏆 Points: 119 • 👍 Likes: 455 • ⬆️ Resources: 986
Language
English
Compatible XF 2.x versions
  1. 2.2
  2. 2.3
Additional requirements
php 7.2+
Standard Library by Xon v1.20.0+ (free)
If installed: Redis Cache addon v2.17.0+
Depending on configuration, this add-on requires webserver URL rewrite support!

SVG Template

Depending on configuration, this add-on requires webserver URL rewrite support!

Allows SVG (Scalable Vector Graphics) images to be stored as templates. This creates a new svg.php file in the XF root directory.

To generate a link to an SVG template (The template must have .svg at the end of the name!) ;
Code:
{{ 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>

Render to PNG

Rendering SVGs to PNGs requires external support, and depending on OS this may result in odd limitations or poor rendering.

php-imagick support

It is not recommended to use Imagick if it can be helped!

Ubuntu (using https://launchpad.net/~ondrej/+archive/ubuntu/php PPA);
Code:
Expand Collapse Copy
sudo apt install php7.4-imagick libmagickcore-6.q16-3-extra
sudo systemctl restart php7.4-fpm

Note; some distro's require libmagickcore-6.q16-3-extra to be installed to enable SVG support.

Older versions of Imagick have poor SVG support, on top of Imagick's poor security reputation.

CLI support

This is a generic escape hatch to plug in arbitrary png conversion, using proc_open in php.

Configure Render using proc_open option with;
Code:
<CLI-binary> {destFile} {sourceFile}
{sourceFile} is the source SVG written as a temp file {destFile} is the destination PNG file as a temp file

Alternatively input/output can be done via pipes

Note; template names are only alpha-numeric strings, which is enforced by validation before the CLI option is called

resvg CLI support

Example using resvg v0.35.0+, configure CLI - Pipe command with;
Code:
/usr/local/bin/resvg --quiet --resources-dir=/tmp/ - -c
Example using resvg, configure CLI command with;
Code:
/usr/local/bin/resvg --quiet {sourceFile} {destFile}

Precompiled binary

Pre-compiled linux x86_64 binary has been made available here. Compiled on CentOS 7, works on Ubuntu 18.04/20.04/22.04

Compiling

Compiling may bind to newer versions of glibc which can cause portability issues
Code:
Expand Collapse Copy
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 support

Note; use snap as otherwise it is likely to have too old an instance!
Code:
sudo snap install inkscape
Configure CLI PIPE command with;
Code:
inkscape --export-type=png -p

Features

Conditional rendering SVGs to PNG (for CSS/LESS)

An example of conditional CSS to use the png over the svg for mobile clients
Less:
Expand Collapse Copy
.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>
    }
}

Explicit usage in templates;
XML:
Expand Collapse Copy
<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 routing integration

While webserver rewrite rules are recommended, this add-on supports extending XenForo's routing system to provide zero-configuration support for SVG Templates

Nginx URL rewrite config

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

Apache URL rewrite config

Add the rule before the final index.php;
Code:
RewriteRule ^data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ svg.php?svg=$4&s=$1&l=$2&d=$3 [B,NC,L,QSA]
ie, should look similar to;
Code:
Expand Collapse Copy
    #    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.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]
User Activity by Xon
| XF 2.3 Add-ons (Free) User Activity by Xon 2.14.1
Happy Birthday Emails
| XF 2.3 Add-ons (Free) Happy Birthday Emails 1.0.2
  • Like
Reactions: nakano
2.6.3
Version
1
Downloads
19
Views
First release
Last update
36.5 KB
File size
zip
Extension type
0.00 star(s) 0 ratings
Ratings
Uploader
Staraddons
Uploaded
986 Resources.
Available Tags:
  • Tags Tags
    svg svg templates
  • More resources from Staraddons

    Latest updates

    1. Update 2.6.3

      Fix falsy template name for svg's wasn't supported (ie 0.svg) Fix style variant support for...
    Similar content Most view View more
    Back
    Top