root/dev/common/class.page.php @ 181

Revision 181, 5.0 KB (checked in by exi, 14 years ago)

Changed admin/options to show the actual page as page title.
admin_menu.php now also loads settings from mods.
Added event manager and the first 2 events (comment/killmail added).
Changed config to be in a separate file and modified it to be called static with config::get().
http_request now stores the socket status in $this->status.
Changed MapView? to store pictures based on KB_SITE so it doesnt show a map with wrong colors for the current killboard on a multi-site installation.
Changed options to handle element options (like 'edit:size:40').
Changed options to use the static calls to config.
Changed Page to use the static calls to config.
Changed Session to use session_name() to determine if it should start a session.
index.php now loads module-init-scripts.
Changed post.php to use config and it should now also use the mailserver configuration directive to send emails.
Added a mail_forward-mod to show how easy it can be to develop mods once there are enough events listed.
Fixed 2 typos in battle_overview.tpl.

Line 
1<?php
2require_once("config.php");
3require_once("class.killboard.php");
4require_once("class.session.php");
5
6class Page
7{
8    function Page($title = "", $cachable = true)
9    {
10        $this->title_ = $title;
11        $this->admin_ = false;
12
13        if (substr($_SERVER['HTTP_USER_AGENT'], 0, 15) == "EVE-minibrowser")
14        {
15            $this->igb_ = true;
16        }
17        else
18        {
19            $this->igb_ = false;
20        }
21
22        $this->timestart_ = strtok(microtime(), ' ') + strtok('');
23
24        $this->killboard_ = new Killboard(KB_SITE);
25
26        $this->session_ = new Session();
27
28        $this->cachable_ = $cachable;
29        $this->cachetime_ = 5;
30    }
31
32    function setContent($html)
33    {
34        $this->contenthtml_ = $html;
35    }
36
37    function addContext($html)
38    {
39        $this->contexthtml_ .= $html;
40    }
41
42    function generate()
43    {
44        global $config, $smarty;
45
46        $smarty->assign('kb_title', KB_TITLE.' Killboard - '.$this->title_);
47
48        $style = config::get('style_name');
49        $smarty->assign('style', $style);
50
51        $smarty->assign('common_url', COMMON_URL);
52        if ($this->onload_)
53        {
54            $smarty->assign('on_load', ' onload="'.$this->onload_.'"');
55        }
56        // header
57
58        if (!$this->igb_)
59        {
60            if (strpos(config::get('mods_active'), 'rss_feed') !== false)
61            {
62                $smarty->assign('rss_feed', 1);
63            }
64            if (MAIN_SITE)
65            {
66                $smarty->assign('banner_link', MAIN_SITE);
67            }
68            $banner = config::get('style_banner');
69            if ($banner == 'custom')
70            {
71                $banner = 'kb-banner.jpg';
72            }
73            $smarty->assign('banner', $banner);
74
75            $menu = new Menu();
76            $menu->add('home', 'Home');
77
78            $contracts = $this->killboard_->hasContracts();
79            $campaigns = $this->killboard_->hasCampaigns();
80            if ($contracts)
81            {
82                $menu->add('contracts', 'Contracts');
83            }
84            if ($campaigns)
85            {
86                $menu->add('campaigns', 'Campaigns');
87            }
88            $w = 10;
89            if ($campaigns)
90            {
91                $w--;
92            }
93            if ($contracts)
94            {
95                $w--;
96            }
97            if (config::get('show_standing'))
98            {
99                $w--;
100                $menu->add('standings', 'Standings');
101            }
102            $menu->add('kills', 'Kills');
103            $menu->add('losses', 'Losses');
104            $menu->add('post', 'Post Mail');
105
106            if (CORP_ID)
107            {
108                $link = 'corp_detail&crp_id='.CORP_ID;
109            }
110            elseif (ALLIANCE_ID)
111            {
112                $link = 'alliance_detail&all_id='.ALLIANCE_ID;
113            }
114            $menu->add($link, 'Stats');
115            $menu->add('awards', 'Awards');
116            $menu->add('search', 'Search');
117            $menu->add('admin', 'Admin');
118            $menu->add('about', 'About');
119
120            $smarty->assign('menu_w', $w.'%');
121            $smarty->assign('menu', $menu->get());
122        }
123        $smarty->assign('page_title', $this->title_);
124
125        $this->timeend_ = strtok(microtime(), ' ') + strtok('');
126        $this->processingtime_ = $this->timeend_ - $this->timestart_;
127
128        $smarty->assign('profile_time', $this->processingtime_);
129        $smarty->assign('profile', KB_PROFILE);
130        $smarty->assign('content_html', $this->contenthtml_);
131        $smarty->assign('context_html', $this->contexthtml_);
132        $smarty->display(get_tpl('index'));
133    }
134
135    function igb()
136    {
137        return $this->igb_;
138    }
139
140    function setOnLoad($onload)
141    {
142        $this->onload_ = $onload;
143    }
144
145    function setTitle($title)
146    {
147        $this->title_ = $title;
148    }
149
150    function setAdmin()
151    {
152        if (!$this->session_->isAdmin())
153        {
154            header("Location: ?a=login");
155            echo '<a href="?a=login">Login</a>';
156            exit;
157        }
158    }
159
160    function isAdmin()
161    {
162        return $this->session_->isAdmin();
163    }
164
165    function isSuperAdmin()
166    {
167        return $this->session_->isSuperAdmin();
168    }
169
170    function setSuperAdmin()
171    {
172        if (!$this->session_->isSuperAdmin())
173            Header("Location: ?a=login");
174    }
175
176    function setCachable($cachable)
177    {
178        $this->cachable_ = $cachable;
179    }
180
181    function setCacheTime($cachetime)
182    {
183        $this->cachetime_ = $cachetime;
184    }
185
186    function error($errormsg)
187    {
188        echo $errormsg;
189        exit;
190    }
191}
192
193class Menu
194{
195    function Menu()
196    {
197        $this->menu_ = array();
198    }
199
200    function get()
201    {
202        return $this->menu_;
203    }
204
205    function add($link, $text)
206    {
207        $this->menu_[] = array('link' => $link, 'text' => $text);
208    }
209}
210?>
Note: See TracBrowser for help on using the browser.