annotate Flag.inc @ 108:f2996720e6d6

Embed some flags, support for overriding.
author Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
date Mon, 07 Mar 2016 20:44:43 +0100
parents d98e315308cd
children 6f5939bf53c3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
76
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
1 <?php
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
2 /**
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
3 * @file
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
4 * Displays a flag, in an active or disabled state, depending on parameters
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
5 */
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
6 define(DEBUG,0);
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
7
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
8 include_once 'CacheTimeCheck.inc';
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
9
77
9d766788f0bc Fix remaining documentation errors.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 76
diff changeset
10 /// @cond
76
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
11 $scriptCache = ScriptIncludeCache::instance(__FILE__);
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
12 $scriptCache->includeOnce('Language.inc');
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
13 $scriptCache->includeOnce('common-functions.inc');
78
7c68015b211a Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 76
diff changeset
14 $scriptCache->includeOnce('Page.inc');
77
9d766788f0bc Fix remaining documentation errors.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 76
diff changeset
15 /// @endcond
76
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
16
77
9d766788f0bc Fix remaining documentation errors.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 76
diff changeset
17 /**
9d766788f0bc Fix remaining documentation errors.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 76
diff changeset
18 * Functionality for generating a flag based on state options
9d766788f0bc Fix remaining documentation errors.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 76
diff changeset
19 */
78
7c68015b211a Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 76
diff changeset
20 class Flag extends Page
7c68015b211a Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 76
diff changeset
21 {
76
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
22 private $active;
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
23 private $lang;
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
24
77
9d766788f0bc Fix remaining documentation errors.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 76
diff changeset
25 /**
9d766788f0bc Fix remaining documentation errors.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 76
diff changeset
26 * Constructs a flag object
9d766788f0bc Fix remaining documentation errors.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 76
diff changeset
27 *
9d766788f0bc Fix remaining documentation errors.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 76
diff changeset
28 * @param $masterCache link this objects cache to this masterCache
9d766788f0bc Fix remaining documentation errors.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 76
diff changeset
29 */
76
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
30 function __construct($masterCache)
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
31 {
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
32 $this->active = $_GET['active'];
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
33 $lang = $_GET['lang'];
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
34
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
35 if(!$lang) {
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
36 $lang = "no";
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
37 $langs = Language::accepted();
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
38 foreach ($langs as $l => $val) {
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
39 if (file_exists($l)) {
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
40 $lang = $l;
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
41 break;
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
42 }
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
43 }
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
44 }
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
45
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
46
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
47 $this->lang = $lang;
108
f2996720e6d6 Embed some flags, support for overriding.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 99
diff changeset
48 foreach ( [ 'img', '../img' ] as $dir) {
f2996720e6d6 Embed some flags, support for overriding.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 99
diff changeset
49 $this->name = "${dir}/flag-${lang}";
f2996720e6d6 Embed some flags, support for overriding.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 99
diff changeset
50 if ($this->active)
f2996720e6d6 Embed some flags, support for overriding.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 99
diff changeset
51 $this->name .= "-active";
f2996720e6d6 Embed some flags, support for overriding.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 99
diff changeset
52 $this->name .= ".png";
f2996720e6d6 Embed some flags, support for overriding.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 99
diff changeset
53 if (file_exists($this->name))
f2996720e6d6 Embed some flags, support for overriding.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 99
diff changeset
54 break;
f2996720e6d6 Embed some flags, support for overriding.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 99
diff changeset
55 }
76
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
56
78
7c68015b211a Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 76
diff changeset
57 $cache = new CacheTimeCheck($this->name);
99
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 92
diff changeset
58 $cache->setMaxAge(86400);
78
7c68015b211a Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 76
diff changeset
59 $cache->addParent($masterCache);
7c68015b211a Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 76
diff changeset
60 $this->setCache($cache);
76
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
61 }
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
62
78
7c68015b211a Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 76
diff changeset
63 function cacheCheck()
76
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
64 {
99
d98e315308cd Improved caching of flag and sitemap.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 92
diff changeset
65 return Cacheable::YES;
78
7c68015b211a Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 76
diff changeset
66 }
7c68015b211a Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 76
diff changeset
67
7c68015b211a Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 76
diff changeset
68 function mayCompress()
7c68015b211a Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 76
diff changeset
69 {
7c68015b211a Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 76
diff changeset
70 return false;
76
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
71 }
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
72
91
1d4c980f4255 Change the way headers are set.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 86
diff changeset
73 function mayValidate()
1d4c980f4255 Change the way headers are set.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 86
diff changeset
74 {
1d4c980f4255 Change the way headers are set.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 86
diff changeset
75 return false;
1d4c980f4255 Change the way headers are set.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 86
diff changeset
76 }
1d4c980f4255 Change the way headers are set.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 86
diff changeset
77
77
9d766788f0bc Fix remaining documentation errors.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 76
diff changeset
78 /**
79
9b490aa11124 Branch merge.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 78 77
diff changeset
79 * Produce the actual content
77
9d766788f0bc Fix remaining documentation errors.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 76
diff changeset
80 */
78
7c68015b211a Common source for all page generators.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 76
diff changeset
81 function generateContent()
76
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
82 {
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
83 $flag = loadFile($this->name);
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
84
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
85 if (floatval($flag) < 0) {
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
86 errorPage('Resource not found', 404);
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
87 }
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
88 else {
86
b9654b9c4a66 Make headers a part of the content, rather than setting them directly.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 79
diff changeset
89 $flag = new PageContent($flag);
91
1d4c980f4255 Change the way headers are set.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents: 86
diff changeset
90 $flag->setHeader('Content-Type', 'image/png');
76
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
91 return $flag;
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
92 }
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
93 }
fae4322d6c29 Refactored Flag into a separate class.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
94 }