- Compatibilité XF
- 2.3.x
- 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 !
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 !)
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.
Il est non recommandé d'utiliser Imagick si c'est possible !
Ubuntu (utilisant https://launchpad.net/~ondrej/+archive/ubuntu/php PPA);
Code:
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.
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 ;
{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.
Exemple en utilisant resvg, configurez la commande CLI avec ;
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
La compilation peut être liée à des versions plus récentes de glibc ce qui peut causer des problèmes de portabilité.
Remarque : utilisez snap sinon cela est probablement trop ancien.
Configurez la commande CLI PIPE avec ;
Less:
Usage explicite dans les modèles ;
Par exemple, devrait ressembler à ;
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".
La dépendance à la configuration, ce pack ajoute nécessite le support de reécriture de URL par un serveur web !
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>
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
Les anciennes versions d'Imagick ont un support SVG médiocre, surmonté par la réputation de sécurité médiocre d'Imagick.
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.
Exemple en utilisant resvg, configurez la commande CLI avec ;
Code:
/usr/local/bin/resvg --quiet {sourceFile} {destFile}
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
Code:
sudo snap install inkscape
Code:
inkscape --export-type=png -p
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>
}
}
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]
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]
S'il vous plaît créez une requête de pull GitHub via le lien "Plus d'informations".