<?php

class ModuleClientVersion extends AppModule
{
  function __construct($System)
  {
    parent::__construct($System);
    $this->Name = 'ClientVersion';
    $this->Version = '1.0';
    $this->Creator = 'Chronos';
    $this->License = 'GNU/GPL';
    $this->Description = 'Manage and show list of known versions of WoW client.';
    $this->Dependencies = array('');
  }
  
  function Start()
  {
  	$this->System->RegisterPage('client-version', 'PageClientVersion');
  	$this->System->RegisterMenuItem(array(
    	'Title' => T('Game version'),
    	'Hint' => 'Seznam verzí herního klienta',
    	'Link' => $this->System->Link('/client-version/'),
    	'Permission' => LICENCE_ANONYMOUS,
    	'Icon' => '',
    ), 10);
  }
}

class PageClientVersion extends Page
{
	function Show()
	{
		if(array_key_exists('action', $_GET))
		{
			if($_GET['action'] == 'item') $Output = $this->ShowItem();
			else $Output = $this->ShowList();
		} else $Output = $this->ShowList();
		return($Output);
	}
	
	function ShowItem()
	{
     $YesNo = array('Ne', 'Ano');
     $DbResult = $this->System->Database->query('SELECT * FROM ClientVersion WHERE Id='.$_GET['id']);
     if($DbResult->num_rows > 0)
     {
     	 $Version = $DbResult->fetch_assoc();
    
     $Output = '<h3>'.T('Client version').'</h3>';
     $Output .= '<table class="BaseTable">'.
        '<tr><td>'.T('Version').'</td><td>'.$Version['Version'].'</td></tr>'.
        '<tr><td>'.T('More information').'</td><td><a href="http://www.wowwiki.com/Patch_'.$Version['Version'].'">wowwiki.com'.
        '</a></td></tr>'.
        '<tr><td>'.T('Build number').'</td><td>'.$Version['BuildNumber'].'</td></tr>'.
        '<tr><td>'.T('Release date').'</td><td>'.HumanDate($Version['ReleaseDate']).'</td></tr>'.
        '<tr><td>'.T('Title').'</td><td>'.$Version['Title'].'</td></tr>'.
        '<tr><td>'.T('Imported').'</td><td>'.$YesNo[$Version['Imported']].'</td></tr>'.
        '</table>';
        $Output .= '<div><a href="?">'.T('All versions list').'</a></div>';
        if($Version['Imported']) 
          $Output .= '<div><a href="'.$this->System->Link('/progress/?Version='.$Version['Version']).'">'.T('Progress').'</a></div>';
     } else $Output = ShowMessage(T('Item not found'), MESSAGE_CRITICAL);
		return($Output);
	}
	
	function ShowList()
	{		
		$this->Title = T('Game version');
    $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM `ClientVersion`');
    $DbRow = $DbResult->fetch_row();
    $PageList = GetPageList($DbRow[0]);    

    $Output = '<h3>'.T('Game version').'</h3>'.
      $PageList['Output'];

    $TableColumns = array(
      array('Name' => 'Version', 'Title' => T('Version')), 
      array('Name' => 'BuildNumber', 'Title' => T('Build')), 
      array('Name' => 'ReleaseDate', 'Title' => T('Release date')), 
      array('Name' => 'Title', 'Title' => T('Title')), 
      array('Name' => 'Imported', 'Title' => T('Imported')),
    );
    $Order = GetOrderTableHeader($TableColumns, 'BuildNumber', 1);
    $Output .= '<table class="BaseTable">'.
      $Order['Output'];
      
    $YesNo = array('Ne', 'Ano');

    $DbResult = $this->System->Database->query('SELECT * FROM ClientVersion '.$Order['SQL'].$PageList['SQLLimit']);
    while($Version = $DbResult->fetch_assoc())
    {
      $Output .= '<tr><td><a href="?action=item&amp;id='.$Version['Id'].'">'.
        $Version['Version'].'</a></td><td>'.$Version['BuildNumber'].'</td><td>'.
        HumanDate($Version['ReleaseDate']).'</td><td>'.$Version['Title'].'</td>'.
        '<td>'.$YesNo[$Version['Imported']].'</td></tr>';
    }
    $Output .= '</table>'.
      $PageList['Output'];
    return($Output);        
  }
}

