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

 

Edited by Miguel92
Info importante

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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...

Share this post


Link to post
Share on other sites

  • Similar Content

    • By 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 ←
       
      Cambio adicional:
      Buscar en header.php
      define('TS_EXTRA', TS_ROOT.'/inc/ext/'); y debajo pegamos
      define('TS_SMARTY', TS_ROOT.'/inc/smarty/'); más abajo buscamos
      include TS_CLASS.'c.smarty.php'; y reemplazamos por
      include TS_SMARTY.'SmartyBC.class.php'; luego más abajo buscar
      $smarty = new tsSmarty(); y reemplazarlo por
      $smarty = new SmartyBC();  
       
    • By 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', '<'))  
    • By 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 ←

    • By Miguel92
      Bueno encontré este mini error al querer crear un theme nuevo, el problema es que no importa lo que lo pongas siempre lee el "default", para evitar este problema busquen en:
       
      Raíz/footer.php Línea :27
            $smarty->setTemplateDir(TS_ROOT . DIRECTORY_SEPARATOR .'themes'. DIRECTORY_SEPARATOR . 'default' . DIRECTORY_SEPARATOR . 'templates');  
      y la reemplazan por 
            $smarty->setTemplateDir(TS_ROOT . DIRECTORY_SEPARATOR .'themes'. DIRECTORY_SEPARATOR .TS_TEMA. DIRECTORY_SEPARATOR . 'templates');  
      Esto hara que lea el theme actual y no el default
    • By giuliog
      Hola de nuevo, existe algún mod o código para que la página comprima automáticamente las imágenes y reducir así el tiempo de carga? 
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Patrocinador



  • ×