Modèle SVG par Xon

Modèle SVG par Xon 2.7.0

Vous n'avez pas l'autorisation de télécharger
Compatibilité XF
  1. 2.3.x
  2. 2.2.x
Description courte
Cette add-on nécessite le support des réécritures URL du serveur web selon la configuration !
Requiert Bibliothèque Standard v1.12.0+
La dépendance à la configuration, ce pack ajoute nécessite le support de reécriture de URL par un serveur web !

Modèle SVG​

La dépendance à la configuration, ce pack ajoute nécessite le support de reécriture de URL par un serveur web !
Permet de stocker des images SVG (Graphics Vector Scalable) en tant que modèles. Cela crée un nouveau fichier svg.php dans le répertoire racine d'XF.
Pour générer un lien vers un modèle SVG (Le modèle doit avoir un .svg à la fin du 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>

Rendre en PNG​

L'affichage des SVG en PNG nécessite un support externe, et cela dépend de l'OS cela peut entraîner des limitations inégales ou une affichage médiocre.

Support php-imagick​

Il est non recommandé d'utiliser Imagick si c'est possible !
Ubuntu (utilisant https://launchpad.net/~ondrej/+archive/ubuntu/php PPA);
Code:
Code:
sudo apt install php7.4-imagick libmagickcore-6.q16-3-extra
sudo systemctl restart php7.4-fpm
Remarque : certaines distributions nécessitent l'installation de libmagickcore-6.q16-3-extra pour activer le support SVG.
Les anciennes versions d'Imagick ont un support SVG médiocre, surmonté par la réputation de sécurité médiocre d'Imagick.

Support CLI​

C'est un échappatoire générique pour insérer un conversion png arbitraire, en utilisant proc_open dans php.
Configurez la Rendue en utilisant l'option CLI avec ;
<CLI-binary> {destFile} {sourceFile}
{sourceFile} est le fichier SVG source écrit comme un fichier temp {destFile} est le fichier de destination PNG écrit comme un fichier temp
Alternativement, l'entrée/sortie peut être faite via des pipes
Remarque : les noms de modèles sont uniquement des chaînes alpha-numeric, ce qui est contrôlé par la validation avant qu'on appelle l'option CLI.

Support CLI de resvg​

Exemple en utilisant resvg, configurez la commande CLI avec ;
Code:
/usr/local/bin/resvg --quiet {sourceFile} {destFile}

Binaires précompilés​

Un binôme Linux x86_64 précompilé a été rendu disponible ici. Compilé sur CentOS 7, cela fonctionne sur Ubuntu 18.04/20.04

Compilation​

La compilation peut être liée à des versions plus récentes de glibc ce qui peut causer des problèmes de portabilité.
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 de Inkscape​

Remarque : utilisez snap sinon cela est probablement trop ancien.
Code:
sudo snap install inkscape
Configurez la commande CLI PIPE avec ;
Code:
inkscape --export-type=png -p

Fonctionnalités​

Affichage conditionnel SVG en PNG (pour CSS/LESS)​

Un exemple de la CSS conditionnelle utilisant le PNG pour les clients mobiles.
Less:
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>
}
}
Usage explicite dans les modèles ;
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>

Intégration de la routage de XenForo 2​

Même si les règles de reécriture de serveur web sont recommandées, ce pack ajoute support pour l'extension du système de routage de XenForo pour fournir un soutien sans configuration pour les modèles SVG.

Configuration de l'URL de reécriture 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;
}

Configuration de l'URL de reécriture Apache​

Ajoutez la règle avant le fichier index.php final ;
Code:
    RewriteRule ^data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ svg.php?svg=$4&s=$1&l=$2&d=$3 [B,NC,L,QSA]
Par exemple, devrait ressembler à ;
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]
Contributions de fonctionnalités ou de fixes de bugs
S'il vous plaît créez une requête de pull GitHub via le lien "Plus d'informations".
Auteur
anne51
Vues
576
Type d’extension
zip
Taille du fichier
37.7 Ko
Première publication
Dernière mise à jour
Évaluations 0.00 étoile(s) 0 évaluations
Link was Broken? Please Envoyer un message à l’équipe NP et nous vous aiderons rapidement !
Soutenez le développeur Si vous êtes satisfait du test ou que votre projet vous a rapporté de l’argent, cliquez sur le bouton « Plus d’informations » pour soutenir le développeur en achetant.

Dernières mises à jour

  1. 2.7.0 - change log
    Require StandardLib v1.23.0+ php 8.4+ compatibility fixes Prevent XF2.3 injecting the template...
  2. 2.6.3 - change log
    Fix falsy template name for svg's wasn't supported (ie 0.svg) Fix style variant support for...
  3. 2.6.2 - changelog
    Provide a better error message when getSvgUrl is used to request a png of an svg when svg => png...

Ressources similaires

[AndyB] Affiliate parser A
Adds an affiliate ID to the end of a specified URL
[SVG] Sticky Threads Separation A
Etting up fixed themes. Settings in style settings.
Separate Sticky and Normal Threads (XF +2.x) by Xon A
A template modification to separate Sticky and Normal threads.
Haut