17 | | require_once( 'feed_fetcher.php' ); |
18 | | require_once( 'common/admin/admin_menu.php' ); |
19 | | require_once( 'common/includes/class.corp.php' ); |
20 | | require_once( 'common/includes/class.alliance.php' ); |
21 | | |
22 | | |
23 | | $page = new Page( "Administration - Feed Syndication " . $version ); |
24 | | $page->setCachable(false); |
25 | | $page->setAdmin(); |
26 | | |
27 | | $validurl = "/^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}((:[0-9]{1,5})?\/.*)?$/i"; |
28 | | $html .= "<script language=\"JavaScript\">function checkAll(checkname, exby) {for (i = 0; i < checkname.length; i++)checkname[i].checked = exby.checked? true:false}</script>"; |
29 | | $html .= "<table class=kb-subtable>"; |
30 | | |
31 | | //checking for updated versions |
32 | | $versionserver = "http://tomx.org/feed/version.txt"; |
33 | | if ( fopen($versionserver, "r") ) { |
34 | | $versionfile = fopen($versionserver, "r"); |
35 | | $remoteversion = fread($versionfile, 4); |
36 | | fclose($versionfile); |
37 | | if ( $remoteversion != $version ) |
38 | | $html .= '<div class="kl-loss"><b>Your version ('.$version.') is outdated! </b></div><br>There is a newer version ('.$remoteversion.') available <a href="http://tomx.org/feed/mod_feed_'.$remoteversion.'.zip"><b>here</b></a>. <br>Please update!<br><br>'; |
39 | | } else |
40 | | $html .= '<div class="kl-loss">Cant retrieve version information from: '.$versionserver.'</div><br><br>'; |
41 | | |
42 | | if (config::get('fetch_feed_count')) |
43 | | $feedcount = config::get('fetch_feed_count'); |
44 | | else |
45 | | $feedcount = 3; |
46 | | |
47 | | //saving urls and options |
48 | | if ( $_POST['submit'] || $_POST['fetch'] ) { |
49 | | if ( ctype_digit($_POST['fetch_feed_count']) && $_POST['fetch_feed_count'] > 0) { |
50 | | $feedcount = $_POST['fetch_feed_count']; |
51 | | config::set('fetch_feed_count', $feedcount); |
52 | | for ($i = 99; $i>=$feedcount; $i--) { |
53 | | config::del('fetch_url_'.$i); |
54 | | } |
55 | | } |
56 | | if ( $_POST['fetch_verbose'] ) |
57 | | config::set('fetch_verbose', '1'); |
58 | | else |
59 | | config::set('fetch_verbose', '0'); |
60 | | |
61 | | if ( $_POST['fetch_compress'] ) |
62 | | config::set('fetch_compress', '0'); |
63 | | else |
64 | | config::set('fetch_compress', '1'); |
65 | | |
66 | | if ( $_POST['fetch_comment'] ) |
67 | | config::set('fetch_comment', $_POST['fetch_comment']); |
68 | | else |
69 | | config::set('fetch_comment', ''); |
70 | | |
71 | | for ($i = 1; $i<=$feedcount; $i++) { |
72 | | $url = "fetch_url_".$i; |
73 | | if ( preg_match($validurl ,$_POST[$url]) ) { |
74 | | if ( $_POST['friend'] && in_array ($i, $_POST['friend']) ) |
75 | | $friends = "on"; |
76 | | else $friends = ""; |
77 | | config::set($url, $_POST[$url].':::'.$time[$i].':::'.$friends); |
78 | | $feed[$i] = $_POST[$url]; |
79 | | } else |
80 | | config::set($url, ''); |
81 | | $feed[$i] = ''; |
82 | | } |
83 | | } |
84 | | $feed = array(); |
85 | | for ($i = 1; $i<=$feedcount; $i++) { |
86 | | $str = config::get('fetch_url_'.$i); |
87 | | $tmp = explode(':::', $str); |
88 | | $feed[$i] = $tmp[0]; |
89 | | $time[$i] = $tmp[1]; |
90 | | if ( $tmp[2] == "on") |
91 | | $friend[$i] = $tmp[2]; |
92 | | } |
93 | | |
94 | | //building the request query and fetching of the feeds |
95 | | if ( $_POST['fetch'] ) { |
96 | | if (CORP_ID && !MASTER) { |
97 | | $corp = new Corporation(CORP_ID); |
98 | | $myid = '&corp='.urlencode($corp->getName()); |
99 | | } |
100 | | if (ALLIANCE_ID && !MASTER) { |
101 | | $alli = new Alliance(ALLIANCE_ID); |
102 | | $myid = '&alli='.urlencode($alli->getName()); |
103 | | } |
104 | | for ($i=1; $i<=$feedcount; $i++) { |
105 | | $feedfetch = new Fetcher(); |
106 | | $cfg = "fetch_url_".$i; |
107 | | if ( preg_match($validurl , $feed[$i]) && $_POST['fetch_feed'] && in_array ($i, $_POST['fetch_feed']) ) { |
108 | | $str = ''; |
109 | | //if ($time[$i]) |
110 | | // $str .= '&lastkllid='.$time[$i]; |
111 | | if ($friend[$i]) |
112 | | $str .= '&friend=1'; |
113 | | if ( $_POST['fetch_losses'] ) |
114 | | $str .= "&losses=1"; |
115 | | if ( !config::get('fetch_compress') ) |
116 | | $str .= "&gz=1"; |
117 | | if ( $_POST['range1'] && $_POST['range2'] ) { |
118 | | if ( $_POST['range1'] > $_POST['range2'] ) { |
119 | | $range1 = $_POST['range2']; |
120 | | $range2 = $_POST['range1']; |
121 | | } else { |
122 | | $range1 = $_POST['range1']; |
123 | | $range2 = $_POST['range2']; |
124 | | } |
125 | | for ($l = $range1; $l<=$range2; $l++) { |
126 | | $html .= "<b>Week: ". $l ."</b><br>"; |
127 | | $html .= $feedfetch->grab( $feed[$i]."&year=".$_POST['year']."&week=".$l, $myid.$str ); |
128 | | } |
129 | | } else |
130 | | $html .= $feedfetch->grab( $feed[$i], $myid.$str ); |
131 | | } |
132 | | config::set($cfg, $feed[$i].':::'.$lastkllid.':::'.$friend); |
133 | | $time[$i] = $lastkllid; |
134 | | } |
135 | | } |
136 | | //generating the html |
137 | | $html .= '<form id="options" name="options" method="post" action="?a=settings_feed_syndication">'; |
138 | | $html .= "</table>"; |
139 | | |
140 | | $html .= "<div class=block-header2>Feeds</div><table>"; |
141 | | for ($i = 1; $i<=$feedcount; $i++) { |
142 | | $html .= "<tr><td width=85px><b>Feed url #".$i."</b></td><td><input type=text name=fetch_url_".$i." size=50 class=password value=\""; |
143 | | if ( $feed[$i] ) |
144 | | $html .= $feed[$i]; |
145 | | $html .= "\"></td>"; |
146 | | |
147 | | $html .= "<td><input type=checkbox name=friend[] id=friend value=".$i; |
148 | | if ( $friend[$i] ) |
149 | | $html .= " checked=\"checked\""; |
150 | | $html .= "><b>Friend?</b></td>"; |
151 | | |
152 | | $html .= "<td><input type=checkbox name=fetch_feed[] id=fetch value=".$i; |
153 | | if ( $feed[$i] ) |
154 | | $html .= " checked=\"checked\""; |
155 | | $html .= "><b>Fetch?</b><br>"; |
156 | | $html .= "</td></tr>"; |
157 | | } |
158 | | $html .= '<tr><td colspan=2><i>Example: http://killboard.eve-d2.com/?a=feed</i></td><td>'; |
159 | | $html .= '<input type="checkbox" name="all" onclick="checkAll(this.form.friend,this)"><i>all/none</i></td><td>'; |
160 | | $html .= '<input type="checkbox" name="all" onclick="checkAll(this.form.fetch,this)"><i>all/none</i>'; |
161 | | $html .= "</td></tr><br></table><br><br><br>"; |
162 | | |
163 | | $html .= "<table><tr><td height=20px width=150px><b>First week:</b></td>"; |
164 | | $html .= '<td><select name="range1">'; |
165 | | $now = date("W"); |
166 | | for ($i = 1; $i<=52; $i++) { |
167 | | if ( $now == $i ) |
168 | | $html .= '<option selected="selected "value="'.$i.'">'.$i.'</option>'; |
169 | | else |
170 | | $html .= '<option value="'.$i.'">'.$i.'</option>'; |
171 | | } |
172 | | $html .= '</select>'; |
173 | | $html .= "<i></i></td></tr>"; |
174 | | $html .= "<tr><td height=20px width=150px><b>Last week:</b></td>"; |
175 | | $html .= '<td><select name="range2">'; |
176 | | for ($i = 1; $i<=52; $i++) { |
177 | | if ( $now == $i ) |
178 | | $html .= '<option selected="selected "value="'.$i.'">'.$i.'</option>'; |
179 | | else |
180 | | $html .= '<option value="'.$i.'">'.$i.'</option>'; |
181 | | } |
182 | | $html .= '</select>'; |
183 | | $html .= "<i></i></td></tr>"; |
184 | | |
185 | | $html .= "<tr><td height=20px width=150px><b>Year:</b></td>"; |
186 | | $html .= '<td><select name="year">'; |
187 | | $html .= '<option "value="2005">2005</option>'; |
188 | | $html .= '<option "value="2006">2006</option>'; |
189 | | $html .= '<option selected="selected "value="2007">2007</option>'; |
190 | | $html .= '<option "value="2008">2008</option>'; |
191 | | $html .= '<option "value="2009">2009</option>'; |
192 | | $html .= '</select>'; |
| 15 | require_once('feed_fetcher.php'); |
| 16 | require_once('common/admin/admin_menu.php'); |
| 17 | require_once('common/includes/class.corp.php'); |
| 18 | require_once('common/includes/class.alliance.php'); |
| 19 | |
| 20 | $page = new Page("Administration - Feed Syndication " . $version); |
| 21 | $page->setCachable(false); |
| 22 | $page->setAdmin(); |
| 23 | |
| 24 | $validurl = "/^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}((:[0-9]{1,5})?\/.*)?$/i"; |
| 25 | $html .= "<script language=\"JavaScript\">function checkAll(checkname, exby) {for (i = 0; i < checkname.length; i++)checkname[i].checked = exby.checked? true:false}</script>"; |
| 26 | $html .= "<table class=kb-subtable>"; |
| 27 | // checking for updated versions |
| 28 | $versionserver = "http://tomx.org/feed/version.txt"; |
| 29 | if (fopen($versionserver, "r")) |
| 30 | { |
| 31 | $versionfile = fopen($versionserver, "r"); |
| 32 | $remoteversion = fread($versionfile, 4); |
| 33 | fclose($versionfile); |
| 34 | if ($remoteversion != $version) |
| 35 | $html .= '<div class="kl-loss"><b>Your version (' . $version . ') is outdated! </b></div><br>There is a newer version (' . $remoteversion . ') available <a href="http://tomx.org/feed/mod_feed_' . $remoteversion . '.zip"><b>here</b></a>. <br>Please update!<br><br>'; |
| 36 | } |
| 37 | else |
| 38 | $html .= '<div class="kl-loss">Cant retrieve version information from: ' . $versionserver . '</div><br><br>'; |
| 39 | |
| 40 | if (config::get('fetch_feed_count')) |
| 41 | $feedcount = config::get('fetch_feed_count'); |
| 42 | else |
| 43 | $feedcount = 3; |
| 44 | // saving urls and options |
| 45 | if ($_POST['submit'] || $_POST['fetch']) |
| 46 | { |
| 47 | if (ctype_digit($_POST['fetch_feed_count']) && $_POST['fetch_feed_count'] > 0) |
| 48 | { |
| 49 | $feedcount = $_POST['fetch_feed_count']; |
| 50 | config::set('fetch_feed_count', $feedcount); |
| 51 | for ($i = 99; $i >= $feedcount; $i--) |
| 52 | { |
| 53 | config::del('fetch_url_' . $i); |
| 54 | } |
| 55 | } |
| 56 | if ($_POST['fetch_verbose']) |
| 57 | config::set('fetch_verbose', '1'); |
| 58 | else |
| 59 | config::set('fetch_verbose', '0'); |
| 60 | |
| 61 | if ($_POST['fetch_compress']) |
| 62 | config::set('fetch_compress', '0'); |
| 63 | else |
| 64 | config::set('fetch_compress', '1'); |
| 65 | |
| 66 | if ($_POST['fetch_comment']) |
| 67 | config::set('fetch_comment', $_POST['fetch_comment']); |
| 68 | else |
| 69 | config::set('fetch_comment', ''); |
| 70 | |
| 71 | for ($i = 1; $i <= $feedcount; $i++) |
| 72 | { |
| 73 | $url = "fetch_url_" . $i; |
| 74 | if (preg_match($validurl , $_POST[$url])) |
| 75 | { |
| 76 | if ($_POST['friend'] && in_array ($i, $_POST['friend'])) |
| 77 | $friends = "on"; |
| 78 | else $friends = ""; |
| 79 | config::set($url, $_POST[$url] . ':::' . $time[$i] . ':::' . $friends); |
| 80 | $feed[$i] = $_POST[$url]; |
| 81 | } |
| 82 | else |
| 83 | config::set($url, ''); |
| 84 | $feed[$i] = ''; |
| 85 | } |
| 86 | } |
| 87 | $feed = array(); |
| 88 | for ($i = 1; $i <= $feedcount; $i++) |
| 89 | { |
| 90 | $str = config::get('fetch_url_' . $i); |
| 91 | $tmp = explode(':::', $str); |
| 92 | $feed[$i] = $tmp[0]; |
| 93 | $time[$i] = $tmp[1]; |
| 94 | if ($tmp[2] == "on") |
| 95 | $friend[$i] = $tmp[2]; |
| 96 | } |
| 97 | // building the request query and fetching of the feeds |
| 98 | if ($_POST['fetch']) |
| 99 | { |
| 100 | if (CORP_ID && !MASTER) |
| 101 | { |
| 102 | $corp = new Corporation(CORP_ID); |
| 103 | $myid = '&corp=' . urlencode($corp->getName()); |
| 104 | } |
| 105 | if (ALLIANCE_ID && !MASTER) |
| 106 | { |
| 107 | $alli = new Alliance(ALLIANCE_ID); |
| 108 | $myid = '&alli=' . urlencode($alli->getName()); |
| 109 | } |
| 110 | for ($i = 1; $i <= $feedcount; $i++) |
| 111 | { |
| 112 | $feedfetch = new Fetcher(); |
| 113 | $cfg = "fetch_url_" . $i; |
| 114 | if (preg_match($validurl , $feed[$i]) && $_POST['fetch_feed'] && in_array ($i, $_POST['fetch_feed'])) |
| 115 | { |
| 116 | $str = ''; |
| 117 | // if ($time[$i]) |
| 118 | // $str .= '&lastkllid='.$time[$i]; |
| 119 | if ($friend[$i]) |
| 120 | $str .= '&friend=1'; |
| 121 | if ($_POST['fetch_losses']) |
| 122 | $str .= "&losses=1"; |
| 123 | if (!config::get('fetch_compress')) |
| 124 | $str .= "&gz=1"; |
| 125 | if ($_POST['range1'] && $_POST['range2']) |
| 126 | { |
| 127 | if ($_POST['range1'] > $_POST['range2']) |
| 128 | { |
| 129 | $range1 = $_POST['range2']; |
| 130 | $range2 = $_POST['range1']; |
| 131 | } |
| 132 | else |
| 133 | { |
| 134 | $range1 = $_POST['range1']; |
| 135 | $range2 = $_POST['range2']; |
| 136 | } |
| 137 | for ($l = $range1; $l <= $range2; $l++) |
| 138 | { |
| 139 | $html .= "<b>Week: " . $l . "</b><br>"; |
| 140 | $html .= $feedfetch->grab($feed[$i] . "&year=" . $_POST['year'] . "&week=" . $l, $myid . $str); |
| 141 | } |
| 142 | } |
| 143 | else |
| 144 | $html .= $feedfetch->grab($feed[$i], $myid . $str); |
| 145 | } |
| 146 | config::set($cfg, $feed[$i] . ':::' . $lastkllid . ':::' . $friend); |
| 147 | $time[$i] = $lastkllid; |
| 148 | } |
| 149 | } |
| 150 | // generating the html |
| 151 | $html .= '<form id="options" name="options" method="post" action="?a=settings_feed_syndication">'; |
| 152 | $html .= "</table>"; |
| 153 | |
| 154 | $html .= "<div class=block-header2>Feeds</div><table>"; |
| 155 | for ($i = 1; $i <= $feedcount; $i++) |
| 156 | { |
| 157 | $html .= "<tr><td width=85px><b>Feed url #" . $i . "</b></td><td><input type=text name=fetch_url_" . $i . " size=50 class=password value=\""; |
| 158 | if ($feed[$i]) |
| 159 | $html .= $feed[$i]; |
| 160 | $html .= "\"></td>"; |
| 161 | |
| 162 | $html .= "<td><input type=checkbox name=friend[] id=friend value=" . $i; |
| 163 | if ($friend[$i]) |
| 164 | $html .= " checked=\"checked\""; |
| 165 | $html .= "><b>Friend?</b></td>"; |
| 166 | |
| 167 | $html .= "<td><input type=checkbox name=fetch_feed[] id=fetch value=" . $i; |
| 168 | if ($feed[$i]) |
| 169 | $html .= " checked=\"checked\""; |
| 170 | $html .= "><b>Fetch?</b><br>"; |
194 | | $html .= "<tr><td height=40px width=150px><b>Get kills instead of losses?</b></td>"; |
195 | | $html .= "<td><input type=checkbox name=fetch_losses id=fetch_losses>"; |
196 | | $html .= "<i> (by default only their kills, your losses, get fetched, when ticked this is inversed)</i></td></tr>"; |
197 | | $html .= "</table><br><br>"; |
198 | | $html .= "<input type=submit id=submit name=fetch value=\"Fetch!\"><br><br>"; |
199 | | |
200 | | $html .= "<div class=block-header2>Options</div><table>"; |
201 | | $html .= "<tr><td height=30px width=150px><b>Number of feeds:</b></td>"; |
202 | | $html .= "<td><input type=text name=fetch_feed_count size=2 maxlength=2 class=password value=\"".$feedcount."\"></td></tr>"; |
203 | | $html .= "<tr><td height=50px width=150px><b>Comment for automatically parsed killmails?</b></td>"; |
204 | | $html .= "<td><input type=text size=50 class=password name=fetch_comment id=fetch_comment value=\""; |
205 | | if ( config::get('fetch_comment') ) |
206 | | $html .= config::get('fetch_comment'); |
207 | | $html .= "\"><br><i> (leave blank for none)</i><br></td></tr>"; |
208 | | $html .= "<tr><td height=30px width=150px><b>Enable compression?</b></td>"; |
209 | | $html .= "<td><input type=checkbox name=fetch_compress id=fetch_compress"; |
210 | | if ( !config::get('fetch_compress') ) |
211 | | $html .= " checked=\"checked\""; |
212 | | $html .= "><i> (enables GZip compression for feeds that support this feature, for streams that do not support GZip compression regular html mode will be used automatically)</i></td>"; |
213 | | $html .= "</tr>"; |
214 | | $html .= "<tr><td height=30px width=150px><b>Verbose mode?</b></td>"; |
215 | | $html .= "<td><input type=checkbox name=fetch_verbose id=fetch_verbose"; |
216 | | if ( config::get('fetch_verbose') ) |
217 | | $html .= " checked=\"checked\""; |
218 | | $html .= "><i> (displays advanced feed request information and errormessages when the imported mail is rejected for being malformed, already exists or is not related to your corp or alliance)</i></td>"; |
219 | | $html .= "</tr></table><br><br>"; |
220 | | $html .= "<input type=submit id=submit name=submit value=\"Save\">"; |
221 | | $html .= "</form>"; |
222 | | |
223 | | $page->addContext( $menubox->generate() ); |
224 | | $page->setContent( $html ); |
225 | | $page->generate(); |
| 172 | } |
| 173 | $html .= '<tr><td colspan=2><i>Example: http://killboard.eve-d2.com/?a=feed</i></td><td>'; |
| 174 | $html .= '<input type="checkbox" name="all" onclick="checkAll(this.form.friend,this)"><i>all/none</i></td><td>'; |
| 175 | $html .= '<input type="checkbox" name="all" onclick="checkAll(this.form.fetch,this)"><i>all/none</i>'; |
| 176 | $html .= "</td></tr><br></table><br><br><br>"; |
| 177 | |
| 178 | $html .= "<table><tr><td height=20px width=150px><b>First week:</b></td>"; |
| 179 | $html .= '<td><select name="range1">'; |
| 180 | $now = date("W"); |
| 181 | for ($i = 1; $i <= 52; $i++) |
| 182 | { |
| 183 | if ($now == $i) |
| 184 | $html .= '<option selected="selected "value="' . $i . '">' . $i . '</option>'; |
| 185 | else |
| 186 | $html .= '<option value="' . $i . '">' . $i . '</option>'; |
| 187 | } |
| 188 | $html .= '</select>'; |
| 189 | $html .= "<i></i></td></tr>"; |
| 190 | $html .= "<tr><td height=20px width=150px><b>Last week:</b></td>"; |
| 191 | $html .= '<td><select name="range2">'; |
| 192 | for ($i = 1; $i <= 52; $i++) |
| 193 | { |
| 194 | if ($now == $i) |
| 195 | $html .= '<option selected="selected "value="' . $i . '">' . $i . '</option>'; |
| 196 | else |
| 197 | $html .= '<option value="' . $i . '">' . $i . '</option>'; |
| 198 | } |
| 199 | $html .= '</select>'; |
| 200 | $html .= "<i></i></td></tr>"; |
| 201 | |
| 202 | $html .= "<tr><td height=20px width=150px><b>Year:</b></td>"; |
| 203 | $html .= '<td><select name="year">'; |
| 204 | $html .= '<option "value="2005">2005</option>'; |
| 205 | $html .= '<option "value="2006">2006</option>'; |
| 206 | $html .= '<option selected="selected "value="2007">2007</option>'; |
| 207 | $html .= '<option "value="2008">2008</option>'; |
| 208 | $html .= '<option "value="2009">2009</option>'; |
| 209 | $html .= '</select>'; |
| 210 | $html .= "</td></tr>"; |
| 211 | $html .= "<tr><td height=40px width=150px><b>Get kills instead of losses?</b></td>"; |
| 212 | $html .= "<td><input type=checkbox name=fetch_losses id=fetch_losses>"; |
| 213 | $html .= "<i> (by default only their kills, your losses, get fetched, when ticked this is inversed)</i></td></tr>"; |
| 214 | $html .= "</table><br><br>"; |
| 215 | $html .= "<input type=submit id=submit name=fetch value=\"Fetch!\"><br><br>"; |
| 216 | |
| 217 | $html .= "<div class=block-header2>Options</div><table>"; |
| 218 | $html .= "<tr><td height=30px width=150px><b>Number of feeds:</b></td>"; |
| 219 | $html .= "<td><input type=text name=fetch_feed_count size=2 maxlength=2 class=password value=\"" . $feedcount . "\"></td></tr>"; |
| 220 | $html .= "<tr><td height=50px width=150px><b>Comment for automatically parsed killmails?</b></td>"; |
| 221 | $html .= "<td><input type=text size=50 class=password name=fetch_comment id=fetch_comment value=\""; |
| 222 | if (config::get('fetch_comment')) |
| 223 | $html .= config::get('fetch_comment'); |
| 224 | $html .= "\"><br><i> (leave blank for none)</i><br></td></tr>"; |
| 225 | $html .= "<tr><td height=30px width=150px><b>Enable compression?</b></td>"; |
| 226 | $html .= "<td><input type=checkbox name=fetch_compress id=fetch_compress"; |
| 227 | if (!config::get('fetch_compress')) |
| 228 | $html .= " checked=\"checked\""; |
| 229 | $html .= "><i> (enables GZip compression for feeds that support this feature, for streams that do not support GZip compression regular html mode will be used automatically)</i></td>"; |
| 230 | $html .= "</tr>"; |
| 231 | $html .= "<tr><td height=30px width=150px><b>Verbose mode?</b></td>"; |
| 232 | $html .= "<td><input type=checkbox name=fetch_verbose id=fetch_verbose"; |
| 233 | if (config::get('fetch_verbose')) |
| 234 | $html .= " checked=\"checked\""; |
| 235 | $html .= "><i> (displays advanced feed request information and errormessages when the imported mail is rejected for being malformed, already exists or is not related to your corp or alliance)</i></td>"; |
| 236 | $html .= "</tr></table><br><br>"; |
| 237 | $html .= "<input type=submit id=submit name=submit value=\"Save\">"; |
| 238 | $html .= "</form>"; |
| 239 | |
| 240 | $page->addContext($menubox->generate()); |
| 241 | $page->setContent($html); |
| 242 | $page->generate(); |
| 243 | |