- Compatibilité XF
- 2.3.x
- 2.2.x
- Description courte
- XenForo 2 SVG Template Add-on v1.12.0+: Allows storing and generating SVG templates for easy image management. Supports URL rewriting for clean URLs and rendering to PNG using CLI or pre-compiled binaries like php-imagick, resvg, and Inkscape. Compatible with XenForo 2 routing system via Nginx/Apache rewrite rules.
ExigerStandard Library By Xonv1.12.0+
Selon la configuration, ce filtre nécessite le support de l'URL rewrite du serveur web!
Selon la configuration, ce filtre nécessite le support de l'URL rewrite du serveur web!
Permet aux images SVG (Graphics Scalables Vector) d'être stockées en tant que modèles. Cela crée un nouveau fichier svg.php dans le répertoire racine XF.
Pour générer une URL vers un modèle SVG (Le modèle doit avoir .svg à la fin de son nom !);
Conversion des SVG à PNG nécessite du support externe et cela peut entraîner des limitations ou un rendu médiocre en fonction de l'OS.
C'estnon recommandéutiliser Imagick si c'est possible !
Ubuntu (utilisant )https://launchpad.net/~ondrej/+archive/ubuntu/phpPPA); Code:
Note; certain distro's requièrent libmagickcore-6.q16-3-extra pour être installé pour activer le support SVG. Les anciennes versions d'Imagick ont un soutien SVG médiocre, surmontant la réputation de sécurité défectueuse d'Imagick.
Ceci est un accélérateur critique pour remplacer n'importe quel convertisseur de PNG en utilisant proc_open en PHP.
Configurer Render avec l'option proc_open;
{loteSourceFile} est le fichier SVG source écrit en tant que fichier temporaire {fichierDestPNG} est le fichier PNG de destination écrit en tant que fichier temporaire
Alternativement, l'entrée/sortie peut être faite par des pipes
Note; les noms de modèles sont uniquement des chaînes alpha-numerices, ce qui est contrôlé avant qu'une option CLI ne soit appelée
Exemple utilisantresvgconfigurer commande CLI avec;
Binary binaire pré-compiler pour Linux x86_64 est disponiblehereCompile sur CentOS 7, fonctionne sur Ubuntu 18.04/20.04
La compilation peut lier à des versions plus récentes de glibc ce qui peut causer des problèmes de compatibilité
Configurer le commande PIPE du CLI avec;
Usage explicite dans les modèles;
et, devrait ressembler à;
Features de contribution ou corrections de bugsCréez une demande de fusion via la liasse "Plus d'informations".
Selon la configuration, ce filtre nécessite le support de l'URL rewrite du serveur web!
Selon la configuration, ce filtre nécessite le support de l'URL rewrite du serveur web!
Permet aux images SVG (Graphics Scalables Vector) d'être stockées en tant que modèles. Cela crée un nouveau fichier svg.php dans le répertoire racine XF.
Pour générer une URL vers un modèle SVG (Le modèle doit avoir .svg à la fin de son nom !);
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>
C'estnon recommandéutiliser Imagick si c'est possible !
Ubuntu (utilisant )https://launchpad.net/~ondrej/+archive/ubuntu/phpPPA); Code:
Code:
sudo apt install php7.4-imagick libmagickcore-6.q16-3-extra
sudo systemctl restart php7.4-fpm
Ceci est un accélérateur critique pour remplacer n'importe quel convertisseur de PNG en utilisant proc_open en PHP.
Configurer Render avec l'option proc_open;
<CLI-binary> {destFile} {sourceFile}{loteSourceFile} est le fichier SVG source écrit en tant que fichier temporaire {fichierDestPNG} est le fichier PNG de destination écrit en tant que fichier temporaire
Alternativement, l'entrée/sortie peut être faite par des pipes
Note; les noms de modèles sont uniquement des chaînes alpha-numerices, ce qui est contrôlé avant qu'une option CLI ne soit appelée
Exemple utilisantresvgconfigurer commande CLI avec;
Code:
/usr/local/bin/resvg --quiet {sourceFile} {destFile}
La compilation peut lier à des versions plus récentes de glibc ce qui peut causer des problèmes de compatibilité
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
support-cli-inscriptions-spécifications
Note; utilisez snap plutôt, sinon il est probablement trop ancien!
Code:
sudo snap install inkscape
Code:
inkscape --export-type=png -p
Rendre conditionnellement des SVG en PNG pour la CSS/LESS
Un exemple de CSS conditionnel pour utiliser un PNG au lieu d'un SVG pour les clients mobiles
Code:
.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>
}
}
Code:
<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>
routing intégration xenforo 2
Bien que les règles de rewriting du serveur Web soient recommandées, cet ajouticiel supporte l'extension du système de routage de XenForo pour fournir un soutien en configuration zéro pour les modèles SVG
Code:
location ^~ /data/svg/ {
access_log off;
rewrite ^/data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ /svg.php?svg=$4&s=$1&l=$2&d=$3$args last;
return 403;
}
Apache configuration de rewriting d'URL
Ajouter la règle avant le final index.php;
Code:
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
RewriteCond %{REQUEST_FILENAME} -l
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ -
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) -
RewriteRule ^data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ svg.php?svg=$4&s=$1&l=$2&d=$3 [B,NC,L,QSA]
RewriteRule ^.*$ index.php