AssetManager.php 19,26 Kio
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
* @category Piwik
* @package Piwik
*/
namespace Piwik;
use Exception;
use JSMin;
use lessc;
use Piwik\Translate;
/**
* @see libs/jsmin/jsmin.php
*/
require_once PIWIK_INCLUDE_PATH . '/libs/jsmin/jsmin.php';
/**
* AssetManager is the class used to manage the inclusion of UI assets:
* JavaScript and CSS files.
*
* It performs the following actions:
* - Identifies required assets
* - Includes assets in the rendered HTML page
* - Manages asset merging and minifying
* - Manages server-side cache
*
* Whether assets are included individually or as merged files is defined by
* the global option 'disable_merged_assets'. When set to 1, files will be
* included individually.
* When set to 0, files will be included within a pair of files: 1 JavaScript
* and 1 css file.
*
* @package Piwik
*/
class AssetManager
{
const MERGED_CSS_FILE = "asset_manager_global_css.css";
const MERGED_JS_FILE = "asset_manager_global_js.js";
const TRANSLATIONS_JS_FILE = "asset_manager_translations_js.js";
const CSS_IMPORT_EVENT = "AssetManager.getStylesheetFiles";
const JS_IMPORT_EVENT = "AssetManager.getJsFiles";
const MERGED_FILE_DIR = "tmp/assets/";
const CSS_IMPORT_DIRECTIVE = "<link rel=\"stylesheet\" type=\"text/css\" href=\"%s\" />\n";
const JS_IMPORT_DIRECTIVE = "<script type=\"text/javascript\" src=\"%s\"></script>\n";
const GET_CSS_MODULE_ACTION = "index.php?module=Proxy&action=getCss";
const GET_JS_MODULE_ACTION = "index.php?module=Proxy&action=getJs";
const MINIFIED_JS_RATIO = 100;
/**
* Returns CSS file inclusion directive(s) using the markup <link>
*
* @return string
*/
public static function getCssAssets()
{
return sprintf(self::CSS_IMPORT_DIRECTIVE, self::GET_CSS_MODULE_ACTION);
}
/**
* Returns JS file inclusion directive(s) using the markup <script>
*
* @return string
*/
public static function getJsAssets()