mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-30 11:53:57 +01:00
82 lines
2.7 KiB
PHP
Executable File
82 lines
2.7 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Utility functions for generating URIs in HTML files
|
|
*
|
|
* @warning These functions execute min/groupsConfig.php, sometimes multiple times.
|
|
* You must make sure that functions are not redefined, and if your use custom sources,
|
|
* you must require_once dirname(__FILE__) . '/lib/Minify/Source.php' so that
|
|
* class is available.
|
|
*
|
|
* @package Minify
|
|
*/
|
|
|
|
if (! class_exists('Minify_Loader', false)) {
|
|
require dirname(__FILE__) . '/lib/Minify/Loader.php';
|
|
Minify_Loader::register();
|
|
}
|
|
|
|
/*
|
|
* Get an HTML-escaped Minify URI for a group or set of files. By default, URIs
|
|
* will contain timestamps to allow far-future Expires headers.
|
|
*
|
|
* <code>
|
|
* <link rel="stylesheet" type="text/css" href="<?= Minify_getUri('css'); ?>" />
|
|
* <script src="<?= Minify_getUri('js'); ?>"></script>
|
|
* <script src="<?= Minify_getUri(array(
|
|
* '//scripts/file1.js'
|
|
* ,'//scripts/file2.js'
|
|
* )); ?>"></script>
|
|
* </code>
|
|
*
|
|
* @param mixed $keyOrFiles a group key or array of file paths/URIs
|
|
* @param array $opts options:
|
|
* 'farExpires' : (default true) append a modified timestamp for cache revving
|
|
* 'debug' : (default false) append debug flag
|
|
* 'charset' : (default 'UTF-8') for htmlspecialchars
|
|
* 'minAppUri' : (default '/min') URI of min directory
|
|
* 'rewriteWorks' : (default true) does mod_rewrite work in min app?
|
|
* 'groupsConfigFile' : specify if different
|
|
* @return string
|
|
*/
|
|
function Minify_getUri($keyOrFiles, $opts = array())
|
|
{
|
|
return Minify_HTML_Helper::getUri($keyOrFiles, $opts);
|
|
}
|
|
|
|
|
|
/**
|
|
* Get the last modification time of several source js/css files. If you're
|
|
* caching the output of Minify_getUri(), you might want to know if one of the
|
|
* dependent source files has changed so you can update the HTML.
|
|
*
|
|
* Since this makes a bunch of stat() calls, you might not want to check this
|
|
* on every request.
|
|
*
|
|
* @param array $keysAndFiles group keys and/or file paths/URIs.
|
|
* @return int latest modification time of all given keys/files
|
|
*/
|
|
function Minify_mtime($keysAndFiles, $groupsConfigFile = null)
|
|
{
|
|
$gc = null;
|
|
if (! $groupsConfigFile) {
|
|
$groupsConfigFile = dirname(__FILE__) . '/groupsConfig.php';
|
|
}
|
|
$sources = array();
|
|
foreach ($keysAndFiles as $keyOrFile) {
|
|
if (is_object($keyOrFile)
|
|
|| 0 === strpos($keyOrFile, '/')
|
|
|| 1 === strpos($keyOrFile, ':\\')) {
|
|
// a file/source obj
|
|
$sources[] = $keyOrFile;
|
|
} else {
|
|
if (! $gc) {
|
|
$gc = (require $groupsConfigFile);
|
|
}
|
|
foreach ($gc[$keyOrFile] as $source) {
|
|
$sources[] = $source;
|
|
}
|
|
}
|
|
}
|
|
return Minify_HTML_Helper::getLastModified($sources);
|
|
}
|