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
      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
      include TS_CLASS.'c.smarty.php'; y reemplazarlo por
      require(TS_ROOT.DIRECTORY_SEPARATOR.'inc'.DIRECTORY_SEPARATOR.'smarty'.DIRECTORY_SEPARATOR.'SmartyBC.class.php');  
      luego más abajo buscar
      $smarty = new tsSmarty(); y reemplazarlo por
      $smarty = new SmartyBC();  
       
    • Por Miguel92
      Bueno esto es la actualización de este topic
       
      ACTUALIZADO:
      Jquery 3.3.1 Smarty 3.1.32 PHP 7.x (si hay más lo subiré) no esta al 100% Recaptcha v2 Wysibb No lo he reestructurado.
       
      PASOS:
      1 - Descargan el script (ya se encuentra reparado! Espero jajaja)
      2 - Lo descomprimen en su raíz o htdocs 
      3 - Solo es actualización, por lo que deben de tener instalado el script 1.2.x y 1.3.x.
      4 - Luego en la url escriben https://SUWEB.com/actualizador/ mantienen seleccionado "Realizarlas Automáticamente" y le dan al botón.
      5 - Si algunas de las operaciones dice "Error" no se preocupen, puede ser que ya tengan esa consulta realizada.
       
      DESPUÉS DE DESCARGAR:
      ✓ Arreglando el loading de la carga de la imagen
      Buscar en default/js/wysibb.js linea 2973 y buscamos
      <img src="'+global_data.img+'images/wysibb/loader.gif" /> y la reemplazamos por 
      <img src="'+global_data.img+'images/loading_bar.gif" />  
      ✓ Arreglando la subida de la imagen
      Buscar en inc/php/iupload.php y lo reemplazan por este iupload.php
       
      ✓ Arreglando esta parte obstruía el paso a los inputs, los veías pero no se podían tocar
      <!-- ACTUALIZADO POR MIGUEL92 --> <div style="padding: 8px 0; text-align:center;opacity: .5;">     Actualizado by @<a href="http://www.phpost.net/user/521013-miguel92/" target="_blank">Miguel92</a> </div> Reemplazas o eliminas, me da igual... a lado de opacity: .5; agregan clean: both; y listo ya se podrán registrar tranquilamente
       
       
      Para verla en funcionamiento pueden ir a https://infinitypost.ga obviamente que esa versión esta modificada a gusto, la web tiene agregado:
      + Administrar Avatar gif
      + Sitemap administrable
       
      PROBLEMAS ENCONTRADOS (por @jocker01)
      - Registro no FUNCIONA  (Recaptcha V2)
      - Creador post (Wysibb)  no funcionan
      - Agregar imagen  desde  URL  O COMPUTADORA  no responden
       
      PROBLEMAS RESUELTOS
      ✓ Recaptcha ya funciona, y es reducida (Nombre de usuario, Contraseña deseada, Email, Recaptcha v2)
      ✓ Creador post (Wysibb) ya funciona correctamente
      ✓ Agregar imagen  desde  URL  O COMPUTADORA, sube, corta la portada correctamente
      ✓ Se puede comentar en las fotos correctamente
      ✓ Se puede crear temas(en comunidades) correctamente
      ✓ Se puede comentar en los temas correctamente
       
      Cualquier problema lo pueden comentar en este topic o en mi servido de Discord https://discord.gg/qzVAQZU en el que estoy más conectado.
       
       
    • 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
      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 ←

  • Navegando Recientemente   0 miembros

    No registered users viewing this page.

  • Patrocinador



  • ×