Changeset 57 for trunk/www/view/realm.php
- Timestamp:
- Aug 4, 2009, 5:32:06 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/www/view/realm.php
r56 r57 4 4 { 5 5 var $ItemFormClass = array( 6 'Title' => 'Nastavení ',7 'Table' => ' Svět',6 'Title' => 'Nastavení světa', 7 'Table' => 'Realm', 8 8 'SubmitText' => 'Uložit', 9 9 'Items' => array( … … 31 31 ), 32 32 ); 33 33 var $CreateFormClass = array( 34 'Title' => 'Nový svět', 35 'Table' => 'Realm', 36 'SubmitText' => 'Vytvořit', 37 'Items' => array( 38 'Name' => array('Type' => 'String', 'Caption' => 'Název', 'Default' => 'Svět'), 39 'Description' => array('Type' => 'Text', 'Caption' => 'Popis', 'Default' => ''), 40 'Homepage' => array('Type' => 'Hyperlink', 'Caption' => 'Webové stránky', 'Default' => ''), 41 'Type' => array('Type' => 'ServerType', 'Caption' => 'Typ', 'Default' => 0), 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'), 44 ), 45 ); 46 var $EditFormClass = array( 47 'Title' => 'Nastavení', 48 'Table' => 'Realm', 49 'SubmitText' => 'Uložit', 50 'Items' => array( 51 'Name' => array('Type' => 'String', 'Caption' => 'Název', 'Default' => 'WoW server'), 52 'Description' => array('Type' => 'Text', 'Caption' => 'Popis', 'Default' => ''), 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'), 57 'RealmId' => array('Type' => 'Hidden', 'Caption' => 'Id', 'Default' => 0), 58 //'TimeCreation' => array('Type' => 'DateTime', 'Caption' => 'Datum založení', 'Default' => 'NOW()'), 59 ), 60 ); 61 var $SettingDetailedFormClass = array( 62 'Title' => 'Podrobné nastavení serveru', 63 'Table' => '', 64 'Items' => array( 65 'ServerId' => array('Type' => 'Hidden', 'Caption' => 'Id', 'Default' => 0), 66 'SkipCinematics' => array('Type' => 'SkipCinematics', 'Caption' => 'Zobrazovat úvodní video', 'Default' => ''), 67 'StartPlayerLevel' => array('Type' => 'Integer', 'Caption' => 'Počáteční úroveň hráčů', 'Default' => 1), 68 'MaxPlayerLevel' => array('Type' => 'Integer', 'Caption' => 'Max. úroveň hráčů', 'Default' => 80), 69 'StartHeroicPlayerLevel' => array('Type' => 'Integer', 'Caption' => 'Počáteční úroveň hrdinských postav', 'Default' => 55), 70 'StartPlayerMoney' => array('Type' => 'Integer', 'Caption' => 'Počáteční množství peněz', 'Default' => 0), 71 'StartHonorPoints' => array('Type' => 'Integer', 'Caption' => 'Počáteční počet bodů cti', 'Default' => 0), 72 'MaxHonorPoints' => array('Type' => 'Integer', 'Caption' => 'Max. počet bodů cti', 'Default' => 75000), 73 'StartArenaPoints' => array('Type' => 'Integer', 'Caption' => 'Počáteční počet bodů arén', 'Default' => 0), 74 'MaxArenaPoints' => array('Type' => 'Integer', 'Caption' => 'Max. počet bodů arén', 'Default' => 5000), 75 'MaxArenaPoints' => array('Type' => 'Integer', 'Caption' => 'Max. počet bodů arén', 'Default' => 5000), 76 'InstantLogout' => array('Type' => 'SecurityLevel', 'Caption' => 'Povolit okamžitého odhlášení', 'Default' => 1), 77 'DisableWaterBreath' => array('Type' => 'SecurityLevel', 'Caption' => 'Zakázat dýchání pod vodou', 'Default' => 1), 78 'AllFlightPaths' => array('Type' => 'Boolean', 'Caption' => 'Povoleny všechny létací cesty', 'Default' => 0), 79 'AlwaysMaxSkillForLevel' => array('Type' => 'Boolean', 'Caption' => 'Vždy max. dovednost na úroveň', 'Default' => 0), 80 'ActivateWeather' => array('Type' => 'Boolean', 'Caption' => 'Aktivní počasí', 'Default' => 1), 81 'CastUnstuck' => array('Type' => 'Boolean', 'Caption' => 'Povolit odblokovací kouzlo pomocí .start', 'Default' => 1), 82 'MinPetitionSigns' => array('Type' => 'Integer', 'Caption' => 'Min. počet podpisů k zápisu spolku', 'Default' => 9), 83 'MaxGroupXPDistance' => array('Type' => 'Integer', 'Caption' => 'Max. rozdíl XP ve skupině', 'Default' => 74), 84 'MailDeliveryDelay' => array('Type' => 'Integer', 'Caption' => 'Zpoždění doručení pošty', 'Default' => 3600), 85 'Event.Announce' => array('Type' => 'Boolean', 'Caption' => 'Ohlašování událostí', 'Default' => 0), 86 'AllowTwoSide.Accounts' => array('Type' => 'Boolean', 'Caption' => 'Povolit účty s postavami obou stran', 'Default' => 0), 87 'AllowTwoSide.Interaction.Chat' => array('Type' => 'Boolean', 'Caption' => 'Povolit komunikaci mezi stranami', 'Default' => 0), 88 'AllowTwoSide.Interaction.Channel' => array('Type' => 'Boolean', 'Caption' => 'Povolit kanály mezi stranami', 'Default' => 0), 89 'AllowTwoSide.WhoList' => array('Type' => 'Boolean', 'Caption' => 'Povolit obě strany v seznamu přítomných', 'Default' => 0), 90 ), 91 ); 34 92 35 93 function ItemList() 36 94 { 37 95 global $Config; 96 97 if(array_key_exists('Id', $_GET)) $ServerId = $_GET['Id']; 38 98 39 99 $Realm = new Realm($this->Database, 0); … … 42 102 $Table = new Table($this->ItemListFormClass); 43 103 //$Table->OnRow = array($this, 'ShowRealmListOnRow'); 104 $Table->Definition['Table'] = substr($Table->Definition['Table'], 0, -1).' WHERE `Realm`.`Server`='.$ServerId.')'; 44 105 $Table->Definition['Items']['Id'] = array('Type' => 'Hidden', 'Caption' => '', 'Default' => ''); 45 106 $Table->LoadValuesFromDatabase($this->Database); … … 63 124 return($Output); 64 125 } 126 127 function Item() 128 { 129 global $Config; 130 131 $Id = $_GET['Id']; 132 $Realm = new Realm($this->Database, $Id); 133 //if(isset($Server->Server)) 134 //{ 135 $Output = '<h4>Podrobnosti světa</h4>'; 136 $Form = new Form($this->ItemFormClass); 137 $Form->LoadValuesFromDatabase($Id); 138 $Form->Definition['Items']['Uptime'] = array('Type' => 'String', 'Caption' => 'Doba běhu', 'Default' => ''); 139 $Form->Definition['Items']['UsedMemory'] = array('Type' => 'String', 'Caption' => 'Použitá paměť', 'Default' => ''); 140 $RealmStatus = $Realm->GetState(); 141 unset($Form->Definition['Items']['NetworkPortWorldd']); 142 //$Form->Values['Uptime'] = $this->System->AddPrefixMultipliers($RealmStatus['Uptime'], '', 4, 'Time'); 143 //$Form->Values['UsedMemory'] = $this->System->AddPrefixMultipliers($RealmStatus['UsedMemory'] * 1024, 'B', 4, 'Binary'); 144 $Output .= $Form->ShowTable(); 145 $Server = new Server($this->Database, $Realm->Data['Server']); 146 $Output .= '<div style="text-align: center">'; 147 if((($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) and ($this->System->Modules['User']->User['Id'] == $Server->Server['User'])) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 148 { 149 $Output .= '<br /><a href="http://'.$this->System->Config['Web']['Host'].'/mysql/">Správa databáze</a> '; 150 if(array_key_exists('Id', $Realm->Data['Database']) and ($Realm->Data['Lock'] == 0)) 151 { 152 if($ServerStatus['WorlddPortState'] == true) $Output .= ' <a href="?Action=RealmStop&Id='.$Realm->Id.'">Zastavit</a> <a href="?Action=RealmRestart&Id='.$Realm->Id.'">Restartovat</a>'; 153 else $Output .= ' <a href="?Action=RealmStart&Id='.$Realm->Id.'">Spustit</a>'; 154 } 155 if($Realm->Data['Lock'] == 0) 156 { 157 $Output .= ' <a href="?Action=RealmEdit&Id='.$Realm->Id.'">Upravit základní nastavení</a>'; 158 $Output .= ' <a href="?Action=RealmEditDetailed&Id='.$Realm->Id.'">Upravit podrobné nastavení</a>'; 159 } 160 //$Output .= ' <a href="?Action=ServerDatabaseImport&Id='.$Server->Id.'">Načtení čisté databáze</a>'; 161 } 162 $Output .= '</div>'; 163 return($Output); 164 } 165 166 function Add() 167 { 168 global $Config; 169 170 if(array_key_exists('Id', $_GET)) 171 { 172 $ServerId = $_GET['Id']; 173 $Output = ''; 174 if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) 175 { 176 $DbResult = $this->Database->query('SELECT COUNT(*) FROM Realm'); 177 $DbRow = $DbResult->fetch_row(); 178 $RealmCount = $DbRow[0]; 179 if($RealmCount < $Config['MaxRealmCount']) 180 { 181 if($this->System->Modules['User']->RealmCount() >= $Config['MaxServerCountPerUser']) $Output .= $this->System->SystemMessage('Nový svět', 'Na jeden účet lze vytvořit maximálně '.$Config['MaxServerCountPerUser'].' světů'); 182 else 183 { 184 $Form = new Form($this->CreateFormClass); 185 $Form->LoadValuesFromForm(); 186 $Form->OnSubmit = '?Action=RealmCreate&Id='.$ServerId; 187 $Output .= 'Tento formulář vám umožní si vytvořit nový svět. Pečlivě vyplňte požadované údaje.'; 188 $Output .= $Form->ShowEditForm(); 189 } 190 } else $Output .= $this->System->SystemMessage('Nový svět', 'Nelze vytvářet další světyservery'); 191 } else $Output .= USER_BAD_ROLE; 192 } else $Output = $this->System->SystemMessage('Vytvoření světa', 'Nezadáno Id serveru'); 193 return($Output); 194 } 195 196 function Create() 197 { 198 global $Config; 199 200 if(array_key_exists('Id', $_GET)) 201 { 202 $ServerId = $_GET['Id']; 203 if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) 204 { 205 if($this->System->Modules['User']->RealmCount() >= $Config['MaxServerCountPerUser']) $Output = $this->System->SystemMessage('Nový svět', 'Na jeden účet lze vytvořit maximálně '.$Config['MaxServerCountPerUser'].' světů'); 206 else 207 { 208 // Allocate unused network port for realm 209 $DbResult = $this->Database->query('SELECT MAX(NetworkPortWorldd) FROM Realm'); 210 $DbRow = $DbResult->fetch_row(); 211 $NewPortWorldd = $DbRow[0] + 1; 212 if($NewPortWorldd < $Config['BaseNetworkPortWorldd']) $NewPortWorldd = $Config['BaseNetworkPortWorldd']; 213 214 $Form = new Form($this->CreateFormClass, array()); 215 $Form->LoadValuesFromForm(); 216 $this->Database->insert('Realm', array('Name' => $Form->Values['Name'], 'Description' => $Form->Values['Description'], 'Server' => $ServerId, 'Motd' => $Form->Values['Motd'], 'Homepage' => $Form->Values['Homepage'], 'Type' => $Form->Values['Type'], 'Database' => $Form->Values['Database'], 'NetworkPortWorldd' => $NewPortWorldd, 'Lock' => 1, 'TimeCreate' => 'NOW()')); 217 $LastInsertId = $this->Database->insert_id; 218 $Realm = new Realm($this->Database, $LastInsertId); 219 $Realm->CreateDatabase(); 220 $Output = $this->System->SystemMessage('Vytvoření světu', $Realm->ImportDatabase(true)); 221 $TaskView = new TaskView($this->Database, $this->System); 222 $Output .= $TaskView->ItemList(); 223 //$UserOptions->LoadValuesFromDatabase($this->System->Modules['User']->User['Id']); 224 //$Form->OnSubmit = '?Action=ServerCreate'; 225 //$Output .= $Form->ShowEditForm(); 226 } 227 } else $Output = USER_BAD_ROLE; 228 } else $Output = $this->System->SystemMessage('Vytvoření světa', 'Nezadáno Id serveru'); 229 return($Output); 230 } 231 232 function Save() 233 { 234 $Output = ''; 235 $Realm = new Realm($this->Database, $_POST['RealmId']); 236 if(($this->System->Modules['User']->User['Id'] == $Realm->GetUser()) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 237 { 238 $Form = new Form($this->EditFormClass, array()); 239 $Form->LoadValuesFromForm(); 240 $RealmId = $_POST['RealmId']; 241 unset($Form->Values['RealmId']); 242 $Output .= $this->System->SystemMessage('Upravit svět', 'Nastavení světa uloženo.'); 243 $Form->SaveValuesToDatabase($_POST['RealmId']); 244 $Form->OnSubmit = '?Action=RealmSave'; 245 246 $Realm = new Realm($this->Database, $_POST['RealmId']); 247 $Realm->SaveConfiguration(); 248 $Form->Values['RealmId'] = $RealmId; 249 $Output .= $Form->ShowEditForm(); 250 } else $Output = $this->System->SystemMessage('Nastavení serveru', 'Nemáte oprávnění'); 251 return($Output); 252 } 253 254 function Edit() 255 { 256 $Output = ''; 257 $Realm = new Realm($this->Database, $_GET['Id']); 258 if(($this->System->Modules['User']->User['Id'] == $Realm->GetUser()) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 259 { 260 $Form = new Form($this->EditFormClass); 261 $Form->LoadValuesFromDatabase($_GET['Id']); 262 $Form->Values['RealmId'] = $_GET['Id']; 263 $Form->OnSubmit = '?Action=RealmSave'; 264 $Output .= $Form->ShowEditForm(); 265 } else $Output = $this->System->SystemMessage('Nastavení světa', 'Nemáte oprávnění'); 266 return($Output); 267 } 268 269 function EditDetailed() 270 { 271 $Output = ''; 272 $Realm = new Realm($this->Database, $_GET['Id']); 273 if(($this->System->Modules['User']->User['Id'] == $Realm->GetUser()) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 274 { 275 $Form = new Form($this->SettingDetailedFormClass); 276 $EmulatorConfig = new MangosConfigurationFile($this->Database); 277 $EmulatorConfig->Load('../realm/'.$Realm->Id.'/etc/mangosd.conf'); 278 $Form->Values = $EmulatorConfig->ParameterList; 279 $Form->Values['RealmId'] = $_GET['Id']; 280 $Form->OnSubmit = '?Action=RealmSaveDetailed'; 281 $Output .= $Form->ShowEditForm(); 282 } else $this->System->SystemMessage('Nastavení světa', 'Nemáte oprávnění'); 283 return($Output); 284 } 285 286 function SaveDetailed() 287 { 288 $Output = ''; 289 $Realm = new Realm($this->Database, $_POST['ServerId']); 290 if(($this->System->Modules['User']->User['Id'] == $Realm->GetUser()) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 291 { 292 $Form = new Form($this->$SettingDetailedFormClass, array()); 293 $Form->LoadValuesFromForm(); 294 $EmulatorConfig = new MangosConfigurationFile($this->Database); 295 $EmulatorConfig->Load('../realm/'.$Realm->Id.'/etc/mangosd.conf'); 296 foreach($Form->Values as $Index => $Item) 297 $EmulatorConfig->ParameterList[$Index] = $Item; 298 $EmulatorConfig->Save('../server/'.$Realm->Id.'/etc/mangosd.conf'); 299 $RealmId = $_POST['RealmId']; 300 unset($Form->Values['RealmId']); 301 $Output .= $this->System->SystemMessage('Upravit svět', 'Nastavení světa uloženo.'); 302 //$Form->SaveValuesToDatabase($_POST['ServerId']); 303 $Form->OnSubmit = '?Action=RealmSaveDetailed'; 304 305 $Realm = new Realm($this->Database, $_POST['RealmId']); 306 $Realm->SaveConfiguration(); 307 $Form->Values['RealmId'] = $RealmId; 308 $Output .= $Form->ShowEditForm(); 309 } else $this->System->SystemMessage('Nastavení světa', 'Nemáte oprávnění'); 310 return($Output); 311 } 312 313 function Start() 314 { 315 $Output = ''; 316 if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) 317 { 318 $Realm = new Realm($this->Database, $_GET['Id']); 319 if(($this->System->Modules['User']->User['Id'] == $Realm->GetUser()) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 320 { 321 $Output .= $this->System->SystemMessage('Spuštění serveru', $Realm->Start()); 322 $TaskView = new TaskView($this->Database, $this->System); 323 $Output .= $TaskView->ItemList();; 324 } else $this->System->SystemMessage('Spuštění serveru', 'Nemáte oprávnění'); 325 } else $Output .= USER_BAD_ROLE; 326 return($Output); 327 } 328 329 function Stop() 330 { 331 $Output = ''; 332 if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) 333 { 334 $Realm = new Realm($this->Database, $_GET['Id']); 335 if(($this->System->Modules['User']->User['Id'] == $Realm->GetUser()) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR)) 336 { 337 $Output .= $this->System->SystemMessage('Zastavení serveru', $Realm->Stop()); 338 $TaskView = new TaskView($this->Database, $this->System); 339 $Output .= $TaskView->ItemList();; 340 } else $this->System->SystemMessage('Zastavení serveru', 'Nemáte oprávnění'); 341 } else $Output .= USER_BAD_ROLE; 342 return($Output); 343 } 65 344 } 66 345
Note:
See TracChangeset
for help on using the changeset viewer.