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

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

Added Smarty files and some basic templates for index.php and killlists.

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