-
Notifications
You must be signed in to change notification settings - Fork 1
/
browser_cache_helper.php
75 lines (67 loc) · 2.72 KB
/
browser_cache_helper.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// =================================================================================================
//
// Copyright 2014 Carlos Bernal. All Rights Reserved.
//
// This program is free software. You can redistribute and/or modify it
// in accordance with the terms of the accompanying license agreement.
//
// =================================================================================================
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
//-------------------------------------------------------------------------------------
/**
* CodeIgniter Browser Cache Helper
*
* Helper que contiene funciones de ayuda para el control de cache de las hojas de estilo,
* imagenes, javascripts, y cualquier cosa que pueda ser cacheada por el explorador web.
*
* @author Carlos Bernal <[email protected]>
*
* @link https://github.com/BernalCarlos/ci-browser-cache-helper
*/
//--------------------------------------------------------------------------------------
/**
* Cache Base Url
*
* Crea una url al recurso solicitado a partir de la URL base del sitio y agrega un
* parametro 'version' al recurso. Esta funcion es similar en funcionamiento y cuerpo a la funcion
* 'base_url' de CodeIgniter.
*
* Esta funcion recibe como parametros el segmento o 'uri' al recurso y opcionalmente, el numero de version
* que se desea mantener.
*
* Si no se proporciona un valor para el numero de version, se intentara consultar la constante 'BROWSER_CACHE_VERSION'
* en 'constants.php', o en las variables de configuracion del sitio ('config.php').
*
* Si 'BROWSER_CACHE_VERSION' no esta definida, el valor de version será 'no'.
*
* Ejemplo: cache_base_url('images/logo.png', 1) => 'http://www.site.com/images/logo.png?version=1'
*
* @param string $uri segmento al recurso.
* @param int $cacheVersion Numero de version de la cache.
*
* @return string
*/
if (!function_exists('cache_base_url')) {
function cache_base_url($uri, $cacheVersion = NULL) {
//Determinar la url completa
$CI = & get_instance();
$CI->load->helper('url');
$fullURL = base_url($uri);
//Agregar el numero de version
if ($cacheVersion == NULL) {
if (defined('BROWSER_CACHE_VERSION')) {
$fullURL = $fullURL . '?version=' . BROWSER_CACHE_VERSION;
} else if ($CI->config->item('BROWSER_CACHE_VERSION') !== FALSE) {
$fullURL = $fullURL . '?version=' . $CI->config->item('BROWSER_CACHE_VERSION');
} else {
$fullURL = $fullURL . '?version=no';
}
} else {
$fullURL = $fullURL . '?version=' . $cacheVersion;
}
//Retornar la URL
return $fullURL;
}
}