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

Revision 134, 4.8 KB (checked in by exi, 14 years ago)

Added standings-management.
Changed installer step 3 to only use POST data now.
Character portraits should now look a bit better.
Changed all smarty template requests to use a wrapper function.
Modified standard page for IGB.
Added php compat file to reduce minimal needed version to 4.0.9.

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->getStyleName();
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 (MAIN_SITE)
61            {
62                $smarty->assign('banner_link', MAIN_SITE);
63            }
64            $banner = $config->getStyleBanner();
65            if ($banner == 'custom')
66            {
67                $banner = 'kb-banner.jpg';
68            }
69            $smarty->assign('banner', $banner);
70
71            $menu = new Menu();
72            $menu->add('home', 'Home');
73
74            $contracts = $this->killboard_->hasContracts();
75            $campaigns = $this->killboard_->hasCampaigns();
76            if ($contracts)
77            {
78                $menu->add('contracts', 'Contracts');
79            }
80            if ($campaigns)
81            {
82                $menu->add('campaigns', 'Campaigns');
83            }
84            $w = 10;
85            if ($campaigns)
86            {
87                $w--;
88            }
89            if ($contracts)
90            {
91                $w--;
92            }
93            if ($config->getConfig('show_standing'))
94            {
95                $w--;
96                $menu->add('standings', 'Standings');
97            }
98            $menu->add('kills', 'Kills');
99            $menu->add('losses', 'Losses');
100            $menu->add('post', 'Post Mail');
101
102            if (CORP_ID)
103            {
104                $link = 'corp_detail&crp_id='.CORP_ID;
105            }
106            elseif (ALLIANCE_ID)
107            {
108                $link = 'alliance_detail&all_id='.ALLIANCE_ID;
109            }
110            $menu->add($link, 'Stats');
111            $menu->add('awards', 'Awards');
112            $menu->add('search', 'Search');
113            $menu->add('admin', 'Admin');
114            $menu->add('about', 'About');
115
116            $smarty->assign('menu_w', $w.'%');
117            $smarty->assign('menu', $menu->get());
118        }
119        $smarty->assign('page_title', $this->title_);
120
121        $this->timeend_ = strtok(microtime(), ' ') + strtok('');
122        $this->processingtime_ = $this->timeend_ - $this->timestart_;
123
124        $smarty->assign('profile_time', $this->processingtime_);
125        $smarty->assign('profile', KB_PROFILE);
126        $smarty->assign('content_html', $this->contenthtml_);
127        $smarty->assign('context_html', $this->contexthtml_);
128        $smarty->display(get_tpl('index'));
129    }
130
131    function igb()
132    {
133        return $this->igb_;
134    }
135
136    function setOnLoad($onload)
137    {
138        $this->onload_ = $onload;
139    }
140
141    function setTitle($title)
142    {
143        $this->title_ = $title;
144    }
145
146    function setAdmin()
147    {
148        if (!$this->session_->isAdmin())
149        {
150            header("Location: ?a=login");
151            echo '<a href="?a=login">Login</a>';
152            exit;
153        }
154    }
155
156    function isAdmin()
157    {
158        return $this->session_->isAdmin();
159    }
160
161    function isSuperAdmin()
162    {
163        return $this->session_->isSuperAdmin();
164    }
165
166    function setSuperAdmin()
167    {
168        if (!$this->session_->isSuperAdmin())
169            Header("Location: ?a=login");
170    }
171
172    function setCachable($cachable)
173    {
174        $this->cachable_ = $cachable;
175    }
176
177    function setCacheTime($cachetime)
178    {
179        $this->cachetime_ = $cachetime;
180    }
181
182    function error($errormsg)
183    {
184        echo $errormsg;
185        exit;
186    }
187}
188
189class Menu
190{
191    function Menu()
192    {
193        $this->menu_ = array();
194    }
195
196    function get()
197    {
198        return $this->menu_;
199    }
200
201    function add($link, $text)
202    {
203        $this->menu_[] = array('link' => $link, 'text' => $text);
204    }
205}
206?>
Note: See TracBrowser for help on using the browser.