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

Revision 30, 6.0 KB (checked in by exi, 15 years ago)

Added base killmail importer, it takes killmails from a specified directory, 1 mail per file.
Changed session interface to php, that reduces siteload by one mysql query and offers room for page variables.
Removed the need to enter a password to post comments if you're logged in as admin.

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            $this->igb_ = true;
15        else
16            $this->igb_ = false;
17
18        $this->timestart_ = strtok(microtime(), ' ') + strtok('');
19
20        $this->killboard_ = new Killboard(KB_SITE);
21
22        $this->session_ = new Session();
23
24        $this->cachable_ = $cachable;
25        $this->cachetime_ = 5;
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 generate()
39    {
40        $html = "<html>";
41        $html .= "<head>";
42        $html .= "<title>" . KB_TITLE . " Killboard - " . $this->title_ . "</title>\n";
43        $html .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"" . STYLE_URL . "/common.css\">";
44        $config = $this->killboard_->getConfig();
45        $style = $config->getStyleName();
46        $html .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"" . STYLE_URL . "/" . $style . "/style.css\">";
47
48        if (!$this->igb_)
49            $html .= "<script language=javascript src=\"" . COMMON_URL . "/generic.js\"></script>";
50        $html .= "</head>\n";
51        $html .= "<body bgcolor=\"#222222\"";
52        if ($this->onload_)
53            $html .= " onload=\"" . $this->onload_ . "\"";
54
55        $html .= ">\n";
56        // header
57        $html .= "<table class=main-table height=\"100%\" align=\"center\" bgcolor=\"#111111\" border=\"0\" cellspacing=\"1\"><tr><td valign=\"top\" height=\"100%\">\n";
58        if (!$this->igb_)
59        {
60            $html .= "<div id=header>\n";
61            $html .= "<img src=\"";
62            $banner = $config->getStyleBanner();
63            if ($banner != "custom")
64                $html .= IMG_URL . "/banners/" . $banner . ".jpg";
65            else
66                $html .= "kb-banner.jpg";
67
68            $html .= "\" border=\"0\">";
69
70            $html .= "</div>\n";
71            $contracts = $this->killboard_->hasContracts();
72            $campaigns = $this->killboard_->hasCampaigns();
73            $w = "\"10%\"";
74            if ($contracts || $campaigns) $w = "\"9%\"";
75            if ($contracts && $campaigns) $w = "\"8%\"";
76            $html .= "<table class=navigation width=\"100%\" height=\"25\" border=\"0\" cellspacing=\"1\"><tr class=kb-table-row-odd>\n";
77            $html .= "<td width=" . $w . " align=\"center\"><a class=link href=\"?a=home\">Home</a></td>";
78
79            if ($contracts)
80                $html .= "<td width=" . $w . " align=\"center\"><a class=link href=\"?a=contracts\">Contracts</a></td>";
81
82            if ($campaigns)
83                $html .= "<td width=" . $w . " align=\"center\"><a class=link href=\"?a=campaigns\">Campaigns</a></td>";
84
85            $html .= "<td width=" . $w . " align=\"center\"><a class=link href=\"?a=kills\">Kills</a></td>";
86            $html .= "<td width=" . $w . " align=\"center\"><a class=link href=\"?a=losses\">Losses</a></td>";
87            $html .= "<td width=" . $w . " align=\"center\"><a class=link href=\"?a=post\">Post mail</a></td>";
88            $html .= "<td width=" . $w . " align=\"center\"><a class=link href=\"";
89
90            if (CORP_ID) $html .= "?a=corp_detail&crp_id=" . CORP_ID;
91            if (ALLIANCE_ID) $html .= "?a=alliance_detail&all_id=" . ALLIANCE_ID;
92
93            $html .= "\">Stats</a></td>";
94
95            $html .= "<td width=" . $w . " align=\"center\"><a class=link href=\"?a=awards\">Awards</a></td>";
96            $html .= "<td width=" . $w . " align=\"center\"><a class=link href=\"?a=search\">Search</a></td>";
97            $html .= "<td width=" . $w . " align=\"center\"><a class=link href=\"?a=admin\">Admin</a></td>";
98            $html .= "<td width=" . $w . " align=\"center\"><a class=link href=\"?a=about\">About</a></td>";
99
100            $html .= "\n</tr></table>\n";
101        }
102        $html .= "<div id=page-title>" . $this->title_ . "</div>";
103        $html .= "<table cellpadding=0 cellspacing=0 width=\"100%\" border=\"0\"><tr>";
104        $html .= "<td valign=top><div id=content>\n";
105        $html .= $this->contenthtml_;
106        $this->timeend_ = strtok(microtime(), ' ') + strtok('');
107        $this->processingtime_ = $this->timeend_ - $this->timestart_;
108        $html .= "</div></td>";
109        if ($this->contexthtml_ != "")
110        {
111            $html .= "<td valign=top align=right><div id=context>\n";
112            $html .= $this->contexthtml_;
113            $html .= "</div></td>\n";
114        }
115        $html .= "</tr></table>";
116
117        if (KB_PROFILE > 0)
118            $html .= "<table class=kb-subtable width=\"99%\" border=0><tr><td height=100% align=right valign=bottom>" . $this->processingtime_ . "s</td></tr></table>\n";
119        else
120            $html .= "<!-- " . $this->processingtime_ . "s -->";
121        $html .= '<div class="counter"></div>';
122        $html .= "</td></tr></table>\n";
123        $html .= "</body></html>\n";
124        // ob_start( "ob_gzhandler" );
125        echo $html;
126        // ob_end_flush();
127    }
128
129    function igb()
130    {
131        return $this->igb_;
132    }
133
134    function setOnLoad($onload)
135    {
136        $this->onload_ = $onload;
137    }
138
139    function setTitle($title)
140    {
141        $this->title_ = $title;
142    }
143
144    function setAdmin()
145    {
146        if (!$this->session_->isAdmin())
147            Header("Location: ?a=login");
148    }
149
150    function isAdmin()
151    {
152        return $this->session_->isAdmin();
153    }
154
155    function isSuperAdmin()
156    {
157        return $this->session_->isSuperAdmin();
158    }
159
160    function setSuperAdmin()
161    {
162        if (!$this->session_->isSuperAdmin())
163            Header("Location: ?a=login");
164    }
165
166    function setCachable($cachable)
167    {
168        $this->cachable_ = $cachable;
169    }
170
171    function setCacheTime($cachetime)
172    {
173        $this->cachetime_ = $cachetime;
174    }
175
176    function error($errormsg)
177    {
178        echo $errormsg;
179        exit;
180    }
181}
182?>
Note: See TracBrowser for help on using the browser.