Changeset 54


Ignore:
Timestamp:
Aug 3, 2009, 8:44:23 PM (15 years ago)
Author:
george
Message:
  • Přeorganizování složek a rozhození souborů do podsložek model, common, design a style.
  • Upraveno: Rozpracované oddělení serverů na více světů.
Location:
trunk
Files:
32 added
21 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Readme.txt

    r43 r54  
    66  www - Webové administrační rozhraní v PHP.
    77  server - Složka pro ukládání konfigurací a ladících záznamů vytvořených serverů.
     8  realm - Složka pro ukládání nastavení a záznamů světů.
    89  emulator - Složka obsahující dostupné emulátory.
    910  database - Složka obsahující zdrojové sql soubory pro nastavení databáze. Soubory jsou získávány z adresy https://unifieddb.svn.sourceforge.net/svnroot/unifieddb/.
  • trunk/www/config.sample.php

    r44 r54  
    3131  'BaseDir' => '/opt/wowhosting/',
    3232  'MaxServerCount' => 20,
     33  'MaxRealmPerServerCount' => 1,
    3334  'MaxOnlinePlayerCountPerServer' => 100,
    3435  'CompilerParameters' => '',
  • trunk/www/form_classes.php

    r46 r54  
    8383      'Description' => array('Type' => 'Text', 'Caption' => 'Popis', 'Default' => ''),
    8484      'Homepage' => array('Type' => 'Hyperlink', 'Caption' => 'Webové stránky', 'Default' => ''),
    85       'Type' => array('Type' => 'ServerType', 'Caption' => 'Typ', 'Default' => 0),
    8685      'Database' => array('Type' => 'Database', 'Caption' => 'Databáze', 'Default' => 0),
    87       'Motd' => array('Type' => 'String', 'Caption' => 'Zpráva dne', 'Default' => 'Vítejte na free WoW serveru'),
    8886      'ServerId' => array('Type' => 'Hidden', 'Caption' => 'Id', 'Default' => 0),
    8987      'TimeCreate' => array('Type' => 'DateTime', 'Caption' => 'Datum založení', 'Default' => 'NOW()'),
     
    103101      'CharacterCount' => array('Type' => 'Integer', 'Caption' => 'Postav', 0),
    104102      'UserName' => array('Type' => 'String', 'Caption' => 'Správce', 'Default' => ''),
     103    ),
     104  ),
     105  'RealmView' => array(
     106    'Title' => 'Nastavení',
     107    'Table' => 'Svět',
     108    'SubmitText' => 'Uložit',
     109    'Items' => array(
     110      'Name' => array('Type' => 'String', 'Caption' => 'Název', 'Default' => 'WoW server'),
     111      'Description' => array('Type' => 'Text', 'Caption' => 'Popis', 'Default' => ''),
     112      'Type' => array('Type' => 'ServerType', 'Caption' => 'Typ', 'Default' => 0),
     113      'Database' => array('Type' => 'Database', 'Caption' => 'Databáze', 'Default' => 0),
     114      'Motd' => array('Type' => 'String', 'Caption' => 'Zpráva dne', 'Default' => 'Vítejte na free WoW serveru'),
     115      'RealmId' => array('Type' => 'Hidden', 'Caption' => 'Id', 'Default' => 0),
     116      'TimeCreate' => array('Type' => 'DateTime', 'Caption' => 'Datum založení', 'Default' => 'NOW()'),
     117      'NetworkPortWorldd' => array('Type' => 'Integer', 'Caption' => 'Port realmd', 'Default' => ''),
     118    ),
     119  ),
     120  'RealmList' => array(
     121    'Title' => 'Světy',
     122    'Table' => '(SELECT `Client`.`Version`, `Realm`.`Name`, `Realm`.`Id`, `Server`.`Name` AS `ServerName`, `Realm`.`NetworkPortWorldd`, Realm.Online, Realm.CharacterOnlineCount, Realm.CharacterCount FROM `Realm` JOIN `Server` ON `Server`.`Id` = `Realm`.`Server` JOIN `Database` ON `Database`.`Id` = `Realm`.`Database` JOIN `Emulator` ON `Emulator`.`Id` = `Database`.`Emulator` JOIN `Client` ON `Client`.`Id` = `Emulator`.`Client`)',
     123    'Items' => array(
     124      'Name' => array('Type' => 'String', 'Caption' => 'Název', 'Default' => ''),
     125      'NetworkPortWorldd' => array('Type' => 'Integer', 'Caption' => 'Realmlist', 'Default' => ''),
     126      'Version' => array('Type' => 'Integer', 'Caption' => 'Verze', 'Default' => 0),
     127      'Online' => array('Type' => 'OnlineState', 'Caption' => 'Stav', 'Default' => 0),
     128      'CharacterOnlineCount' => array('Type' => 'Integer', 'Caption' => 'Hráčů online', 'Default' => 0),
     129      'CharacterCount' => array('Type' => 'Integer', 'Caption' => 'Postav', 0),
     130      'ServerName' => array('Type' => 'String', 'Caption' => 'Server', 'Default' => ''),
    105131    ),
    106132  ),
  • trunk/www/index.php

    r48 r54  
    11<?php
    22
    3 include('global.php');
     3include('include.php');
     4
     5chdir(substr($_SERVER['SCRIPT_FILENAME'], 0, strrpos($_SERVER['SCRIPT_FILENAME'], '/')));
     6
     7$ScriptTimeStart = GetMicrotime();
     8// SQL injection hack protection
     9foreach($_POST as $Index => $Item) $_POST[$Index] = addslashes($Item);
     10foreach($_GET as $Index => $Item) $_GET[$Index] = addslashes($Item);
     11
     12if(isset($_SERVER['REMOTE_ADDR'])) session_start();
     13$Database = new Database($Config['Database']['Host'], $Config['Database']['User'], $Config['Database']['Password'], $Config['Database']['Database']);
     14$Database->Prefix = $Config['Database']['Prefix'];
     15$Database->charset($Config['Database']['Charset']);
     16
     17$System = new System();
     18$System->Config = $Config;
     19$System->Database = &$Database;
     20$System->AddModule(new Log());
     21$System->AddModule(new User());
     22if(isset($_SERVER['REMOTE_ADDR'])) $System->Modules['User']->Check();
     23  else $System->Modules['User']->User['Id'] = 0;
    424
    525class Index extends Page
     
    6181    $Form->Definition['Items']['UsedMemory'] = array('Type' => 'String', 'Caption' => 'Použitá paměť', 'Default' => '');   
    6282    $Form->Definition['Items']['AccountCount'] = array('Type' => 'String', 'Caption' => 'Počet účtů', 'Default' => '');   
    63     $Form->Definition['Items']['CharacterCount'] = array('Type' => 'String', 'Caption' => 'Počet postav', 'Default' => '');   
    64     $Form->Definition['Items']['CharacterOnlineCount'] = array('Type' => 'String', 'Caption' => 'Počet hráčů online', 'Default' => '');   
    6583    $ServerStatus = $Server->GetState();
    6684    $Form->Values['Realmlist'] = $Config['Web']['Host'].':'.$Form->Values['NetworkPortRealmd'];
     
    6987    $Form->Values['UsedMemory'] = $this->System->AddPrefixMultipliers($ServerStatus['UsedMemory'] * 1024, 'B', 4, 'Binary');
    7088    $Form->Values['AccountCount'] = $ServerStatus['AccountCount'];
    71     $Form->Values['CharacterCount'] = $ServerStatus['CharacterCount'];
    72     $Form->Values['CharacterOnlineCount'] = $ServerStatus['CharacterOnlineCount'];
    7389    $Output .= $Form->ShowTable();
    7490    $Output .= '<div style="text-align: center">';
     
    204220  }
    205221
     222  function ShowRealmList()
     223  {
     224    global $Config;
     225   
     226    $Realm = new Realm($this->Database, 0);
     227    //$Realm->UpdateServerList();
     228    $Output = '<h4>Seznam světů</h4>';
     229    $Table = new Table('RealmList');
     230    //$Table->OnRow = array($this, 'ShowRealmListOnRow');
     231    $Table->Definition['Items']['Id'] = array('Type' => 'Hidden', 'Caption' => '', 'Default' => '');
     232    $Table->LoadValuesFromDatabase($this->Database);
     233    $Table->Definition['Items']['Actions'] = array('Type' => 'String', 'Caption' => '', 'Default' => '');
     234    foreach($Table->Values as $Index => $Item)
     235    {
     236     $Table->Values[$Index]['Actions'] = '<a href="?Action=RealmShow&amp;Id='.$Item['Id'].'">Podrobnosti</a>';
     237     unset($Table->Values[$Index]['Id']);
     238    }
     239    $Output .= $Table->Show();
     240    if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER)
     241    {
     242      $DbResult = $this->Database->query('SELECT COUNT(*) FROM Realm');
     243      $DbRow = $DbResult->fetch_row();
     244      $RealmCount = $DbRow[0];
     245      //$DbResult = $this->Database->query('SELECT COUNT(*) FROM Realm WHERE Server='.$this->System->Modules['User']->User['Id']);
     246      //$DbRow = $DbResult->fetch_row();
     247      if(($RealmCount < $Config['MaxRealmPerServerCount']))
     248        $Output .= '<br /><div style="text-align: center;"><a href="?Action=RealmAdd">Vytvořit nový svět</a></dev>';     
     249    }
     250    return($Output);
     251  }
     252
    206253  function ShowClientListOnRow($Row)
    207254  {
     
    329376        $Server = $DbResult->fetch_assoc();
    330377        $Output .= '<div><a href="?Action=ServerShow&amp;Id='.$Server['Id'].'">Můj server</a></div>';
     378        $Output .= '<div><a href="?Action=RealmList">Moje světy</a></div>';
    331379        $Output .= '<div><a href="?Action=DebugList&amp;Id='.$Server['Id'].'">Ladící záznamy</a></div>';
    332380        $Output .= '<div><a href="?Action=BackupList&amp;Id='.$Server['Id'].'">Zálohy</a></div>';
     
    392440          $Output .= $Form->ShowEditForm();
    393441          $Output .= '<div class="Centred"><a href="?Action=UserRegister">Registrovat se</a> '.
    394                 '<a href="?Action=PasswordRecovery">Obnova zapomenutého hesla</a></div>';
     442          '<a href="?Action=PasswordRecovery">Obnova zapomenutého hesla</a></div>';
    395443        }
    396444      } else
     
    803851        } else $Output .= USER_BAD_ROLE;
    804852      } else     
     853      if($_GET['Action'] == 'EmulatorShow')
     854      {
     855        if(array_key_exists('Id', $_GET)) $Output .= $this->ShowEmulator($_GET['Id']);
     856        else $this->SystemMessage('Zobrazení emulátoru', 'Nebylo zadáno Id');
     857      } else
    805858      if($_GET['Action'] == 'State')
    806859      {
     
    824877        $Output .= $this->ShowServerList();
    825878      } else
     879      if($_GET['Action'] == 'RealmList')
     880      {
     881        $Output .= $this->ShowRealmList();
     882      } else
    826883      if($_GET['Action'] == 'Test')
    827884      {
Note: See TracChangeset for help on using the changeset viewer.