Ticket #624 (new new feature)

Opened 2 months ago

Last modified 2 months ago

Block template de compression JS

Reported by: hadrien Assigned to:
Priority: low Milestone:
Component: jelix:plugins Version:
Severity: minor Keywords:
Cc: Php version:
Review: Hosting Provider:
Documentation needed: 0 Blocking:

Description

Voici un plugin de template de type block permettant de compresser du JS dans un template :

<?php
/**
 * Compress JS in templates
 * @package    jelix
 * @subpackage jtpl_block
 * @version    1
 * @author      Hadrien Lanneau <contact at hadrien dot eu>
 * @copyright  2008 Hadrien.eu
 */

/**
 * jscompress : formate a js block code by removing spaces, tabs and returns.
 * Example:  {jscompress}var foo = bar;{/jscompress}
 * @return string
 */
function jtpl_block_common_jscompress(
    $compiler,
    $begin,
    $params = array())
{
    if ($begin)
    {
        $content = ' ob_start();';
    }
    else
    {
        $content = '
        $buffer = preg_replace(
            array(
                "/\/\/.*\n/",
                "/[\t\n]+/",
                "/\/\*.*?\*\//"
            ),
            array(
                " ",
                " ",
                " "
            ),
            ob_get_contents()
        ) . "\n";
        ob_end_clean();
        print $buffer;';
    }
    return $content;
}

?>

Ça fonctionne comme ça :

{jscompress}
var lol = function()
{
	var kikoo = 'lol';
	return kikoo;
}
{/jscompress}

Et ça retourne :

var lol = function() { var kikoo = 'lol'; return kikoo; }

Pensez à bien mettre des point virgules en fin de lignes ;)

Change History

06/17/08 16:31:12 changed by laurentj

  • severity changed from normal to minor.
  • component changed from jelix to jelix:plugins.
  • priority changed from normal to low.
  • version deleted.
  • owner changed.
  • type changed from bug to new feature.
Download in other formats: Comma-delimited Text Tab-delimited Text RSS Feed