Changeset 57 for trunk/www/view/server.php
- Timestamp:
- Aug 4, 2009, 5:32:06 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/www/view/server.php
r56 r57 3 3 class ServerView extends Module 4 4 { 5 var $ ViewFormClass = array(5 var $ItemFormClass = array( 6 6 'Title' => 'Nastavení', 7 7 'Table' => 'Server', … … 39 39 'Description' => array('Type' => 'Text', 'Caption' => 'Popis', 'Default' => ''), 40 40 'Homepage' => array('Type' => 'Hyperlink', 'Caption' => 'Webové stránky', 'Default' => ''), 41 'Type' => array('Type' => 'ServerType', 'Caption' => 'Typ', 'Default' => 0),41 //'Type' => array('Type' => 'ServerType', 'Caption' => 'Typ', 'Default' => 0), 42 42 'Database' => array('Type' => 'Database', 'Caption' => 'Databáze', 'Default' => 0), 43 'Motd' => array('Type' => 'String', 'Caption' => 'Zpráva dne', 'Default' => 'Vítejte na free WoW serveru'),43 //'Motd' => array('Type' => 'String', 'Caption' => 'Zpráva dne', 'Default' => 'Vítejte na free WoW serveru'), 44 44 ), 45 45 ); … … 52 52 'Description' => array('Type' => 'Text', 'Caption' => 'Popis', 'Default' => ''), 53 53 'Homepage' => array('Type' => 'Hyperlink', 'Caption' => 'Webové stránky', 'Default' => ''), 54 'Type' => array('Type' => 'ServerType', 'Caption' => 'Typ', 'Default' => 0),55 //'Database' => array('Type' => 'Database', 'Caption' => 'Databáze', 'Default' => 0),56 'Motd' => array('Type' => 'String', 'Caption' => 'Zpráva dne', 'Default' => 'Vítejte na free WoW serveru'),54 //'Type' => array('Type' => 'ServerType', 'Caption' => 'Typ', 'Default' => 0), 55 'Database' => array('Type' => 'Database', 'Caption' => 'Databáze', 'Default' => 0), 56 //'Motd' => array('Type' => 'String', 'Caption' => 'Zpráva dne', 'Default' => 'Vítejte na free WoW serveru'), 57 57 'ServerId' => array('Type' => 'Hidden', 'Caption' => 'Id', 'Default' => 0), 58 58 //'TimeCreation' => array('Type' => 'DateTime', 'Caption' => 'Datum založení', 'Default' => 'NOW()'), … … 71 71 ), 72 72 ); 73 var $SettingDetailedFormClass = array(74 'Title' => 'Podrobné nastavení serveru',75 'Table' => '',76 'Items' => array(77 'ServerId' => array('Type' => 'Hidden', 'Caption' => 'Id', 'Default' => 0),78 'SkipCinematics' => array('Type' => 'SkipCinematics', 'Caption' => 'Zobrazovat úvodní video', 'Default' => ''),79 'StartPlayerLevel' => array('Type' => 'Integer', 'Caption' => 'Počáteční úroveň hráčů', 'Default' => 1),80 'MaxPlayerLevel' => array('Type' => 'Integer', 'Caption' => 'Max. úroveň hráčů', 'Default' => 80),81 'StartHeroicPlayerLevel' => array('Type' => 'Integer', 'Caption' => 'Počáteční úroveň hrdinských postav', 'Default' => 55),82 'StartPlayerMoney' => array('Type' => 'Integer', 'Caption' => 'Počáteční množství peněz', 'Default' => 0),83 'StartHonorPoints' => array('Type' => 'Integer', 'Caption' => 'Počáteční počet bodů cti', 'Default' => 0),84 'MaxHonorPoints' => array('Type' => 'Integer', 'Caption' => 'Max. počet bodů cti', 'Default' => 75000),85 'StartArenaPoints' => array('Type' => 'Integer', 'Caption' => 'Počáteční počet bodů arén', 'Default' => 0),86 'MaxArenaPoints' => array('Type' => 'Integer', 'Caption' => 'Max. počet bodů arén', 'Default' => 5000),87 'MaxArenaPoints' => array('Type' => 'Integer', 'Caption' => 'Max. počet bodů arén', 'Default' => 5000),88 'InstantLogout' => array('Type' => 'SecurityLevel', 'Caption' => 'Povolit okamžitého odhlášení', 'Default' => 1),89 'DisableWaterBreath' => array('Type' => 'SecurityLevel', 'Caption' => 'Zakázat dýchání pod vodou', 'Default' => 1),90 'AllFlightPaths' => array('Type' => 'Boolean', 'Caption' => 'Povoleny všechny létací cesty', 'Default' => 0),91 'AlwaysMaxSkillForLevel' => array('Type' => 'Boolean', 'Caption' => 'Vždy max. dovednost na úroveň', 'Default' => 0),92 'ActivateWeather' => array('Type' => 'Boolean', 'Caption' => 'Aktivní počasí', 'Default' => 1),93 'CastUnstuck' => array('Type' => 'Boolean', 'Caption' => 'Povolit odblokovací kouzlo pomocí .start', 'Default' => 1),94 'MinPetitionSigns' => array('Type' => 'Integer', 'Caption' => 'Min. počet podpisů k zápisu spolku', 'Default' => 9),95 'MaxGroupXPDistance' => array('Type' => 'Integer', 'Caption' => 'Max. rozdíl XP ve skupině', 'Default' => 74),96 'MailDeliveryDelay' => array('Type' => 'Integer', 'Caption' => 'Zpoždění doručení pošty', 'Default' => 3600),97 'Event.Announce' => array('Type' => 'Boolean', 'Caption' => 'Ohlašování událostí', 'Default' => 0),98 'AllowTwoSide.Accounts' => array('Type' => 'Boolean', 'Caption' => 'Povolit účty s postavami obou stran', 'Default' => 0),99 'AllowTwoSide.Interaction.Chat' => array('Type' => 'Boolean', 'Caption' => 'Povolit komunikaci mezi stranami', 'Default' => 0),100 'AllowTwoSide.Interaction.Channel' => array('Type' => 'Boolean', 'Caption' => 'Povolit kanály mezi stranami', 'Default' => 0),101 'AllowTwoSide.WhoList' => array('Type' => 'Boolean', 'Caption' => 'Povolit obě strany v seznamu přítomných', 'Default' => 0),102 ),103 );104 73 105 74 function ShowListOnRow($Row) … … 119 88 $Output = '<h4>Seznam serverů</h4>'; 120 89 $Table = new Table($this->ItemListFormClass); 90 if(array_key_exists('Filter', $_GET)) 91 { 92 if($_GET['Filter'] == 'User') 93 $Table->Definition['Table'] = substr($Table->Definition['Table'], 0, -1).' WHERE User='.$this->System->Modules['User']->User['Id'].')'; 94 } 121 95 $Table->OnRow = array($this, 'ShowListOnRow'); 122 96 $Table->Definition['Items']['Id'] = array('Type' => 'Hidden', 'Caption' => '', 'Default' => ''); … … 136 110 $DbResult = $this->Database->query('SELECT COUNT(*) FROM Server WHERE User='.$this->System->Modules['User']->User['Id']); 137 111 $DbRow = $DbResult->fetch_row(); 138 if(($ServerCount < $Config['MaxServerCount']) and ($DbRow[0] == 0))112 if(($ServerCount < $Config['MaxServerCount']) and ($DbRow[0] < $Config['MaxServerCountPerUser'])) 139 113 $Output .= '<br /><div style="text-align: center;"><a href="?Action=ServerAdd">Vytvořit nový server</a></dev>'; 140 114 } … … 151 125 { 152 126 $Output = '<h4>Podrobnosti serveru</h4>'; 153 $Form = new Form($this-> ViewFormClass);127 $Form = new Form($this->ItemFormClass); 154 128 $Form->LoadValuesFromDatabase($Id); 155 129 $Form->Definition['Items']['Realmlist'] = array('Type' => 'String', 'Caption' => 'Adresa k připojení', 'Default' => ''); … … 176 150 { 177 151 $Output .= ' <a href="?Action=ServerEdit&Id='.$Server->Id.'">Upravit základní nastavení</a>'; 178 $Output .= ' <a href="?Action=ServerEditDetailed&Id='.$Server->Id.'">Upravit podrobné nastavení</a>';179 152 } 180 153 //$Output .= ' <a href="?Action=ServerDatabaseImport&Id='.$Server->Id.'">Načtení čisté databáze</a>'; 154 $Output .= ' <a href="?Action=RealmAdd&Id='.$Server->Id.'">Vytvořit nový svět</a>'; 181 155 } 182 156 $Output .= ' <a href="?Action=GameAccountRegister&Id='.$Server->Id.'">Vytvoření herního účtu</a>'; … … 204 178 $DbResult = $this->Database->query('SELECT COUNT(*) FROM Server WHERE User='.$this->System->Modules['User']->User['Id']); 205 179 $DbRow = $DbResult->fetch_row(); 206 if($DbRow[0] > 0) $Output .= $this->System->SystemMessage('Nový server', 'Lze vytvořit pouze jeden server pro každý uživatelský účet.');180 if($DbRow[0] >= $Config['MaxServerCountPerUser']) $Output .= $this->System->SystemMessage('Nový server', 'Na jeden účet lze vytvořit maximálně '.$Config['MaxServerCountPerUser'].' serverů'); 207 181 else 208 182 { … … 220 194 function Create() 221 195 { 196 global $Config; 197 222 198 $Output = ''; 223 199 if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) … … 225 201 $DbResult = $this->Database->query('SELECT COUNT(*) FROM Server WHERE User='.$this->System->Modules['User']->User['Id']); 226 202 $DbRow = $DbResult->fetch_row(); 227 if($DbRow[0] > 0) $Output .= $this->System->SystemMessage('Nový server', 'Lze vytvořit pouze jeden server pro každý uživatelský účet.');203 if($DbRow[0] >= $Config['MaxServerCountPerUser']) $Output .= $this->System->SystemMessage('Nový server', 'Na jeden účet lze vytvořit maximálně '.$Config['MaxServerCountPerUser'].' serverů'); 228 204 else 229 205 { 230 $DbResult = $this->Database->query('SELECT MAX(NetworkPortRealmd) , MAX(NetworkPortWorldd)FROM Server');206 $DbResult = $this->Database->query('SELECT MAX(NetworkPortRealmd) FROM Server'); 231 207 $DbRow = $DbResult->fetch_row(); 232 208 $NewPortRealmd = $DbRow[0] + 1; 233 209 if($NewPortRealmd < $Config['BaseNetworkPortRealmd']) $NewPortRealmd = $Config['BaseNetworkPortRealmd']; 234 $NewPortWorldd = $DbRow[1] + 1;235 if($NewPortWorldd < $Config['BaseNetworkPortWorldd']) $NewPortWorldd = $Config['BaseNetworkPortWorldd'];236 210 237 211 $Form = new Form($this->CreateFormClass, array()); 238 212 $Form->LoadValuesFromForm(); 239 $this->Database->insert('Server', array('Name' => $Form->Values['Name'], 'Description' => $Form->Values['Description'], 'User' => $this->System->Modules['User']->User['Id'], ' Motd' => $Form->Values['Motd'], 'Homepage' => $Form->Values['Homepage'], 'Type' => $Form->Values['Type'], 'Database' => $Form->Values['Database'], 'NetworkPortWorldd' => $NewPortWorldd, 'NetworkPortRealmd' => $NewPortRealmd, 'Lock' => 1, 'TimeCreate' => 'NOW()'));213 $this->Database->insert('Server', array('Name' => $Form->Values['Name'], 'Description' => $Form->Values['Description'], 'User' => $this->System->Modules['User']->User['Id'], 'Homepage' => $Form->Values['Homepage'], 'Database' => $Form->Values['Database'], 'NetworkPortRealmd' => $NewPortRealmd, 'Lock' => 1, 'TimeCreate' => 'NOW()')); 240 214 $LastInsertId = $this->Database->insert_id; 241 215 $Server = new Server($this->Database, $LastInsertId); 242 216 $Server->CreateDatabase(); 243 217 $Output .= $this->System->SystemMessage('Vytvoření serveru', $Server->ImportDatabase(true)); 244 $Output .= $this->ShowTaskList(); 218 $TaskView = new TaskView($this->Database, $this->System); 219 $Output .= $TaskView->ItemList(); 245 220 //$UserOptions->LoadValuesFromDatabase($this->System->Modules['User']->User['Id']); 246 221 //$Form->OnSubmit = '?Action=ServerCreate'; … … 284 259 $Form->OnSubmit = '?Action=ServerSave'; 285 260 $Output .= $Form->ShowEditForm(); 286 } else $Output = $this->SystemMessage('Nastavení serveru', 'Nemáte oprávnění'); 287 return($Output); 288 } 289 290 function EditDetailed() 291 { 292 $Output = ''; 293 $Server = new Server($this->Database, $_GET['Id']); 294 if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 295 { 296 $Form = new Form($this->$SettingDetailedFormClass); 297 $EmulatorConfig = new MangosConfigurationFile($this->Database); 298 $EmulatorConfig->Load('../server/'.$Server->Id.'/etc/mangosd.conf'); 299 $Form->Values = $EmulatorConfig->ParameterList; 300 $Form->Values['ServerId'] = $_GET['Id']; 301 $Form->OnSubmit = '?Action=ServerSaveDetailed'; 302 $Output .= $Form->ShowEditForm(); 303 } else $this->System->SystemMessage('Nastavení serveru', 'Nemáte oprávnění'); 304 return($Output); 305 } 306 307 function SaveDetailed() 308 { 309 $Output = ''; 310 $Server = new Server($this->Database, $_POST['ServerId']); 311 if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 312 { 313 $Form = new Form($this->$SettingDetailedFormClass, array()); 314 $Form->LoadValuesFromForm(); 315 $EmulatorConfig = new MangosConfigurationFile($this->Database); 316 $EmulatorConfig->Load('../server/'.$Server->Id.'/etc/mangosd.conf'); 317 foreach($Form->Values as $Index => $Item) 318 $EmulatorConfig->ParameterList[$Index] = $Item; 319 $EmulatorConfig->Save('../server/'.$Server->Id.'/etc/mangosd.conf'); 320 $ServerId = $_POST['ServerId']; 321 unset($Form->Values['ServerId']); 322 $Output .= $this->System->SystemMessage('Upravit server', 'Nastavení serveru uloženo.'); 323 //$Form->SaveValuesToDatabase($_POST['ServerId']); 324 $Form->OnSubmit = '?Action=ServerSaveDetailed'; 325 326 $Server = new Server($this->Database, $_POST['ServerId']); 327 $Server->SaveConfiguration(); 328 $Form->Values['ServerId'] = $ServerId; 329 $Output .= $Form->ShowEditForm(); 330 } else $this->System->SystemMessage('Nastavení serveru', 'Nemáte oprávnění'); 331 return($Output); 332 } 261 } else $Output = $this->System->SystemMessage('Nastavení serveru', 'Nemáte oprávnění'); 262 return($Output); 263 } 333 264 334 265 function Start() … … 341 272 { 342 273 $Output .= $this->System->SystemMessage('Spuštění serveru', $Server->Start()); 343 $Output .= $this->ShowTaskList(); 274 $TaskView = new TaskView($this->Database, $this->System); 275 $Output .= $TaskView->ItemList();; 344 276 } else $this->System->SystemMessage('Spuštění serveru', 'Nemáte oprávnění'); 345 277 } else $Output .= USER_BAD_ROLE; … … 356 288 { 357 289 $Output .= $this->System->SystemMessage('Zastavení serveru', $Server->Stop()); 358 $Output .= $this->ShowTaskList(); 290 $TaskView = new TaskView($this->Database, $this->System); 291 $Output .= $TaskView->ItemList();; 359 292 } else $this->System->SystemMessage('Zastavení serveru', 'Nemáte oprávnění'); 360 293 } else $Output .= USER_BAD_ROLE;
Note:
See TracChangeset
for help on using the changeset viewer.