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

Revision 216, 5.2 KB (checked in by ralle030583, 15 years ago)

- new table kb3_navigation
- new Admin Section Navigation - Top Navigation
- removes customable top nav bar changes which came with last revs
- new tablestruct added to autoupgrade.php
- db_cache error when creating new table fixed

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