Default XenForo 2 Icon

XF2 Addons Svg Template by Xon 1.6.1
Allows SVG (Scalable Vector Graphics) images to be stored as templates

Compatible versions
2.2, 2.3
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:
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
  • Like
Reactions: Suvcioo
shanruto
Author shanruto
Level
10
5,175 pts
1.6.1 Version
0 Downloads
451 Views
Published
Updated
0.00 star(s) 0 ratings Average Rating (0)
No Tags

More files from shanruto

Top Bottom