source: trunk/inc/server.php@ 550

Last change on this file since 550 was 550, checked in by george, 16 years ago
  • Upraveno: Realmlist již je v složce pages.
  • Odstraněno: Soubor function.php nepatří do kořenové složky. Namísto toho přesunuta funkce do inc/html.php.
  • Upraveno: Formátování kódu v některých souborech.
  • Odstraněno: Soubory ze starého webu global.php a database.php nepatří do nového.
  • Upraveno: Položky menu nyní generovány inteligentněji z pole.
File size: 14.1 KB
Line 
1<?php
2
3class Server
4{
5 private $db;
6 public function __construct ($db)
7 {
8 $this -> db = $db;
9 }
10 // --
11 public function HumanDate ($date,$time = 1)
12 {
13 // input date is 0000-00-00 00:00:00
14 $date_arr = explode(" ",$date);
15 $date = explode("-",$date_arr[0]);
16 $time_stp = explode(":",$date_arr[1]);
17 $time = mktime($time_stp[0],$time_stp[1],$time_stp[2],$date[1],$date[2],$date[0]);
18 if ($time == 1)
19 {
20 $human_date = date ("d.m.Y H:i:s",$time);
21 }
22 else
23 {
24 $human_date = date ("d.m.Y",$time);
25 }
26 return $human_date;
27 }
28 // --
29 public function RealmOnline ()
30 {
31 $this -> db -> select_db("realm1_realmd");
32 $pocet = $this -> db -> query("SELECT `id` FROM `account` WHERE `online` = '1'") -> num_rows;
33 return $pocet;
34 }
35 // --
36 public function ParseCopper ($copper_in)
37 {
38 $copper = $copper_in;
39 $golds = floor($copper / 10000);
40 $num = $copper - $golds * 10000;
41 $silver = floor($num / 100);
42 $copper = $num - $silver * 100;
43 $show_golds = "<font size=\"4\">".$golds."</font>&nbsp;<img src=\"imgs/inc/g.gif\">";
44 $show_silver = "<font size=\"4\">".$silver."</font>&nbsp;<img src=\"imgs/inc/s.gif\">";
45 $show_copper = "<font size=\"4\">".$copper."</font>&nbsp;<img src=\"imgs/inc/c.gif\">";
46 return $show_golds."&nbsp;".$show_silver."&nbsp;".$show_copper;
47 }
48
49 // --
50 public function MangosOnline()
51 {
52 include("inc/db.php");
53 $this -> db -> select_db($db_characters);
54 $pocet = $this -> db -> query("SELECT `guid` FROM `characters` WHERE `online` = '1'") -> num_rows;
55 return $pocet;
56 }
57 // --
58 public function ServerOnline($ip, $port)
59 {
60 if($fp1 = @fsockopen($ip, $port, $ERROR_NO, $ERROR_STR,(float)0.5))
61 {
62 fclose($fp1);
63 return true;
64 }
65 else
66 {return false;}
67 }
68 // --
69 public function ServerImg ($status)
70 {
71 if ($status)
72 {
73 return "<img src=\"imgs/inc/on.gif\">&nbsp;<font color=\"#234303\" size=\"4\">Online</font>";
74 }
75 else
76 {
77 return "<img src=\"imgs/inc/off.gif\">&nbsp;<font color=\"#990000\" size=\"4\">Offline</font>";
78 }
79 }
80 // --
81 public function ServerUptime ()
82 {
83 include("inc/db.php");
84 $this -> db -> select_db($db_realmd);
85 $row = $this -> db -> query('SELECT `starttime`, `uptime` FROM `uptime` ORDER BY `starttime` DESC LIMIT 1') ->fetch_array();
86 $uptime = round($row["uptime"] / 3600);
87 return $uptime;
88 }
89 // --
90 public function CharacterCount()
91 {
92 include("inc/db.php");
93 $this -> db -> select_db($db_characters);
94 $row = $this -> db -> query("SELECT COUNT(*) FROM characters") -> fetch_array();
95 return($row[0]);
96 }
97 // --
98 public function AccountCount()
99 {
100 include("inc/db.php");
101 $this -> db -> select_db($db_realmd);
102 $row = $this -> db -> query("SELECT COUNT(*) FROM account") -> fetch_array();
103 return($row[0]);
104 }
105 // --
106 public function GuidToCharName ($guid)
107 {
108 include("inc/db.php");
109 $this -> db -> select_db($db_characters);
110 $row = $this -> db -> query("SELECT `name` FROM `characters` WHERE `guid` = '".$guid."' LIMIT 1;") -> fetch_array();
111 return $row["name"];
112 }
113 // --
114 public function ShowGmLog ($log)
115 {
116 echo "
117 <table border=\"1\" width=\"540\">
118 <tr>
119 <th>Čas</th>
120 <th>GM</th>
121 <th>Příkaz</th>
122 <th>Vybrán</th>
123 </tr>
124 ";
125 $gm_log = ereg_replace("\n",";",$log);
126 $gm_log = explode(";",$gm_log);
127 $gm_log = array_reverse($gm_log);
128 foreach($gm_log as $row)
129 {
130
131 if (strpos($row,"Command:") == true)
132 {
133 $edited = str_replace(" Command: ", ";", $row); // 0 - time
134 $edited = str_replace(" (Account: ", ";", $edited); // 1 - command
135 $edited = str_replace(" [Player: ", ";", $edited); // 2 - gm
136 $edited = str_replace(" Selected: ", ";", $edited); // 3 - position
137 $edited = str_replace(" (GUID: ", ";", $edited); // 4 - selected
138 $edited = str_replace(")]", ";", $edited); // 5 - selected guid
139 $edited_arr = explode(";",$edited);
140 if ($edited_arr[4] == "player")
141 {$sel_name = " - ".$this -> GuidToCharName($edited_arr[5]);}
142 else
143 {$sel_name = "";}
144 $human_date = $this -> HumanDate ($edited_arr[0]);
145 echo "
146 <tr>
147 <td><font size=\"2\">".$human_date."</font></td>
148 <td>".$edited_arr[2]."</td>
149 <td>".$edited_arr[1]."</td>
150 <td>".$edited_arr[4].$sel_name."</td>
151 </tr>
152 ";
153 }
154 if (strpos($row,"mail item:") == true)
155 {
156 $edited = str_replace(" GM ", ";", $row);
157 $edited = str_replace(" (Account: ", ";", $edited);
158 $edited = str_replace(") mail item: ", ";", $edited);
159 $edited = str_replace(" (Account: ", ";", $edited);
160 $edited = str_replace(")", "", $edited);
161 $edited_arr = explode(";",$edited);
162 $human_date = $this -> HumanDate ($edited_arr[0]);
163 echo "
164 <tr>
165 <td><font size=\"2\">".$human_date."</font></td>
166 <td>".$edited_arr[1]."</td>
167 <td>Send : ".$edited_arr[3].")</td>
168 <td>-</td>
169 </tr>
170 ";
171
172 }
173 if (strpos($row,"trade:") == true)
174 {
175 $edited = str_replace(" GM ", ";", $row);
176 $edited = str_replace(" (Account: ", ";", $edited);
177 $edited = str_replace(") trade: ", ";", $edited);
178 $edited = str_replace(" (Account: ", ";", $edited);
179 $edited = str_replace(")", "", $edited);
180 $edited_arr = explode(";",$edited);
181
182 $human_date = $this -> HumanDate ($edited_arr[0]);
183 echo "
184 <tr>
185 <td><font size=\"2\">".$human_date."</font></td>
186 <td>".$edited_arr[1]."</td>
187 <td>Trade : ".$edited_arr[3].")</td>
188 <td>-</td>
189 </tr>
190 ";
191 }
192 }
193 echo "</table>";
194 }
195 // --
196 public function SeoUrl ($title)
197 {
198 $address = $title;
199 $diakritika = array("á","ä","č","ď","é","ě","ë","í","ň","ó","ö","ř","š","ť","ú","ů","ü","ý","ž","Á","Ä","Č","Ď","É","Ě","Ë","Í","Ň","Ó","Ö","Ř","Š","Ť","Ú","Ů","Ü","Ý","Ž");
200 $nediakritika = array("a","a","c","d","e","e","e","i","n","o","o","r","s","t","u","u","u","y","z","A","A","C","D","E","E","E","I","N","O","O","R","S","T","U","U","U","Y","Z");
201 $address = str_replace($diakritika, $nediakritika, $address);
202 $address = strtolower ($address);
203 $address = preg_replace ("/[^[:alpha:][:digit:]]/", "-", $address);
204 $address = trim ($address, "-");
205 $address = preg_replace ("/[-]+/", "-", $address);
206 return $address;
207 }
208 // --
209 public function MapName ($id)
210 {
211 $map_id = Array(
212 0 => array(0,"Azeroths"),
213 1 => array(1,"Kalimdor"),
214 13 => array(13,"Test Zone"),
215 17 => array(17,"Kalidar"),
216 30 => array(30,"Alterac Valley"),
217 33 => array(33,"Shadowfang Keep Instance"),
218 34 => array(34,"The Stockade Instance"),
219 35 => array(35,"Stormwind Prison"),
220 36 => array(36,"Deadmines Instance"),
221 37 => array(37,"Plains of Snow"),
222 43 => array(43,"Wailing Caverns Instance"),
223 44 => array(44,"Monastery Interior"),
224 47 => array(47,"Razorfen Kraul Instance"),
225 48 => array(48,"Blackfathom Deeps Instance"),
226 70 => array(70,"Uldaman Instance"),
227 90 => array(90,"Gnomeregan Instance"),
228 109 => array(109,"Sunken Temple Instance"),
229 129 => array(129,"Razorfen Downs Instance"),
230 150 => array(150,"Outland"),
231 169 => array(169,"Emerald Forest"),
232 189 => array(189,"Scarlet Onastery Instance"),
233 209 => array(209,"Zul farrak Instance"),
234 229 => array(229,"Blackrock Spire Instance"),
235 230 => array(230,"Blackrock Depths Instance"),
236 249 => array(249,"Onyxia s Lair Instance"),
237 269 => array(269,"Cot Black Morass"),
238 289 => array(289,"Scholomance Instance"),
239 309 => array(309,"Zul Gurub Instance"),
240 329 => array(329,"Stratholme Instance"),
241 349 => array(349,"Maraudon Instance"),
242 369 => array(369,"Deeprun Tram"),
243 389 => array(389,"Ragefire Chasm Instance"),
244 409 => array(409,"The Molten Core Instance"),
245 429 => array(429,"dire_maul Instance"),
246 449 => array(449,"Alliance pvp Barracks"),
247 450 => array(450,"Horde pvp Barracks"),
248 451 => array(451,"Development Land"),
249 469 => array(469,"BlackwingLair Instance"),
250 489 => array(489,"Warsong Gulch"),
251 509 => array(509,"Ruins of ahn Qiraj Instance"),
252 529 => array(529,"Arathi Basin"),
253 530 => array(530,"Outland"),
254 531 => array(531,"Temple of ahn Qiraj Instance"),
255 532 => array(532,"Karazahn"),
256 533 => array(533,"Naxxramas Instance"),
257 534 => array(534,"Cot_hyjal Past"),
258 540 => array(540,"Hellfire Military"),
259 542 => array(542,"Hellfire Demon"),
260 543 => array(543,"Hellfire Rampart"),
261 544 => array(544,"Hellfire Raid"),
262 545 => array(545,"Coilfang Pumping"),
263 546 => array(546,"Coilfang Marsh"),
264 547 => array(547,"Coilfang Draenei"),
265 548 => array(548,"Coilfang Raid"),
266 550 => array(550,"Tempest Keep Raid"),
267 552 => array(552,"Tempest Keep Arcane"),
268 553 => array(553,"Tempest Keep Atrium"),
269 554 => array(554,"Tempest Keep Factory"),
270 555 => array(555,"Auchindoun Shadow"),
271 556 => array(556,"Auchindoun Srakkoa"),
272 557 => array(557,"Auchindoun Ethereal"),
273 558 => array(558,"Auchindoun Draenei"),
274 559 => array(559,"Nagrand Arena"),
275 560 => array(560,"Cot Hillsbrad Past"),
276 562 => array(562,"Blades Edge Arena"),
277 564 => array(564,"Black Temple"),
278 565 => array(565,"Gruuls Lair"),
279 566 => array(566,"Netherstorm Arena"),
280 568 => array(568,"Zulaman")
281 );
282 if(isset($map_id[$id]))
283 {
284 return $map_id[$id][1];
285 }
286 else
287 {
288 return("Neznámá");
289 }
290 }
291 // --
292 public function ZoneName($id)
293 {
294 $zone_id = Array(
295 1497 => Array("Undercity",1497),
296 1537 => Array("Ironforge",1537),
297 1519 => Array("Stormwind city",1519),
298 3 => Array("Badlands",3),
299 11 => Array("Wetlands",11),
300 33 => Array("Stranglethorn Vale",33),
301 44 => Array("Redridge Mountains",44),
302 38 => Array("Loch Modan",38),
303 10 => Array("Duskwood",10),
304 41 => Array("Deadwind Pass",41),
305 12 => Array("Elwynn Forest",12),
306 46 => Array("Burning Steppes",46),
307 51 => Array("Searing Gorge",51),
308 1 => Array("Dun Morogh",1),
309 47 => Array("The Hinterlands",47),
310 40 => Array("Westfall",40),
311 267 => Array("Hillsbrad Foothills",267),
312 139 => Array("Eastern Plaguelands",139),
313 28 => Array("Western Plaguelands",28),
314 130 => Array("Silverpine Forest",130),
315 85 => Array("Tirisfal Glades",85),
316 4 => Array("Blasted Lands",4),
317 8 => Array("Swamp of Sorrows",8),
318 45 => Array("Arathi Highlands",45),
319 36 => Array("Alterac Mountains",36),
320 1657 => Array("Darnassus",1657),
321 1638 => Array("Thunder_bluff",1638),
322 1637 => Array("Orgrimmar",1637),
323 493 => Array("Moonglade",493),
324 1377 => Array("Silithus",1377),
325 618 => Array("Winterspring",618),
326 490 => Array("Un Goro Crater",490),
327 361 => Array("Felwood",361),
328 16 => Array("Azshara",16),
329 440 => Array("Tanaris",440),
330 15 => Array("Dustwallow Marsh",15),
331 215 => Array("Mulgore",215),
332 357 => Array("Feralas",357),
333 405 => Array("Desolace",405),
334 400 => Array("Thousand Needles",400),
335 14 => Array("Durotar",14),
336 331 => Array("Ashenvale",331),
337 148 => Array("Darkshore",148),
338 141 => Array("Teldrassil",141),
339 406 => Array("Stonetalon Mountains",406),
340 17 => Array("She Barrens",17),
341 3703 => Array("Shattrath city",3703),
342 3487 => Array("Silvermoon city",3487),
343 3523 => Array("Netherstorm",3523),
344 3519 => Array("Terokkar Forest",3519),
345 3518 => Array("Nagrand",3518),
346 3525 => Array("Bloodmyst Isle",3525),
347 3522 => Array("Blades Edge Mountains",3522),
348 3520 => Array("Shadowmoon Valley",3520),
349 3557 => Array("The Exodar",3557),
350 3521 => Array("Zangarmarsh",3521),
351 3483 => Array("Hellfire Peninsula",3483),
352 3524 => Array("Azuremyst Isle",3524),
353 3433 => Array("Ghostlands",3433),
354 3430 => Array("Eversong Woods",3430)
355 );
356 if( isset($zone_id[$id]))
357 {
358 return $zone_id[$id][0];
359 }
360 else
361 {
362 return("-");
363 }
364 }
365}
366
367?>
Note: See TracBrowser for help on using the repository browser.