Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
chamilo-lms/main/inc/lib/javascript.class.php

91 lines
2.2 KiB

<?php
/**
* Javascript utility functions.
*
* @license see /license.txt
* @author Laurent Opprecht <laurent@opprecht.info> for the Univesity of Geneva
*/
class Javascript
{
/**
* Minimify Javascript.
*
* If called with a path
*
* input: /dir/dir/file.js
* returns: /dir/dir/file.min.js
*
* Otherwise returns the actual code.
*
* @param string $arg either a path or actual code
* @return string either a path to minified content (ends with min.js) or actual code
*/
public static function minify($arg)
{
if (is_readable($arg))
{
$path = $arg;
$code = file_get_contents($path);
$code = ClosureCompiler::post($code);
$min_path = $path;
$min_path = str_replace('.js', '', $min_path);
$min_path .= '.min.js';
file_put_contents($min_path, $code);
return $min_path;
}
else
{
return ClosureCompiler::post($code);
}
}
/**
* Returns lang object that contains the translation.
*
* Javascript::get_lang('string1', 'string2', 'string3');
*
* returns
*
* if(typeof(lang) == "undefined")
* {
* var lang = {};
* }
* lang.string1 = "...";
* lang.string2 = "...";
* lang.string3 = "...
*
* @param type $_
* @return type
*/
public static function get_lang($_)
{
$result = array();
$result[] = 'if(typeof(lang) == "undefined")';
$result[] = '{';
$result[] = ' var lang = {};';
$result[] = '}';
$keys = func_get_args();
foreach ($keys as $key)
{
$value = get_lang($key);
$result[] = 'lang.' . $key . ' = "' . $value . '";';
}
return implode("\n", $result);
}
public static function tag($src)
{
return '<script type="text/javascript" src="' . $src . '"></script>';
}
public static function tag_code($code)
{
$new_line = "\n";
return '<script type="text/javascript">' . $new_line . $code . $new_line . '</script>';
}
}