Mercurial > SimpleWebPresenter
annotate CacheTimeCheck.inc @ 112:4854db07f14f
Fix bug when creating sitemaps introduced when adding common element.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Tue, 15 Mar 2016 15:11:37 +0100 |
| parents | adf7b11921f4 |
| children | df158368051e |
| rev | line source |
|---|---|
|
0
d2da64705bce
Refactored everything in the CMS into this repos.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
1 <?php |
| 52 | 2 $baseDir = dirname(__FILE__); |
| 3 | |
| 4 include_once 'common-functions.inc'; | |
|
69
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
68
diff
changeset
|
5 include_once 'FileCacheSet.inc'; |
|
68
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
6 $cache = ScriptIncludeCache::instance(__FILE__); |
|
69
dd4ddedca4c5
Add convenience header ScriptIncludeCache
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
68
diff
changeset
|
7 $cache->cache_time("${baseDir}/FileCacheSet.inc"); |
|
68
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
8 |
|
99
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
9 function toGMTime($time) { |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
10 return gmdate('D, d M Y H:i:s', $time) . ' GMT'; |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
11 } |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
12 |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
13 /** |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
14 * Checks if a HTTP_IF_MODIFIED_SINCE header is set, if this file is |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
15 * newer, set a Last-Modified header, otherwise abort with an 304 |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
16 * status code |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
17 */ |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
18 function CheckHttpModified($cache) |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
19 { |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
20 if (DEBUG_LEVEL >= VERBOSITY_DEBUG) |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
21 var_dump($_SERVER); |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
22 |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
23 $gmdate_mod = toGMTime($cache->getNewest()); |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
24 |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
25 if ($_SERVER['REDIRECT_URL'] == '/sitemap.xml') { |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
26 //print_r($gmdate_mod); |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
27 } |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
28 |
|
111
adf7b11921f4
No compression when debugging.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
99
diff
changeset
|
29 foreach($cache->cacheControl() as $header => $value) { |
|
adf7b11921f4
No compression when debugging.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
99
diff
changeset
|
30 header ("${header}: ${value}"); |
|
adf7b11921f4
No compression when debugging.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
99
diff
changeset
|
31 } |
|
99
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
32 if(array_key_exists('HTTP_IF_MODIFIED_SINCE', $_SERVER)) { |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
33 $HTTP_IF_MODIFIED_SINCE = $_SERVER['HTTP_IF_MODIFIED_SINCE']; |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
34 $if_modified_since = preg_replace('/;.*$/', '', $HTTP_IF_MODIFIED_SINCE); |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
35 |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
36 if (strtotime($if_modified_since) >= $cache->getNewest()) { |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
37 header("HTTP/1.0 304 Not Modified"); |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
38 return false; |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
39 } |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
40 } |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
41 |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
42 foreach($cache->cacheControl() as $header => $value) { |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
43 header ("${header}: ${value}"); |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
44 } |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
45 header("Last-Modified: $gmdate_mod"); |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
46 return true; |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
47 } |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
48 |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
49 |
|
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
50 |
|
68
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
51 /** |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
52 * CacheTimeCheck provides a set of functions to enable generating a |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
53 * correct time for the latest update for a given file. |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
54 * |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
55 * @author Tom Fredrik Blenning Klaussen |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
56 */ |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
57 class CacheTimeCheck extends FileCacheSet |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
58 { |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
59 function __construct($filename = False) |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
60 { |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
61 parent::__construct(); |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
62 if ($filename) |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
63 $this->cache_time($filename); |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
64 $this->cache_time(__FILE__); |
|
99
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
65 $this->max_age=0; |
|
68
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
66 } |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
67 |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
68 public function addParent($cache) |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
69 { |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
70 parent::addParent($cache); |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
71 } |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
72 |
|
4dfa3f6a2dc1
Modify CacheTimeCheck to have a common parent, and two different
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
65
diff
changeset
|
73 /** |
|
48
c6d0892f81ff
Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
74 * Convenience function to load a file, and add it to the cacheset |
|
c6d0892f81ff
Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
75 * |
|
c6d0892f81ff
Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
76 * @param $path path of the file |
|
c6d0892f81ff
Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
77 * @return the contents of the file |
|
c6d0892f81ff
Documentation.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
78 */ |
|
38
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
79 function loadFile($path) |
|
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
80 { |
|
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
81 $this->cache_time($path); |
|
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
82 return loadFile($path); |
|
42533600214b
Rename cache_check.inc to CacheTimeCheck.inc.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
32
diff
changeset
|
83 } |
|
99
d98e315308cd
Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
69
diff
changeset
|
84 |
|
16
a64e8f968e7e
Fast abort if cachehit.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
15
diff
changeset
|
85 } |
|
50
2d0cda52f43f
Remove unused variable.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
48
diff
changeset
|
86 ?> |
