Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
Miguel92

Comprimir HTML con Smarty v2 / v3

Recommended Posts

Bueno para hacer un poco más rápida nuestra web, una de esas formas sería comprimir el html de la web, y en vez de sacar espacios archivos por archivos usaremos una línea de código que hará el trabajo por nosotros, lo bueno de esto es que sólo comprimira el html y no el script que este agregado, ya que puede que les de error.

 

En este caso les mostraré para todos los que tienen Smarty actualizado (a la versión 3.1.32).
1 - Abrimos el header.php y debajo de 

    // Mensajes
    $smarty->assign('tsMPs',$tsMP->mensajes);


agregamos esto

    // Comprime todo el HTML
    $smarty->loadFilter('output', 'trimwhitespace');

    
este es opcional, no es necesario. Solo por si quieren saber si tienen error de php (¿Creo?) es lo que tengo en MozzFire

    // Modo desarrollador, digamoslo así jajaja
    $smarty->debugging = true;

 

En este caso les mostraré para todos los que tienen Smarty por defecto (la versión 2.6.30).
1 - Abrimos el header.php y debajo de 

    // Mensajes
    $smarty->assign('tsMPs',$tsMP->mensajes);


agregaremos esto

    // Sistema para comprimir HTML por Miguel92
    function html_comprimir($buffer){
        return preg_replace(array('//Uis',"/[[:blank:]]+/"),array('',' '),str_replace(array("\n","\r","\t"),'',$buffer));
    }
    ob_start("html_comprimir");

2 - Luego abriremos footer.php y al final de todo el código agregamos esto

    ob_end_flush();

 

+ A FAVOR:
    Smarty v2 y Smarty v3 = Es que comprimira el código para que la web sea un poco más rápida, lo cual mejorará! 

 

NOTA: Topic actualizado, ya comprimira todo sin problemas... Aun no me ha dado error! Gracias a @Alucard que me hizo recordar la otra función.

======================= | | | + | | | =======================

07/10/2018:

Bueno en este caso se encontró un problema con esto

        // Eliminar comentarios //
        return preg_replace('/^\h*(?|(.*"[^"]*\/\/[^"]*".*)|(.*)\/\/.*\h*)$/m', '$1', $buffer);

De funcionar funciona perfectamente, pero hay funciones que usa {literal}..{/literal} y esa función borra el {literal} provocando así error!

Una de las formas de poder implementarlo es buscar todos los

        // {literal}
        // {/literal}

y cambiarlos por

        /* {literal} */
        /* {/literal} */

 

Aunque yo recomiendo actualizar el Smarty ya que es mucho más simple.

 

======================= | | | + | | | =======================

 

Enlace de la web que obtuve la información:
https://stackoverflow.com/questions/18673684/minify-html-outputs-in-smarty

 

Enlace de donde obtuve "Eliminar comentarios //"

https://es.stackoverflow.com/questions/187086/expresion-regular-para-eliminar-comentarios-js-html-y-css

 

Ver video tutorial

 

Editado por Miguel92
Info importante

Compartir este post


Enlace al post
Compartir en otros sitios

Podrias crear otra expresion regular para borrar los comentarios desde la misma funcion html_comprimir() asi te evitarias editar los comentarios.

Compartir este post


Enlace al post
Compartir en otros sitios
hace 1 hora, Alucard dijo:

Podrias crear otra expresion regular para borrar los comentarios desde la misma funcion html_comprimir() asi te evitarias editar los comentarios.

jaja sabes que la había pensado, pero no sé porque no lo puse..o crei haber intentado, ni me acuerdo...capaz lo intente ahora

Compartir este post


Enlace al post
Compartir en otros sitios
hace 6 horas, Alucard dijo:

O.o seguro que elimina los comentarios? el primer return detendria la ejecucion de la funcion :S 

Por el momento lo hizo ya que lo probe en otro que no tenia los cambios, y comprime...igual le daré una revisión...

Compartir este post


Enlace al post
Compartir en otros sitios

  • Similar Content

    • Por Miguel92
      Bueno ya esta disponible
      MozzFire v4.1.1
      DESCARGAR
       
      Ahora explicó porque cambió mucho las versiones:
      1 - Se que primero era 3.3.4 ¿creó? era por jquery 3.3.1, smarty 3.1.32 y bootrap 4.1
      2 - Y quedé con MozzFire v4.1.1 porque no me di cuenta que lo había cambiado así lo deje.
       
      ¿Porque en GitHub?
      Porque me evito comprimir y subir repeticiones del mismo "script" de diferentes modos osea del más viejo al más nuevo.
       
       
      ==============================================================================================
      NOTA:
      He hecho un cambio hoy 07/06 y se ocultará el archivo popper.min.js al momento y únicamente al crear un post, ya que descubri que este archivo provoca un error en el editor de wysibb que no deja poner un color al texto, así que lo único raro que va a funcionar va a ser cuando se cree un post, pero no afectará al resto de la página...he estado buscando solución pero no logro encontrarla.
      ==============================================================================================
       
       
      Se ha realizado un cambio bastante notorio en el instalador se usa de la misma manera http://www.tuweb.com/instalador/index.php, pero en este caso tendrá 3 opciones:
       
      OPCIÓN 1: Es para install/instalarlo desde cero, en el caso que quieras iniciar una web desde cero.
       
      OPCIÓN 2: Es un upgrade/actualizador, esto servirá para agregar las consultas necesarias sin que pierdas en contenido de tu base de datos...Obviamente voy a recomendar hacer una backup/copia de su tabla antes de cualquier inconveniente
       
      OPCIÓN 3: Esto es en el caso que en el cpanel tengas la versión de PHP 5.6 y la actualices a PHP 7.2(la más reciente) tengas que hacer un mini-cambio a la base de datos habilitando todos los privilegios porque si no, no te dejará entrar...
       
      Obviamente todo aquel que quiera hacer cambios y no encuentre la forma de hacerlo me puede avisar y con gusto los ayudaré con la modifcación...
       
    • Por Miguel92
      La actualización es muy rápida y no requiere hacer ninguna modificación
      al menos que el usuario la requiera, pero se puede hacer otro tutorial
      agregando un plugin en smarty y/o uso de ello
       
      Incorporar un nobbcode: Quita las etiquetas del bbcode y usarlo como descripción del post en el home (Usando el contenido del body del post)
      --------------------------------------
      O usar el strip_tags
      Referencias:
      → php.net (http://php.net/manual/es/function.strip-tags.php)
      → smarty.net (https://www.smarty.net/docsv2/es/language.modifier.strip.tags.tpl)
       
      Visiten la página en github: Web(del tutorial)
       
      Ver tutorial → Ver ahora ←
    • Por Miguel92
      Actualizar Smarty 2.1 a 3.1.31
       
      Descargar la última versión de Smarty 3.1.31 la puedes encontrar aq uí:
      smarty3.1.31.zip
       
      Lo inician www.tuweb.com/updater/index.php
       
      Damos clic en "Empezar Actualización" y eligen una de las 2 opciones la Smarty normal y la opción Smarty BC.
       
      Ahora esto es opcional:
      Es cambiar el nombre a la carpeta que se encuentra en cache llamada templates_c y llamarla como deseemos en mi caso será themes_TUTHEME_cache, bien para realizarlo vamos a 
      Raíz/smarty/Smarty.class.php y buscamos la línea 358
          public $compile_dir = TS_ROOT.DIRECTORY_SEPARATOR.'cache'.DIRECTORY_SEPARATOR.'templates_c'.DIRECTORY_SEPARATOR; y la reemplazamos por
          public $compile_dir = TS_ROOT . DIRECTORY_SEPARATOR . 'cache' . DIRECTORY_SEPARATOR . 'theme_' . TS_TEMA . '_cache' . DIRECTORY_SEPARATOR; TS_TEMA = Es el nombre de tu tema (ej: si se llama taringa, entonces será theme_taringa_cache)
       
      Ahora este paso también opcional:
      Con esto sabremos si estamos con la versión correcta de PHP, para ello buscamos Raíz/header.php y debajo de
      /**  * Archivo de Inicialización del Sistema  *  * Carga las clases base y ejecuta la solicitud.  *  * @name    header.php  * @author  PHPost Team  */
       Agregamos, esto quiere decir que debes tener la versión 7.0.0 o mayor, si es menor se mostrará el mensaje que esta en el h1 y h2
      /* Requirimiento de Php 7.0 */ if (version_compare(PHP_VERSION, '7.0.0', '<')) exit('<link href="https://fonts.googleapis.com/css?family=Exo" rel="stylesheet"><div style="font-family:Exo;text-align:center;border: 1px solid transparent; padding:10% 0;">     <h1>Tu versión es: <br><b style="font-size:3em">'.PHP_VERSION.'</b></h1> <br>     <h2>Necesitas la versión PHP 7.0+ o superior</h2><p>Perdón las molestias @Miguel92</p></div>'); se visualiza de esta manera...

      Aclaró que he modificado esta parte para que se pueda ver como es... le había puesto 7.2.0
      version_compare(PHP_VERSION, '7.0.0', '<'))  
    • Por Miguel92
      Bueno antes de hacer la actualización ya deben tener la versión V5 de @Tronlar del día Mayo 30, 2016 en Diseños terminados 
       
       
      Una vez que lo tengan ya instalado tal como dice su tutorial deben hacer lo siguiente:
      Deben ejecutar esta consulta 
      ALTER TABLE `w_configuracion` ADD `publickey` VARCHAR(80) NOT NULL AFTER `url`, ADD `privatekey` VARCHAR(80) NOT NULL AFTER `publickey`; Esta es la actualización del theme Taringa V5
      Se actualizó a: 
      * PHP 7.0+
      * Smarty 3.1.31
      * Jquery 3.3.1
      * Recaptcha V2
      * Recaptchalib.php
      * De limit a truncate
       
      Archivos modificados el día 01/02/2018
      header.php
      footer.php
      CLASS
      inc/class/c.admin.php
      inc/class/c.comunidades.php
      inc/class/c.muro.php
      inc/class/c.registro.php
      inc/class/c.smarty.php
       
      EXT
      inc/ext/functions.php
      inc/ext/recaptchalib.php
       
      SMARTY
      inc/smarty/* todos los archivos
       
      DEFAULT
      themes/default/estilo.css
       
      JS
      themes/default/js/acciones.js
      themes/default/js/cuenta.js
      themes/default/js/cuentados.js
      themes/default/js/favoritos.js
      themes/default/js/funciones.js
      themes/default/js/jquery.color.js
      themes/default/js/jquery.fancybox.js
      themes/default/js/jquery.imgpreload.js
      themes/default/js/jquery.mousewheel.pack.js
      themes/default/js/jquery.plugins.js
      themes/default/js/jquery.min.js * SE ELIMINO
      themes/default/js/jquery-3.3.1.min.js * SE AGREGÓ
      themes/default/js/live.js
      themes/default/js/perfil.js
      themes/default/js/registro.js
      themes/default/js/shout.js
       
      TEMPLATES
      themes/templates/t.envivo.tpl
      themes/templates/t.juegos.tpl
      themes/templates/t.login.tpl
      themes/templates/t.moderacion.tpl
      themes/templates/t.mod-history.tpl
      themes/templates/t.pages.tpl
      themes/templates/t.registro.tpl
       
      ADMIN_MODS
      themes/templates/admin_mods/m.admin_configs.tpl
       
      COMUNIDADES
      themes/templates/comunidades/c.com_right.tpl
      themes/templates/comunidades/c.directorio_left.tpl
      themes/templates/comunidades/c.inicio_center.tpl
      themes/templates/comunidades/c.mis-comunidades_left.tpl
      themes/templates/comunidades/c.tema_autor.tpl
       
      MODULES
      themes/templates/modules/ se modificarón 25 archivos (para no poner a todos)
       
      SECTIONS
      themes/templates/sections/head_categorias_v6.tpl
      themes/templates/sections/head_filtro_pais.tpl
      themes/templates/sections/main_header.tpl
      themes/templates/sections/menu_usuario.tpl
       
      T.PHP_FILES
      themes/templates/t.php_files/p.envivo.actividad.tpl
      themes/templates/t.php_files/p.perfil.follows.tpl
      themes/templates/t.php_files/p.perfil.medallas.tpl
      themes/templates/t.php_files/p.portal.lista-pins.tpl
      themes/templates/t.php_files/p.posts.home-shouts.tpl
      themes/templates/t.php_files/p.posts.last-comentarios.tpl
      themes/templates/t.php_files/p.posts.posts-destacados.tpl
      themes/templates/t.php_files/p.posts.preview.tpl
      themes/templates/t.php_files/p.posts.top-posts.tpl
      themes/templates/t.php_files/p.registro.form.tpl
       
      Descarga los archivos actualizados: → PINCHA AQUÍ ← el archivo pesa 547kb
       
      Cualquier problema avisarme!
       
       
      PD: Deben ir a https://www.google.com/recaptcha/admin#list para conseguir las clave pública y clave privada, luego va a  administración → configuración y desde allí agregan las claves
       
      para más información:
       
      He encontrado un bug, despues de actualizar busquen en el archivo inc/class/c.monitor.php línea 245
      function setFollowNotificacion($notType, $f_type, $user_id, $obj_uno, $obj_dos = 0, $excluir){ y la reemplazan por esta
      function setFollowNotificacion($notType = NULL, $f_type = NULL, $user_id = NULL, $obj_uno = NULL, $obj_dos = 0, $excluir = NULL){ Luego buscan en el archivo templates/t.moderacion.tpl en la línea 15 reemplacen
       
                                      {include file='admin_mods/m.mod_report_comunidades.tpl} por esta 
                                      {include file='admin_mods/m.mod_report_comunidades.tpl'} Luego en el mismo archivo en la línea 17
       
                                      {include file='admin_mods/m.mod_report_temas.tpl} por 
                                      {include file='admin_mods/m.mod_report_temas.tpl'}  
      Nuevos arreglos en las comunidades "Crear Temas" y "Comentar temas" [Día 17/02/2018]
       
      CSS
      themes/default/css/comunidades.css
       
      JS
      themes/default/js/acciones.js
      themes/default/js/comunidades.js
       
      TEMPLATES
      themes/default/templates/comunidades/c.agregar_tema.tpl
       
      Descarga los archivos modificados → default.zip ←

    • Por Miguel92
      Bueno esta actualización la he realizado en el día de hoy 02/02/2018 
      [3.1.31] - 02-02-2018
      Se actualizó el jquery 3.0.0 a Jquery 3.3.1 Se actualizó todos los javascript Se actualizó el jquery.plugins.js Se actualizó el wysibb Se ha agregado el ingreso de clave pública / privada desde la admin Se cambió el hovercard por vcard Se eliminarón archivos que no eran funcionales Se movieron css / js / fonts Se eliminó cuentados.js Se eliminó jquery.form.js Se eliminó jquery.tablednd.js No se ha tocado casi nada del diseño Se actualizó el instalador ya tiene las consultas de las claves y políticas! Se agregó el Mod de políticas de cookies 2018 [Funciona perfectamente era el caché del navegador]  
      YA LO PUEDEN ENCONTRAR EN MI REPOSITORIO DE GITHUB CLICK AQUÍ
      todos los archivos modificados dirán "Nuevas actualizaciones 2018"
  • Navegando Recientemente   0 miembros

    No registered users viewing this page.

  • Patrocinador



  • ×