- Compatibilidad con XF
- 2.3.x
- 2.2.x
- Descripción breve
- Dependiendo de la configuración, este complemento requiere el soporte de reglas de enrutamiento de URL del servidor web!
Requiere Biblioteca estándar v1.12.0+
Dependiendo de la configuración, este complemento requiere el soporte de reescritura de URLs del servidor web!
Dependiendo de la configuración, este complemento requiere el soporte de reescritura de URLs del servidor web!
Permite que las imágenes SVG (Graphics Escalable Vector Graphics) se almacenen como plantillas. Esto crea un nuevo archivo svg.php en el directorio raíz de XF.
Para generar una URL a una plantilla SVG (La plantilla debe tener .svg al final del nombre!) ;
La renderización de SVG a PNG requiere soporte externo, y dependiendo del sistema operativo, esto puede resultar en limitaciones o renderizaciones pobres.
No se recomienda usar Imagick si es posible!
Ubuntu (usando https://launchpad.net/~ondrej/+archive/ubuntu/php PPA);
Código:
Nota; algunas distros requieren la instalación de libmagickcore-6.q16-3-extra para habilitar el soporte SVG.
Las versiones antiguas de Imagick tienen un soporte SVG pobre, además de su reputación pobre en seguridad.
Este es un escape hach que se utiliza para insertar conversión de PNG arbitraria en php usando proc_open.
Configure Render usando la opción de línea de comando con;
{sourceFile} es el SVG escrito como un archivo temporal {destFile} es el archivo de destino PNG escrito como un archivo temporal
Opcionalmente, la entrada/salida puede realizarse a través de pipes
Nota; los nombres de las plantillas solo son cadenas alfanuméricas, lo que se asegura antes de que se llame la opción de línea de comando.
Se ha hecho disponible un binario precompilado para Linux x86_64 aquí. Compilado en CentOS 7, funciona en Ubuntu 18.04/20.04.
La compilación puede vincularse a versiones más recientes de glibc, lo que puede causar problemas de portabilidad.
Configure la línea de comando de PIPE con;
Less:
Uso explícito en las plantillas;
Por ejemplo, debería verse similar a;
Por ejemplo, debería verse similar a;
{{P:13}}
Contribuciones de características o de errores
Por favor cree una solicitud de aprobación de GitHub a través del enlace "Más información".
Dependiendo de la configuración, este complemento requiere el soporte de reescritura de URLs del servidor web!
Dependiendo de la configuración, este complemento requiere el soporte de reescritura de URLs del servidor web!
Permite que las imágenes SVG (Graphics Escalable Vector Graphics) se almacenen como plantillas. Esto crea un nuevo archivo svg.php en el directorio raíz de XF.
Para generar una URL a una plantilla SVG (La plantilla debe tener .svg al final del nombre!) ;
Código:
{{ 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>
No se recomienda usar Imagick si es posible!
Ubuntu (usando https://launchpad.net/~ondrej/+archive/ubuntu/php PPA);
Código:
Código:
sudo apt install php7.4-imagick libmagickcore-6.q16-3-extra
sudo systemctl restart php7.4-fpm
Las versiones antiguas de Imagick tienen un soporte SVG pobre, además de su reputación pobre en seguridad.
Este es un escape hach que se utiliza para insertar conversión de PNG arbitraria en php usando proc_open.
Configure Render usando la opción de línea de comando con;
<CLI-binary> {destFile} {sourceFile}{sourceFile} es el SVG escrito como un archivo temporal {destFile} es el archivo de destino PNG escrito como un archivo temporal
Opcionalmente, la entrada/salida puede realizarse a través de pipes
Nota; los nombres de las plantillas solo son cadenas alfanuméricas, lo que se asegura antes de que se llame la opción de línea de comando.
Soporte de línea de comando de resvg
Ejemplo usando resvg, configure la línea de comando con;
Código:
/usr/local/bin/resvg --quiet {sourceFile} {destFile}
La compilación puede vincularse a versiones más recientes de glibc, lo que puede causar problemas de portabilidad.
Código:
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
Soporte de línea de comando de Inkscape
Nota; usa snap, de lo contrario es probable que tenga una versión demasiado antigua.
Código:
sudo snap install inkscape
Código:
inkscape --export-type=png -p
Renderizado condicional de SVG a PNG (para CSS/LESS)
Ejemplo de uso condicional de CSS para usar el PNG en lugar del SVG para clientes móviles.Less:
Código:
.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>
}
}
Código:
<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 integración de rutas de XenForo 2
Aunque las reglas de reescritura de URLs del servidor web son recomendadas, este complemento soporta la extensión de la sistema de rutas de XenForo para proporcionar soporte sin configuración para las plantillas SVG.Configuración de rutas de URL de Nginx
Agregue la regla antes de la final index.php;
Código:
location ^~ /data/svg/ {
access_log off;
rewrite ^/data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ /svg.php?svg=$4&s=$1&l=$2&d=$3$args last;
return 403;
}
Código:
RewriteRule ^data/svg/([^/]+)/([^/]+)/([^/]+)/([^\.]+\..*)$ svg.php?svg=$4&s=$1&l=$2&d=$3 [B,NC,L,QSA]
Configuración de rutas de URL de Apache
Agregue la regla antes de la final index.php;
Código:
# 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]
{{P:13}}
Contribuciones de características o de errores
Por favor cree una solicitud de aprobación de GitHub a través del enlace "Más información".