root/dev/common/home2.php

Revision 367, 5.0 KB (checked in by exi, 14 years ago)

Added option for efficiency in KillSummaryTables?.
The board is now able to get the checked out revision on svn capable systems.
Fix for the week 52/1 problem.
Added a first draft of the pageAssembly class together with a rework of how home.php would look like.

Line 
1<?php
2require_once('common/includes/class.killsummarytable.public.php');
3require_once('common/includes/class.corp.php');
4require_once('common/includes/class.alliance.php');
5require_once('common/includes/class.killlist.php');
6require_once('common/includes/class.killlisttable.php');
7require_once('common/includes/class.contract.php');
8require_once('common/includes/class.toplist.php');
9require_once('common/includes/class.pageAssembly.php');
10
11class pHome extends pageAssembly
12{
13    function __construct()
14    {
15        parent::__construct();
16        $this->queue('start');
17        $this->queue('summarytable');
18        $this->queue('campaigns');
19        $this->queue('contracts');
20        $this->queue('kills');
21        $this->queue('context');
22    }
23
24    function start()
25    {
26        $this->week = kbdate('W');
27        $this->year = kbdate('o');
28
29        $this->page = new Page('Week ' . $this->week);
30    }
31
32    function summarytable()
33    {
34        if (config::get('summarytable'))
35        {
36            $kslist = new KillList();
37            involved::load($kslist, 'kill');
38            $kslist->setWeek($this->week);
39            $kslist->setYear($this->year);
40
41            if (config::get('public_summarytable'))
42            {
43                $summarytable = new KillSummaryTablePublic($kslist);
44            }
45            else
46            {
47                $llist = new KillList();
48                involved::load($llist, 'loss');
49                $llist->setWeek($this->week);
50                $llist->setYear($this->year);
51                $summarytable = new KillSummaryTable($kslist, $llist);
52            }
53            $summarytable->setBreak(config::get('summarytable_rowcount'));
54            return $summarytable->generate();
55        }
56    }
57
58    function campaigns()
59    {
60        if ($this->page->killboard_->hasCampaigns(true))
61        {
62            $html .= '<div class=kb-campaigns-header>Active campaigns</div>';
63            $list = new ContractList();
64            $list->setActive('yes');
65            $list->setCampaigns(true);
66            $table = new ContractListTable($list);
67            $html .= $table->generate();
68            return $html;
69        }
70    }
71
72    function contracts()
73    {
74        if ($this->page->killboard_->hasContracts(true))
75        {
76            $html .= '<div class=kb-campaigns-header>Active contracts</div>';
77            $list = new ContractList();
78            $list->setActive('yes');
79            $list->setCampaigns(false);
80            $table = new ContractListTable($list);
81            $html .= $table->generate();
82            return $html;
83        }
84    }
85
86    function kills()
87    {
88        // bad hax0ring, we really need mod callback stuff
89        if (strpos(config::get('mods_active'), 'rss_feed') !== false)
90        {
91            $html .= "<div class=kb-kills-header><a href=\"?a=rss\"><img src=\"mods/rss_feed/rss_icon.png\" alt=\"RSS-Feed\" border=\"0\"></a>&nbsp;20 most recent kills</div>";
92        }
93        else
94        {
95            $html .= '<div class=kb-kills-header>20 most recent kills</div>';
96        }
97
98        $klist = new KillList();
99        $klist->setOrdered(true);
100        involved::load($klist, 'kill');
101
102        // boards with low killcount could not display 20 kills with those limits
103        // $klist->setStartWeek($week - 1);
104        // $klist->setYear($year);
105        $klist->setLimit(config::get('killcount'));
106
107        if ($_GET['scl_id'])
108            $klist->addVictimShipClass(new ShipClass($_GET['scl_id']));
109        else
110            $klist->setPodsNoobShips(false);
111
112        $table = new KillListTable($klist);
113        $table->setLimit(config::get('killcount'));
114        $html .= $table->generate();
115
116        return $html;
117    }
118
119    function context()
120    {
121        if ($this->week == 1)
122        {
123            $pyear = kbdate("o") - 1;
124            $pweek = 52;
125        }
126        else
127        {
128            $pyear = kbdate("o");
129            $pweek = $week - 1;
130        }
131
132        $menubox = new box("Menu");
133        $menubox->setIcon("menu-item.gif");
134        $menubox->addOption("caption", "Navigation");
135        $menubox->addOption("link", "Previous week", "?a=kills&w=" . $pweek . "&y=" . $pyear);
136        $this->page->addContext($menubox->generate());
137
138        $tklist = new TopKillsList();
139        $tklist->setWeek($week);
140        $tklist->setYear($year);
141        involved::load($tklist, 'kill');
142
143        $tklist->generate();
144        $tkbox = new AwardBox($tklist, "Top killers", "kills in week " . $this->week, "kills", "eagle");
145        $this->page->addContext($tkbox->generate());
146
147        if (config::get('kill_points'))
148        {
149            $tklist = new TopScoreList();
150            $tklist->setWeek($week);
151            $tklist->setYear($year);
152            involved::load($tklist, 'kill');
153
154            $tklist->generate();
155            $tkbox = new AwardBox($tklist, "Top scorers", "points in week " . $this->week, "points", "redcross");
156            $this->page->addContext($tkbox->generate());
157        }
158    }
159}
160
161$pageAssembly = new pHome();
162$html = $pageAssembly->assemble();
163
164$pageAssembly->page->setContent($html);
165$pageAssembly->page->generate();
Note: See TracBrowser for help on using the browser.