Changeset 9


Ignore:
Timestamp:
Jun 11, 2009, 11:26:18 AM (15 years ago)
Author:
george
Message:
  • Odstraněno: Původní adresář souborů emulátorů.
  • Přidáno: Omezení max. počtu serverů.
  • Přidáno: Třída pro obsluhu úloh.
  • Opraveno: Pojemnování zdrojových konfiguračních souborů mangosu.
  • Upraveno: U úloh doplněn stav běžící.
  • Přidáno: Kostra třídy pro zobrazování tabulek.
Location:
trunk
Files:
1 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/www/config.sample.php

    r8 r9  
    2929  ),
    3030  'BaseDir' => '/opt/wowhosting/',
     31  'MaxServerCount' => 20,
    3132);
    3233
  • trunk/www/global.php

    r6 r9  
    1818include('page.php');
    1919include('log.php');
    20 include('forms.php');
     20include('types/include.php');
     21include('form.php');
     22include('table.php');
    2123include('server.php');
    2224include('emulator.php');
    2325include('mangos_configuration_file.php');
     26include('task.php');
    2427
    2528$PrefixMultipliers = array
  • trunk/www/index.php

    r6 r9  
    1010  function ShowServerList()
    1111  {
     12    global $Config;
     13   
    1214    $OnlineState = array(false => 'Neaktivní', true => 'Aktivní');
    1315    $Output = '<h4>Seznam serverů</h4>';
     
    2123    }
    2224    $Output .= '</table>';
    23     if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) $Output .= '<br /><div style="text-align: center;"><a href="?Action=ServerAdd">Vytvořit nový server</a></dev>';     
     25    if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER)
     26    {
     27      $DbResult = $this->Database->query('SELECT COUNT(*) FROM Server');
     28      $DbRow = $DbResult->fetch_row();
     29      $ServerCount = $DbRow[0];
     30      if($ServerCount < $Config['MaxServerCount'])
     31        $Output .= '<br /><div style="text-align: center;"><a href="?Action=ServerAdd">Vytvořit nový server</a></dev>';     
     32    }
    2433    return($Output);
    2534  }
     
    147156        }
    148157      } else
    149       if($_GET['Action'] == 'MemberOptions')
    150       {
    151         $UserOptions = new Form('MemberOptions');
    152         $DbResult = $this->Database->query('SELECT Member.Id, Member.InternetTariffNextMonth, Member.FamilyMemberCount, Member.BillingPeriodNext, Subject.Name, Subject.AddressStreet, Subject.AddressTown, Subject.AddressPSC, Subject.IC, Subject.DIC FROM Member JOIN Subject ON Subject.Id = Member.Subject WHERE Member.Id='.$this->System->Modules['User']->User['Member']);
    153         $DbRow = $DbResult->fetch_array();
    154         foreach($UserOptions->Definition['Items'] as $Index => $Item)
    155         {
    156           $UserOptions->Values[$Index] = $DbRow[$Index];
    157         }
    158         $UserOptions->OnSubmit = '?Action=MemberOptionsSave';
    159         $Output .= $UserOptions->ShowEditForm();
    160       } else
    161       if($_GET['Action'] == 'MemberOptionsSave')
    162       {
    163         $UserOptions = new Form('MemberOptions');
    164         $UserOptions->LoadValuesFromForm();
    165         if($UserOptions->Values['FamilyMemberCount'] < 0)
    166           $UserOptions->Values['FamilyMemberCount'] = 0;
    167         if($UserOptions->Values['BillingPeriodNext'] < 2)
    168           $UserOptions->Values['BillingPeriodNext'] = 2;
    169          
    170         $DbResult = $this->Database->update('Member', 'Id='.$this->System->Modules['User']->User['Member'], array('InternetTariffNextMonth' => $UserOptions->Values['InternetTariffNextMonth'], 'FamilyMemberCount' => $UserOptions->Values['FamilyMemberCount'], 'BillingPeriodNext' => $UserOptions->Values['BillingPeriodNext']));
    171         $DbResult = $this->Database->query('SELECT Subject FROM Member WHERE Id='.$this->System->Modules['User']->User['Member']);
    172         $Member = $DbResult->fetch_assoc();
    173         $DbResult = $this->Database->update('Subject', 'Id='.$Member['Subject'], array('Name' => $UserOptions->Values['Name'], 'AddressStreet' => $UserOptions->Values['AddressStreet'], 'AddressTown' => $UserOptions->Values['AddressTown'], 'AddressPSC' => $UserOptions->Values['AddressPSC'], 'IC' => $UserOptions->Values['IC'], 'DIC' => $UserOptions->Values['DIC']));
    174         $Output .= $this->SystemMessage('Nastavení', 'Nastavení domácnosti uloženo.');
    175         $this->System->Modules['Log']->NewRecord('Member+Subject', 'Nastavení člena/subjektu změněno', $UserOptions->Values['Name']);
    176         $DbResult = $this->Database->query('SELECT Member.Id, Member.InternetTariffNextMonth, Member.FamilyMemberCount, Member.BillingPeriodNext, Subject.Name, Subject.AddressStreet, Subject.AddressTown, Subject.AddressPSC, Subject.IC, Subject.DIC FROM Member JOIN Subject ON Subject.Id = Member.Subject WHERE Member.Id='.$this->System->Modules['User']->User['Member']);
    177         $DbRow = $DbResult->fetch_array();
    178         foreach($UserOptions->Definition['Items'] as $Index => $Item)
    179         {
    180           $UserOptions->Values[$Index] = $DbRow[$Index];
    181         }
    182         $UserOptions->OnSubmit = '?Action=MemberOptionsSave';
    183         $Output .= $UserOptions->ShowEditForm();
    184       } else
    185158      if($_GET['Action'] == 'ServerAdd')
    186159      {
    187160        if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER)
    188161        {
    189           $DbResult = $this->Database->query('SELECT COUNT(*) FROM Server WHERE User='.$this->System->Modules['User']->User['Id']);
     162          $DbResult = $this->Database->query('SELECT COUNT(*) FROM Server');
    190163          $DbRow = $DbResult->fetch_row();
    191           if($DbRow[0] > 0) $Output .= $this->SystemMessage('Nový server', 'Lze vytvořit pouze jeden server pro každý uživatelský účet.');
    192           else
     164          $ServerCount = $DbRow[0];
     165          if($ServerCount < $Config['MaxServerCount'])
    193166          {
    194             $Form = new Form('NewServer');
    195             $Form->LoadValuesFromForm();
    196             $Form->OnSubmit = '?Action=ServerCreate';
    197             $Output .= 'Tento formulář vám umožní si vytvořit nový server. Pečlivě vyplňte požadované údaje.';
    198             $Output .= $Form->ShowEditForm();
    199           }
     167            $DbResult = $this->Database->query('SELECT COUNT(*) FROM Server WHERE User='.$this->System->Modules['User']->User['Id']);
     168            $DbRow = $DbResult->fetch_row();
     169            if($DbRow[0] > 0) $Output .= $this->SystemMessage('Nový server', 'Lze vytvořit pouze jeden server pro každý uživatelský účet.');
     170            else
     171            {
     172              $Form = new Form('NewServer');
     173              $Form->LoadValuesFromForm();
     174              $Form->OnSubmit = '?Action=ServerCreate';
     175              $Output .= 'Tento formulář vám umožní si vytvořit nový server. Pečlivě vyplňte požadované údaje.';
     176              $Output .= $Form->ShowEditForm();
     177            }
     178          } else $Output .= $this->SystemMessage('Nový serve', 'Nelze vytvářet další servery');
    200179        } else $Output .= USER_BAD_ROLE;
    201180      } else
  • trunk/www/process_tasks.php

    r8 r9  
    33include('global.php');
    44
    5 chdir('..');
    6 
    7 $Script = '/tmp/wowhosting_script.sh';
    8 $DbResult = $Database->query('SELECT * FROM Task WHERE Executed = 0 ORDER BY Id,Time ASC');
    9 while($Task = $DbResult->fetch_assoc())
    10 {
    11   echo('Provádím '.$Task['Title']."...\n");
    12   $Task['CommandList'] = "#!/bin/sh\n".$Task['CommandList'];
    13   file_put_contents($Script, $Task['CommandList']);
    14   chmod($Script, 0755);
    15   passthru($Script, $Output);
    16   //exec($Script, $Output);
    17   $Output = ''; //implode("\n", $Output);
    18   //echo($Output);
    19   $Database->query('UPDATE Task SET Executed=1, Output="'.addslashes($Output).'" WHERE Id='.$Task['Id']);
    20 }
     5$Task = new Task();
     6$Task->ProcessAll();
    217
    228?>
  • trunk/www/server.php

    r8 r9  
    3131  function AddTask($Title, $Task)
    3232  {
    33     $this->Database->insert('Task', array('Server' => $this->Server['Id'], 'Title' => $Title, 'Time' => 'NOW()', 'CommandList' => implode("\n", $Task)));
     33    $this->Database->insert('Task', array('User' => $this->System->Modules['User']->User['Id'], 'Title' => $Title, 'Time' => 'NOW()', 'CommandList' => implode("\n", $Task)));
    3434  }
    3535 
     
    6666      'mysql --user=server'.$this->Id.' --password=server'.$this->Id.' server'.$this->Id.'_characters < emulator/'.$this->Server['Database']['Emulator']['Id'].'/share/mangos/sql/characters.sql',
    6767    );
    68     if($Delete = true)
     68    if($Delete == true)
    6969    {
    7070      array_unshift($CommandList, 'mysql --silent --skip-column-names -u server'.$this->Id.' -pserver'.$this->Id.' server'.$this->Id.'_mangos -e "show tables" | gawk \'{print "drop table " $1 ";"}\' | mysql -u server'.$this->Id.' -pserver'.$this->Id.' server'.$this->Id.'_mangos');
     
    162162    // mangosd.conf
    163163    $Config = new MangosConfigurationFile($this->Database);
    164     $Config->Load($EmulatorEtcDir.'mangosd.conf');
     164    $Config->Load($EmulatorEtcDir.'mangosd.conf.dist');
    165165    $Config->ParameterList['LoginDatabaseInfo'] = 'localhost;3306;server'.$this->Id.';server'.$this->Id.';server'.$this->Id.'_realmd';
    166166    $Config->ParameterList['WorldDatabaseInfo'] = 'localhost;3306;server'.$this->Id.';server'.$this->Id.';server'.$this->Id.'_mangos';
     
    177177    // realmd.conf
    178178    $Config = new MangosConfigurationFile($this->Database);
    179     $Config->Load($EmulatorEtcDir.'realmd.conf');
     179    $Config->Load($EmulatorEtcDir.'realmd.conf.dist');
    180180    $Config->ParameterList['LoginDatabaseInfo'] = 'localhost;3306;server'.$this->Id.';server'.$this->Id.';server'.$this->Id.'_realmd';
    181181    $Config->ParameterList['RealmServerPort'] = $this->RealmdBaseNetworkPort + $this->Id;
Note: See TracChangeset for help on using the changeset viewer.