root/dev/common/includes/class.page.php @ 209

Revision 209, 5.2 KB (checked in by exi, 15 years ago)

Added the CombinedKillList?-Object which can be used to combine several killlists into one for the killlisttable-object.
Added counting code for the query cache.
Fixed a sql bug in toplist.

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