Changeset 816 for trunk/Modules/Export


Ignore:
Timestamp:
Feb 22, 2015, 11:20:50 PM (10 years ago)
Author:
chronos
Message:
  • Modified: Tabs converted to spaces.
  • Modified: Remove spaces from end of lines.
  • Added: Code format script.
Location:
trunk/Modules/Export
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Modules/Export/CreateAddon.php

    r788 r816  
    55class ExportAddon extends Export
    66{
    7  
     7
    88  // Replace special codes by lua functions
    99  function ReplaceVarInText($string, $strlower = 'strlower')
    1010  {
    11    
     11
    1212    $string = str_replace('$N', '"..'.$strlower.'(UnitName("player")).."', $string);
    1313    $string = str_replace('$n', '"..'.$strlower.'(UnitName("player")).."', $string);
     
    1717    $string = str_replace('$r', '"..'.$strlower.'(UnitRace("player")).."', $string);
    1818    $Gender = '$G';
    19     while(strpos($string, $Gender) !== false) 
     19    while(strpos($string, $Gender) !== false)
    2020    {
    2121      $Before = substr($string, 0, strpos($string, $Gender));
     
    2828      $Woman = str_replace(' ', '', $Woman);
    2929      $string = $Before.'"..gsub(gsub(UnitSex("player"), "^2$", "'.$Man.'"), "^3$", "'.$Woman.'").."'.$After;
    30     } 
     30    }
    3131    $Gender = '$g';
    32     while(strpos($string, $Gender) !== false) 
     32    while(strpos($string, $Gender) !== false)
    3333    {
    3434      $Before = substr($string, 0, strpos($string, $Gender));
     
    4141      $Woman = str_replace(' ', '', $Woman);
    4242      $string = $Before.'"..gsub(gsub(UnitSex("player"), "^2$", "'.$Man.'"),"^3$", "'.$Woman.'").."'.$After;
    43     } 
     43    }
    4444
    4545    $string = str_replace('$', '', $string);
    4646    $string = str_replace("\r", '', $string);
    4747    $string = str_replace("\n", '\r\n', $string);
    48     return($string);   
     48    return($string);
    4949  }
    5050
     
    5353    //  $string = mysql_escape_string($string);
    5454    $string = strtolower($string);
    55  
     55
    5656    $string = str_replace('"', '\"', $string);
    57     $string = str_replace('$b$b', ' ', $string); 
    58     $string = str_replace('$b $b', ' ', $string);   
    59     $string = str_replace('$b', ' ', $string); 
    60     $string = $this->ReplaceVarInText($string); 
     57    $string = str_replace('$b$b', ' ', $string);
     58    $string = str_replace('$b $b', ' ', $string);
     59    $string = str_replace('$b', ' ', $string);
     60    $string = $this->ReplaceVarInText($string);
    6161    $string = str_replace("\r", ' ', $string);
    6262    $string = str_replace("\n", ' ', $string);
     
    6464    $string = str_replace('\\n', ' ', $string);
    6565    $string = str_replace(' ', '', $string);
    66 //    while(strpos($string, '  ')) 
     66//    while(strpos($string, '  '))
    6767//      $string = str_replace('  ', ' ', $string);
    6868    return($string);
     
    7373    $string = $this->Database->real_escape_string($string);
    7474    $string = str_replace('$B', '\r\n', $string);
    75     $string = str_replace('$b', '\r\n', $string); 
     75    $string = str_replace('$b', '\r\n', $string);
    7676    $string = $this->ReplaceVarInText($string,'');
    7777    return($string);
     
    104104  {
    105105    global $TranslationTree, $CreatedFileList;
    106    
     106
    107107    $Output = '';
    108108    $this->LoadFilters();
    109    
     109
    110110    $CreatedFileList = array();
    111111    $CreatedFileListCount = array();
    112    
     112
    113113    if(!file_exists($this->TempDir.'CzWoW/')) mkdir($this->TempDir.'CzWoW/', 0777, true);
    114  
     114
    115115    $DbResult = $this->Database->query('SELECT `Group`.* FROM `ExportGroup` JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id.' AND `Group`.`TablePrefix` != ""');
    116116    while($Group = $DbResult->fetch_assoc())
    117117    {
    118118    //získání čísla verze pro export
    119       $ID = $this->Database->query('SELECT LastVersion FROM `Group` WHERE Id = '.$Group['Id']); 
     119      $ID = $this->Database->query('SELECT LastVersion FROM `Group` WHERE Id = '.$Group['Id']);
    120120      $LastVersion = $ID->fetch_assoc();
    121      
     121
    122122      if ($LastVersion['LastVersion'] < $this->ClientVersion['BuildNumber'])
    123123        $ExportVersion = $LastVersion['LastVersion'];
     
    125125
    126126      foreach($TranslationTree[$Group['Id']]['Items'] as $Column)
    127       if($Column['AddonFileName'] != '') 
     127      if($Column['AddonFileName'] != '')
    128128      {
    129129        $this->AddProgress(1);
    130         if(!isset($CreatedFileListCount[$Column['AddonFileName']])) 
     130        if(!isset($CreatedFileListCount[$Column['AddonFileName']]))
    131131        $CreatedFileListCount[$Column['AddonFileName']] = 0;
    132132        $CreatedFileListCount[$Column['AddonFileName']]++;
    133133        $FileIndex = $CreatedFileListCount[$Column['AddonFileName']];
    134    
     134
    135135        $CreatedFileList[] = $Column['AddonFileName'].'_'.$FileIndex;
    136         $FileName = $this->TempDir.'CzWoW/'.$Column['AddonFileName'].'_'.$FileIndex.'.lua';       
     136        $FileName = $this->TempDir.'CzWoW/'.$Column['AddonFileName'].'_'.$FileIndex.'.lua';
    137137        $Output .= $Column['AddonFileName'].': ';
    138138        $i = 0;
     
    140140        $Buffer = 'CZWOW_'.$Column['AddonFileName'].'_count='.$FileIndex.';CZWOW_'.$Column['AddonFileName'].'_'.$FileIndex.'={';
    141141        $TableTexts = array();
    142    
     142
    143143        //old version
    144144        //get version before
     
    146146        if ($ExportVersion == '') $BuildNumber = $this->ClientVersion['BuildNumber'];
    147147        $ID = $this->Database->query('SELECT `BuildNumber` FROM `ClientVersion` WHERE '.
    148         ' `Imported` = 1 AND `BuildNumber` < '.$BuildNumber.' ORDER BY  `BuildNumber` DESC LIMIT 1'); 
    149         if($ID->num_rows > 0) {       
     148        ' `Imported` = 1 AND `BuildNumber` < '.$BuildNumber.' ORDER BY  `BuildNumber` DESC LIMIT 1');
     149        if($ID->num_rows > 0) {
    150150          $ExportVersionOld = $ID->fetch_assoc();
    151151          $ExportVersionOld = $ExportVersionOld['BuildNumber'];
    152        
    153           $DbResult2 = $this->Database->query($this->BuildQuery($Group,$ExportVersionOld));       
    154           while($Line = $DbResult2->fetch_assoc()) 
     152
     153          $DbResult2 = $this->Database->query($this->BuildQuery($Group,$ExportVersionOld));
     154          while($Line = $DbResult2->fetch_assoc())
    155155          {
    156             $en = trim($this->ReplaceEnText($Line['En'.$Column['Column']])); 
     156            $en = trim($this->ReplaceEnText($Line['En'.$Column['Column']]));
    157157            $cz = $this->ReplaceCzText($Line[$Column['Column']]);
    158             if(($en <> '') and ($cz <> '') and ($this->NotCancel($en))) 
     158            if(($en <> '') and ($cz <> '') and ($this->NotCancel($en)))
    159159            {
    160                $TableTexts[$en] = $cz; 
     160               $TableTexts[$en] = $cz;
    161161            }
    162162          }
    163163        }
    164164                //last version
    165        
    166         $DbResult2 = $this->Database->query($this->BuildQuery($Group,$ExportVersion));       
    167         while($Line = $DbResult2->fetch_assoc()) 
     165
     166        $DbResult2 = $this->Database->query($this->BuildQuery($Group,$ExportVersion));
     167        while($Line = $DbResult2->fetch_assoc())
    168168        {
    169           $en = trim($this->ReplaceEnText($Line['En'.$Column['Column']])); 
     169          $en = trim($this->ReplaceEnText($Line['En'.$Column['Column']]));
    170170          $cz = $this->ReplaceCzText($Line[$Column['Column']]);
    171           if(($en <> '') and ($cz <> '') and ($this->NotCancel($en))) 
     171          if(($en <> '') and ($cz <> '') and ($this->NotCancel($en)))
    172172          {
    173              $TableTexts[$en] = $cz; 
     173             $TableTexts[$en] = $cz;
    174174          }
    175175        }
    176        
     176
    177177        foreach($TableTexts as $key => $value) {
    178178            $Buffer .= "\n".'["'.$key.'"]="'.$value.'",';
    179179            $i++;
    180180        }
    181        
    182    
     181
     182
    183183        $Buffer = $Buffer."\n};if not CZWOW_".$Column['AddonFileName']." then CZWOW_".$Column['AddonFileName']."=0; end; CZWOW_".$Column['AddonFileName']."=CZWOW_".$Column['AddonFileName']."+".$i.";\n";
    184184
     
    193193    $Buffer = '';
    194194    foreach($CreatedFileList as $CreatedFile)
    195       $Buffer .= 'CZWOW_'.str_replace('_','_count=',$CreatedFile).';'."\n"; 
     195      $Buffer .= 'CZWOW_'.str_replace('_','_count=',$CreatedFile).';'."\n";
    196196    foreach($TranslationTree as $Group)
    197197      foreach($TranslationTree[$Group['Id']]['Items'] as $Column)
    198       if (($Column['AddonFileName'] != '') and (!in_array($Column['AddonFileName'].'_1', $CreatedFileList))) 
     198      if (($Column['AddonFileName'] != '') and (!in_array($Column['AddonFileName'].'_1', $CreatedFileList)))
    199199      {
    200         $Buffer .= 'CZWOW_'.$Column['AddonFileName'].'_count=0;'."\n"; 
    201     }
    202    
     200        $Buffer .= 'CZWOW_'.$Column['AddonFileName'].'_count=0;'."\n";
     201    }
     202
    203203    file_put_contents($this->TempDir.'CzWoW/'.$CountFiles, $Buffer);
    204  
    205  
     204
     205
    206206    // Generate file Translates.xml
    207207    $Buffer = '<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/.\FrameXML\UI.xsd">'."\n";
     
    218218  {
    219219    global $TranslationTree;
    220  
     220
    221221    $this->LoadFilters();
    222  
     222
    223223    $Buffer = "local f=function(name, en, cz) CzWoW_interface[name]=cz;CzWoW_interface_entoname[en]=name; end; CzWoW_interface={};CzWoW_interface_entoname={ };\n";
    224224    $Group = $TranslationTree[14]; // client table
    225225    $Column['Column'] = 'Text';
    226    
     226
    227227    $DbResult = $this->Database->query('SELECT `Group`.* FROM `ExportGroup` JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id.' AND `Group`.`TablePrefix` != "" AND `Group`.`Id` = 14');
    228228    //$Group = $DbResult->fetch_assoc();
     
    231231    else
    232232      $CanGenerated = '';
    233    
     233
    234234    $DbResult = $this->Database->query($this->BuildQuery($Group,$CanGenerated));
    235     while($Line = $DbResult->fetch_array()) 
     235    while($Line = $DbResult->fetch_array())
    236236    {
    237237      $Original = $this->my_trim($Line['En'.$Column['Column']]);
    238238      $Translated = $this->my_trim($Line[$Column['Column']]);
    239       if($this->ClientVersion['Version'] == '2.4.3') 
     239      if($this->ClientVersion['Version'] == '2.4.3')
    240240      {
    241241        $Original = str_replace("|Hchannel:%d|h[%s]|h", '[%s]', $Original);
     
    265265    $Buffer = '
    266266 Čeština pro klienty:
    267   Vytvořeno v projektu http://wowpreklad.zdechov.net/ 
     267  Vytvořeno v projektu http://wowpreklad.zdechov.net/
    268268  Obsahuje Fonty pro správné zobrazování českých znaků, WoW addon překládající
    269269texty
    270  
     270
    271271 Instalace:
    272272  Soubory rozbalte/zkopírujte do kořenové složky s hrou. Obvikle bývá
    273273"C:/Program Files/World of Warcraft/".
    274  
     274
    275275 Verze:
    276   Verze Addonu: '.$Line['Version'].' 
     276  Verze Addonu: '.$Line['Version'].'
    277277  Tato verze je pro verzi hry '.$this->ClientVersion['Version'].'
    278  
     278
    279279 Změny ve verzích:
    280  
     280
    281281    ';
    282282    $DbResult = $System->Database->query('SELECT * FROM `CzWoWPackageVersion` ORDER BY `Date` DESC');
    283     while($Line = $DbResult->fetch_assoc()) 
     283    while($Line = $DbResult->fetch_assoc())
    284284    {
    285285      $Buffer .='
    286   Verze: '.$Line['Version'].' 
     286  Verze: '.$Line['Version'].'
    287287  =============
    288288  '.$Line['text'].'
    289  
     289
    290290  ';
    291291    }
  • trunk/Modules/Export/Export.php

    r799 r816  
    1313  var $TempDir;
    1414  var $SourceDir;
    15  
     15
    1616  function Init()
    1717  {
     
    2323    if(!file_exists($this->SourceDir)) mkdir($this->SourceDir, 0777, true);
    2424  }
    25  
     25
    2626  function SaveAllUsers() {
    27                 $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$this->Id);
    28                 $Export = $DbResult->fetch_assoc();
    29                 if ($Export['AllUsers']) {
    30                         $DbResult2 = $this->System->Database->query('SELECT ID FROM `User` WHERE `ID` NOT IN(SELECT `User` FROM `ExportUser` WHERE `Export`='.$this->Id.')');
    31                         while($UserLine = $DbResult2->fetch_assoc())
    32                         {
    33                                                 $Condition = ' WHERE `Export`='.$this->Id.' AND `User`='.$UserLine['ID'];
    34                                                 $DbResult = $this->System->Database->query('SELECT * FROM `ExportUser` '.$Condition); //,MAX(`Sequence`) as MaxSequence
    35                                                 if($DbResult->num_rows > 0)
    36                                                 {
    37                                                 //      $this->System->Database->query('UPDATE `ExportUser` SET `Sequence`='.$Value.$Condition);
    38                                                 } else
    39                                                 {
     27    $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$this->Id);
     28    $Export = $DbResult->fetch_assoc();
     29    if ($Export['AllUsers']) {
     30      $DbResult2 = $this->System->Database->query('SELECT ID FROM `User` WHERE `ID` NOT IN(SELECT `User` FROM `ExportUser` WHERE `Export`='.$this->Id.')');
     31      while($UserLine = $DbResult2->fetch_assoc())
     32      {
     33            $Condition = ' WHERE `Export`='.$this->Id.' AND `User`='.$UserLine['ID'];
     34            $DbResult = $this->System->Database->query('SELECT * FROM `ExportUser` '.$Condition); //,MAX(`Sequence`) as MaxSequence
     35            if($DbResult->num_rows > 0)
     36            {
     37            //  $this->System->Database->query('UPDATE `ExportUser` SET `Sequence`='.$Value.$Condition);
     38            } else
     39            {
    4040              $this->System->Database->query('INSERT INTO `ExportUser` (`Export`, `User`, `Sequence`) VALUES ('.$this->Id.', '.$UserLine['ID'].', 0)');
    41                                                 }
    42                         }
    43                        
     41            }
     42      }
     43
    4444      $this->System->Database->query('SET @I = 0');
    45                         $this->System->Database->query('UPDATE `ExportUser` SET `Sequence` = (@I := @I + 1) WHERE `Export`='.$this->Id.' ORDER BY `Sequence`;');
    46                 }
    47   }
    48  
     45      $this->System->Database->query('UPDATE `ExportUser` SET `Sequence` = (@I := @I + 1) WHERE `Export`='.$this->Id.' ORDER BY `Sequence`;');
     46    }
     47  }
     48
    4949  function LoadFilters()
    50   { 
     50  {
    5151    $DbResult = $this->Database->query('SELECT * FROM `Export` WHERE `Id`='.$this->Id);
    5252    if($DbResult->num_rows == 0) throw new Exception('Export '.$this->Id.' neexistuje');
    53     $this->Export = $DbResult->fetch_assoc();   
     53    $this->Export = $DbResult->fetch_assoc();
    5454
    5555    // Filter selected users
    5656    $this->UserNames = '';
    5757    $DbResult = $this->Database->query('SELECT `ExportUser`.*, `User`.`Name`, `User`.`ID` FROM `ExportUser` '.
    58         'LEFT JOIN `User` ON `User`.`ID`=`ExportUser`.`User` '.
    59         'WHERE `ExportUser`.`Export`='.$this->Id.' ORDER BY `ExportUser`.`Sequence`');
     58      'LEFT JOIN `User` ON `User`.`ID`=`ExportUser`.`User` '.
     59      'WHERE `ExportUser`.`Export`='.$this->Id.' ORDER BY `ExportUser`.`Sequence`');
    6060    while($UserLine = $DbResult->fetch_assoc())
    6161    {
    6262      $this->UserNames .= ', '.$UserLine['Name'];
    6363    }
    64     $this->UserNames = substr($this->UserNames, 2);     
    65    
     64    $this->UserNames = substr($this->UserNames, 2);
     65
    6666    if($this->Export['ClientVersion'] != '')
    6767    {
    6868      $DbResult = $this->Database->query('SELECT * FROM `ClientVersion` WHERE `Id`='.$this->Export['ClientVersion']);
    6969      $this->ClientVersion = $DbResult->fetch_assoc();
    70     } else $this->ClientVersion = '';   
    71   }
    72  
     70    } else $this->ClientVersion = '';
     71  }
     72
    7373  function BuildQuery($Group, $Version = '')
    7474  {
    7575    global $TranslationTree;
    7676    $this->SaveAllUsers();
    77    
    78     if ($Version <> '') 
     77
     78    if ($Version <> '')
    7979      $ExportVersion = $Version;
    8080    else
    8181      $ExportVersion = $this->ClientVersion['BuildNumber'];
    8282
    83           $DbResultItem = $this->System->Database->query('SELECT * FROM `ExportGroupItem` WHERE `Export`='.$this->Id);
    84                 while($GroupItem = $DbResultItem->fetch_assoc())
    85                 {
    86                   $GroupItems[$GroupItem['GroupItem']] = 1;
     83    $DbResultItem = $this->System->Database->query('SELECT * FROM `ExportGroupItem` WHERE `Export`='.$this->Id);
     84    while($GroupItem = $DbResultItem->fetch_assoc())
     85    {
     86      $GroupItems[$GroupItem['GroupItem']] = 1;
    8787    }
    8888    // Build selected columns
     
    9393  //  $Columns = substr($Columns, 0, -2);
    9494
    95    
     95
    9696    $Query = 'SELECT * FROM (SELECT '.$Columns.' T.`ID`,T.`Language`,T.`User`,T.`Entry`,T.`VersionEnd`,T.`VersionStart`, `User`.`Name` AS `UserName` FROM `'.$Group['TablePrefix'].'` AS `T`'.
    9797    ' JOIN `ExportUser` ON (`ExportUser`.`User`=`T`.`User`) AND (`ExportUser`.`Export`='.$this->Id.') '.
     
    105105    foreach($TranslationTree[$Group['Id']]['Items'] as $Column) {
    106106      $OriginalColumns .= ' `T3`.`'.$Column['Column'].'` AS `En'.$Column['Column'].'`, ';
    107       if (isset($GroupItems[$Column['Id']])) 
     107      if (isset($GroupItems[$Column['Id']]))
    108108        $OriginalColumns .= ' `T3`.`'.$Column['Column'].'` AS `'.$Column['Column'].'`, ';
    109109    }
    110110    $OriginalColumns = substr($OriginalColumns, 0, -2);
    111    
     111
    112112    // Expand query for loading english texts
    113113    $Query = 'SELECT `T4`.*, '.$OriginalColumns.' FROM ('.$Query.') AS `T4` '.
    114114    ' LEFT JOIN `'.$Group['TablePrefix'].'` AS `T3` ON (`T3`.`Entry` = `T4`.`Entry`) '.
    115115    'AND (`T3`.`Language` = '.$this->System->Config['OriginalLanguage'].') AND '.
    116     '(`T3`.`VersionStart` = `T4`.`VersionStart`) AND (`T3`.`VersionEnd` = `T4`.`VersionEnd`)'; 
     116    '(`T3`.`VersionStart` = `T4`.`VersionStart`) AND (`T3`.`VersionEnd` = `T4`.`VersionEnd`)';
    117117
    118118    return($Query);
    119119  }
    120  
     120
    121121  function NeedGeneration()
    122122  {
     
    130130    else return(true);
    131131  // echo $file;
    132    
     132
    133133    $DbResult = $this->Database->query('SELECT `Group`.* FROM `ExportGroup` '.
    134         'JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id);
    135     $result = false;         
     134      'JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id);
     135    $result = false;
    136136    while($Group = $DbResult->fetch_assoc())
    137137    {
     
    146146        if ($DbResult2->num_rows > 0) {
    147147          $result = true;
    148         } 
    149     } 
     148        }
     149    }
    150150    return($result);
    151151  }
    152  
     152
    153153  function ExportToMangosSQL()
    154154  {
    155155    global $TranslationTree;
    156  
     156
    157157    $this->LoadFilters();
    158    
    159     $Buffer = 
    160       "-- Generováno projektem wowpreklad.zdechov.net\n". 
     158
     159    $Buffer =
     160      "-- Generováno projektem wowpreklad.zdechov.net\n".
    161161      "-- ===========================================\n".
    162162      "--\n".
     
    168168      "-- Vzato od uživatelů: ".$this->UserNames."\n".
    169169      "-- Generované tabulky: ";
    170    
     170
    171171    $DbResult = $this->Database->query('SELECT `Group`.* FROM `ExportGroup` '.
    172         'JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id);
     172      'JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id);
    173173    while($Group = $DbResult->fetch_assoc())
    174174    {
    175175      $Buffer .= $Group['TablePrefix'].', ';
    176176    }
    177     $Buffer .= "\n\n"; 
     177    $Buffer .= "\n\n";
    178178
    179179    $DbResult = $this->Database->query('SELECT `Group`.* FROM `ExportGroup` '.
    180         'JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id);
     180      'JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id);
    181181    while($Group = $DbResult->fetch_assoc())
    182182    {
     
    186186        $DbResult2 = $this->Database->query($this->BuildQuery($Group));
    187187        if($DbResult2->num_rows > 0)
    188         while($Line = $DbResult2->fetch_array()) 
     188        while($Line = $DbResult2->fetch_array())
    189189        {
    190190          $Values = '';
     
    199199          // Get multicolumn index
    200200          $ColumnItems = explode(',', $Group['MangosTableIndex']);
    201           if(count($ColumnItems) > 1) 
     201          if(count($ColumnItems) > 1)
    202202          {
    203203            $Where = 'CONCAT(';
     
    206206            $Where = substr($Where, 0, -7).')';
    207207          } else $Where = '`'.$Group['MangosTableIndex'].'`';
    208           $Where .= ' = "'.$Line[$Group['PrimaryKeyItem']].'";'; 
    209          
     208          $Where .= ' = "'.$Line[$Group['PrimaryKeyItem']].'";';
     209
    210210          $Line = 'UPDATE `'.$Group['MangosTable'].'` SET '.$Values.' WHERE '.$Where;
    211211          $Line = str_replace("\n", '\n', $Line);
    212212          $Line = str_replace("\r", '', $Line);
    213213          $Buffer .= $Line."\n";
    214         }     
     214        }
    215215      }
    216216    }
     
    218218    return($Buffer);
    219219  }
    220  
    221   function ExportToAoWoWSQL() 
     220
     221  function ExportToAoWoWSQL()
    222222  {
    223223    global $TranslationTree, $AoWoWconf;
    224  
     224
    225225    //require_once('../aowow/configs/config.php');
    226  
     226
    227227    $Buffer = $this->ExportToMangosSQL();
    228  
     228
    229229    /*
    230230    // Data to aowow
    231231    $Database2 = new mysqli($this->Config['Database']['Host'], $this->Config['Database']['User'], $this->Config['Database']['Password'], $this->Config['Database']['Database']);
    232232    $Database2->query('SET NAMES '.$this->Config['Database']['Charset']);
    233     $Database2->select_db($AoWoWconf['mangos']['db']);   
     233    $Database2->select_db($AoWoWconf['mangos']['db']);
    234234    $AoWoWTables = array(
    235       'aowow_resistances' => 'Id', 
    236       'aowow_spelldispeltype' => 'Id', 
     235      'aowow_resistances' => 'Id',
     236      'aowow_spelldispeltype' => 'Id',
    237237      'aowow_skill' => 'skillID',
    238238    );
    239     foreach($AoWoWTables as $AoWoWTable => $IndexColum) 
     239    foreach($AoWoWTables as $AoWoWTable => $IndexColum)
    240240    {
    241241      $Buffer .= '--'.$AoWoWTable.', ';
    242       $Buffer .= "\n\n"; 
     242      $Buffer .= "\n\n";
    243243      $Query = 'SELECT `name`,`'.$IndexColum.'` FROM `'.$AoWoWTable.'`';
    244244      $DbResult = $Database2->query($Query);
    245       while($Line = $DbResult->fetch_assoc()) 
     245      while($Line = $DbResult->fetch_assoc())
    246246      {
    247247        $Ori_text = $Line['name'];
     
    253253        $Tran = $DbResult2->fetch_assoc();
    254254        //echo ($Line['name'].'='.$Tran['tran']);
    255         if($Tran['Tran'] == '') 
     255        if($Tran['Tran'] == '')
    256256        {
    257257          $DbResult2 = $Database2->query('SELECT `OptionText` AS `En`,
     
    263263          $Tran = $DbResult2->fetch_assoc();
    264264        }
    265        
     265
    266266        if($Tran['Tran'] <> '')
    267267          $Buffer .= 'UPDATE `'.$AoWoWTable.'` SET `name` = "'.addslashes($Tran['Tran']).'" WHERE '.$IndexColum.' = '.$Line[$IndexColum].' ;'."\n";
    268268      }
    269       $Buffer .= "\n\n"; 
     269      $Buffer .= "\n\n";
    270270    }
    271271    */
    272272    if($this->Export['WithDiacritic'] != 1) $Buffer = utf2ascii($Buffer);
    273273    return($Buffer);
    274   } 
    275  
    276   function HaveVarible($String1, $String2, $StartChar = '$') 
     274  }
     275
     276  function HaveVarible($String1, $String2, $StartChar = '$')
    277277  {
    278278          //Export only if translate have same varible %
    279    
     279
    280280    if (strpos($String1,$StartChar) !== false) {
    281    
     281
    282282      while ( strpos($String1,$StartChar) !== false) {
    283283          $pos = strpos($String1,$StartChar);
     
    291291       //   echo $pos.'-'.$varible.'-'.$String1.'-' .$String2.'
    292292        //  ';
    293      
     293
    294294          if (false === strpos($String2,$varible)) {
    295               //  echo $varible; 
     295              //  echo $varible;
    296296            return(false);
    297297          }
     
    299299    }
    300300    return (true);
    301   } 
     301  }
    302302
    303303  function AddProgress($add = 1) {
     
    312312  {
    313313    global $TranslationTree;
    314  
     314
    315315    $this->LoadFilters();
    316        
     316
    317317    $DbResult = $this->Database->query('SELECT `Group`.* FROM `ExportGroup` '.
    318         'JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` '.
    319         'WHERE `ExportGroup`.`Export`='.$this->Id.' AND `Group`.`DBCFileName` != ""');
     318      'JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` '.
     319      'WHERE `ExportGroup`.`Export`='.$this->Id.' AND `Group`.`DBCFileName` != ""');
    320320    $Output = 'Počet generovaných skupin: '.$DbResult->num_rows."\n";
    321321    while($Group = $DbResult->fetch_assoc())
     
    323323      $this->AddProgress(2);
    324324      $Output .= $Group['Name'].', ';
    325       if(file_exists($this->SourceDir.$this->ClientVersion['Version'].'/dbc/'.$Group['DBCFileName'].'.dbc')) 
     325      if(file_exists($this->SourceDir.$this->ClientVersion['Version'].'/dbc/'.$Group['DBCFileName'].'.dbc'))
    326326      {
    327327        // Load string column index list
    328328        $DbResult2 = $this->Database->query('SELECT * FROM `GroupItem` '.
    329                 'JOIN `GroupItemDBC` ON `GroupItem`.`Id` = `GroupItemDBC`.`GroupItem` AND `GroupItemDBC`.`ClientVersion` = '.$this->ClientVersion['Id'].'  WHERE `GroupItem`.`Group` = '.$Group['Id']);     
     329          'JOIN `GroupItemDBC` ON `GroupItem`.`Id` = `GroupItemDBC`.`GroupItem` AND `GroupItemDBC`.`ClientVersion` = '.$this->ClientVersion['Id'].'  WHERE `GroupItem`.`Group` = '.$Group['Id']);
    330330        $ColumnIndexes = array();
    331331        $ColumnFormat = array();
     
    347347              $CanExport = false;
    348348              $Output .= ', NE='.$DbRow['ID'];
    349             } 
     349            }
    350350            if (!$this->HaveVarible($DbRow[$Column['Column']],$DbRow['En'.$Column['Column']])) {
    351351              $CanExport = false;
    352352              $Output .= ', NE='.$DbRow['ID'];
    353             } 
     353            }
    354354          }
    355355
    356356          if ($CanExport)
    357357            $LookupTable[$DbRow[$Group['PrimaryKeyItem']]] = $DbRow;
    358          
     358
    359359        }
    360      
     360
    361361        // Open original DBC file
    362362        $SourceDBCFile = new DBCFile();
    363363        $SourceDBCFile->OpenFile($this->SourceDir.$this->ClientVersion['Version'].'/dbc/'.$Group['DBCFileName'].'.dbc', $ColumnFormat);
    364        
     364
    365365        // Create new DBC file
    366366        if(!file_exists($this->TempDir.'dbc/')) mkdir ($this->TempDir.'dbc/', 0777, true);
     
    375375        $Output .= "\n\r";
    376376        $RowCount = $SourceDBCFile->GetRecordCount();
    377         $FieldCount = $SourceDBCFile->GetFieldCount();       
     377        $FieldCount = $SourceDBCFile->GetFieldCount();
    378378        for($Row = 0; $Row < $RowCount; $Row++)
    379379        {
    380380          $Line = $SourceDBCFile->GetLine($Row);
    381                    
     381
    382382          // Get multicolumn index value
    383383          $PrimaryKeyItem = '';
    384384          $ColumnItems = explode(',', $Group['DBCIndex']);
    385           if(count($ColumnItems) > 1) 
     385          if(count($ColumnItems) > 1)
    386386          {
    387387            foreach($ColumnItems as $ColumnItem)
     
    391391
    392392          if(array_key_exists($PrimaryKeyItem, $LookupTable))
    393           {           
     393          {
    394394            // Replace text columns
    395             $LookupTableItem = $LookupTable[$PrimaryKeyItem];         
     395            $LookupTableItem = $LookupTable[$PrimaryKeyItem];
    396396            foreach($TranslationTree[$Group['Id']]['Items'] as $GroupItem)
    397             { 
     397            {
    398398              if(array_key_exists($GroupItem['Id'], $ColumnIndexes))
    399399                $Line[$ColumnIndexes[$GroupItem['Id']]] = $LookupTableItem[$GroupItem['Column']];
     
    401401          }
    402402          $NewDBCFile->SetLine($Row, $Line);
    403          
     403
    404404          // Show completion progress
    405405          $Progress = round($Row / $RowCount * 100);
     
    412412            $OldProgress = $Progress;
    413413          }
    414         }   
    415         $NewDBCFile->Commit();             
     414        }
     415        $NewDBCFile->Commit();
    416416      } else $Output .= ShowMessage('Zdrojový soubor '.$this->SourceDirRelative.$this->ClientVersion['Version'].'/dbc/'.$Group['DBCFileName'].'.dbc'.' nenalezen.'."\n", MESSAGE_CRITICAL);
    417417    }
     
    423423  {
    424424    global $TranslationTree;
    425  
     425
    426426    $this->LoadFilters();
    427427
     
    440440      $File2 = new FileStream();
    441441      $File2->CreateFile($this->TempDir.'lua/'.$Group['LuaFileName'].'.lua');
    442      
     442
    443443      $LookupTable = array();
    444444      $DbResult2 = $this->Database->query($this->BuildQuery($Group));
     
    454454              if ($CanExport) $Output .= ', NE='.$DbRow['ID'];
    455455              $CanExport = false;
    456             } 
     456            }
    457457            if (!$this->HaveVarible($DbRow[$Column['Column']],$DbRow['En'.$Column['Column']])) {
    458458              if ($CanExport) $Output .= ', NE='.$DbRow['ID'];
    459459              $CanExport = false;
    460             } 
     460            }
    461461            if (!$this->HaveVarible($DbRow['En'.$Column['Column']],$DbRow[$Column['Column']],'%')) {
    462462              if ($CanExport) $Output .= ', NE='.$DbRow['ID'];
    463463              $CanExport = false;
    464             } 
     464            }
    465465            if (!$this->HaveVarible($DbRow[$Column['Column']],$DbRow['En'.$Column['Column']],'%')) {
    466466              if ($CanExport) $Output .= ', NE='.$DbRow['ID'];
    467467              $CanExport = false;
    468             } 
     468            }
    469469            if (!$this->HaveVarible($DbRow[$Column['Column']],$DbRow['En'.$Column['Column']],'\\')) {
    470470              if ($CanExport) $Output .= ', NE='.$DbRow['ID'];
    471471              $CanExport = false;
    472             } 
     472            }
    473473            if (!$this->HaveVarible($DbRow['En'.$Column['Column']],$DbRow[$Column['Column']],'\\')) {
    474474              if ($CanExport) $Output .= ', NE='.$DbRow['ID'];
     
    478478              if ($CanExport) $Output .= ', NE='.$DbRow['ID'];
    479479              $CanExport = false;
    480             } 
     480            }
    481481            if (!$this->HaveVarible($DbRow['En'.$Column['Column']],$DbRow[$Column['Column']],'|')) {
    482482              if ($CanExport) $Output .= ', NE='.$DbRow['ID'];
     
    486486              if ($CanExport) $Output .= ', NE='.$DbRow['ID'];
    487487              $CanExport = false;
    488             } 
     488            }
    489489            if (!$this->HaveVarible($DbRow['En'.$Column['Column']],$DbRow[$Column['Column']],chr(10))) {
    490490              if ($CanExport) $Output .= ', NE='.$DbRow['ID'];
     
    492492            }
    493493          }
    494            
     494
    495495        if ($CanExport)
    496496            $LookupTable[$DbRow['ShortCut']] = $DbRow;
    497497      }
    498        
     498
    499499      while(!$File->EOF())
    500500      {
     
    505505          $Value['ShortCut'] = trim($LineParts[0]);
    506506          $Line = trim($LineParts[1]);
    507          
     507
    508508          if($Line[0] == '"')
    509509          {
     
    519519//            $Value['Text'] = addslashes(stripslashes($Value['Text']));
    520520            $Line = trim(substr($Line, strpos($TempLine, '"') + 1)); // Skip closing quote and semicolon                                                                  {
    521           } else 
     521          } else
    522522          {
    523523            // Nonstring value
     
    552552    return($Output);
    553553  }
    554  
     554
    555555  function GetReadme() {
    556556    $_GET['ExportId'] = $this->Id;
    557557    $PageExport = new PageExport($this->System);
    558     $this->LoadFilters(); 
     558    $this->LoadFilters();
    559559    $Output = '';
    560560    //generation readme
     
    572572  '<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />'.
    573573  '<title>Čeština pro WoW</title>'.
    574 '</head><body>'. 
     574'</head><body>'.
    575575'<h1>České WoW - čestina pro klienta hry World of Warcraft</h1>'.
    576  
     576
    577577'<table cellspacing="10"><tr><td valign="top">'.
    578  
     578
    579579'<p>Texty přebírány z projektu <a href="http://wowpreklad.zdechov.net/">wowpreklad.zdechov.net</a><br>'.
    580580'<a href="http://wowpreklad.zdechov.net/export/?Action=View&ExportId='.$this->Id.'&Tab=0">Export '.$this->Id.'</a></p><br>'.
    581  
    582  
     581
     582
    583583'<p><strong>Vlastnosti</strong>'.
    584584'<ul>'.
     
    591591'</p>'.
    592592'<br>'.
    593  
     593
    594594'<h2>Nejčastější otázky</h2>'.
    595 '<p><strong>Jak mám vyhledávat věci v aukci nebo výpravy na internetu s nainstalovanou češtinou?</strong><br> 
    596 Pokud používáte addon, který mění názvy předmětů jenom zdánlivě pro vás, potřebujete pro vyhledávání v aukci zjistit původní anglický název. Tento název zjistíte jednoduše držením klávesy shift a kliknutím na předmět při otevřené aukci, nebo chatu. Vytvořený odkaz v chatu, nebo text v aukci je v původním znění. Stejně zjistíte i název výpravy kliknutím se shift na výpravu v "quest logu". 
     595'<p><strong>Jak mám vyhledávat věci v aukci nebo výpravy na internetu s nainstalovanou češtinou?</strong><br>
     596Pokud používáte addon, který mění názvy předmětů jenom zdánlivě pro vás, potřebujete pro vyhledávání v aukci zjistit původní anglický název. Tento název zjistíte jednoduše držením klávesy shift a kliknutím na předmět při otevřené aukci, nebo chatu. Vytvořený odkaz v chatu, nebo text v aukci je v původním znění. Stejně zjistíte i název výpravy kliknutím se shift na výpravu v "quest logu".
    597597Pokud jste na serveru s českou lokalizaci (tedy nepoužíváte addon), musíte využít český název pro vyhledávání. Server by měl mít spuštěnou vlastní obdobu databáze wowhead.</p>'.
    598598
    599 '<p><strong>Po nainstalování češtiny a spouštění přes soubor WoWlua.exe mi klesl výrazně výkon</strong><br> 
    600 Problém může být spojen s použitím integrované grafiky místo herní.</p>'. 
    601 
    602 '<p><strong>Při spouštění hry přes soubor WoWLua.exe se mi neukládá žádné nastavení addonů a podobně</strong><br> 
    603 Problém může být způsoben špatně nastavenými právy u souboru WoWLua.exe. Můžete přenastavit práva, nebo spouštět jako správce.</p>'. 
    604 
    605 '<p><strong>Po spuštění souboru WoWLua.exe mi píše chybu:</strong><br> 
    606 Cannot stream required archive data. Please check the network connection. 
    607 Chyba může být způsobena tím, že jste nenainstalovali češtinu do adresáře se hrou. 
    608 Nebo jste nainstalovali do jiné verze hry, než je požadovaná. Může se vztahovat i na požadovanou lokalizaci (enUS, enGB)</p>'. 
    609 
    610 '<p><strong>Po nainstalování češtiny nemám žádné výpravy (questy) česky</strong><br> 
    611 Zkontrolujte si v přihlášení, jestli máte povolený addon CzWoW v seznamu addonů.</p>'. 
    612 
    613 '<p><strong>Addon mi hlásí spoustu chyb.</strong><br> 
    614 Chyba může být způsobena kolizí s jinými addony. Vyzkoušejte spuštění hry pouze s addonem CzWoW.</p>'. 
    615 
    616 '<p><strong>Ve hře se mi špatně zobrazuje diakritika (háčky, čárky)</strong><br> 
    617 Chyba je způsobena chybějícími fonty do hry. Potřebné fonty si stáhněte mezi soubory ke stažení.</p>'. 
    618 
    619 '<p><strong>Mám nainstalovánu češtinu a nejde mi spustit Wow.exe.</strong><br> 
    620 Pokud chcete opět spouštět hru přes původní Wow.exe v angličtině, musíte češtinu nejprve odinstalovat ze systému. Především se jedná o soubor Data/enGB/patch-enGB-5.MPQ či Data/enUS/patch-enUS-5.MPQ, který je nutno smazat. U novějších verzí se soubor může jmenovat wow-update-base-50000.MPQ.</p>'. 
    621 
    622 '<p><strong>Jak mám hru spustit?</strong><br> 
    623 Hru musíte spustit přes soubor WowLua.exe v kořenovém adresáři hry.</p>'. 
    624 
    625 '<p><strong>Mohu použít tuto češtinu na oficiálních serverech?</strong><br> 
     599'<p><strong>Po nainstalování češtiny a spouštění přes soubor WoWlua.exe mi klesl výrazně výkon</strong><br>
     600Problém může být spojen s použitím integrované grafiky místo herní.</p>'.
     601
     602'<p><strong>Při spouštění hry přes soubor WoWLua.exe se mi neukládá žádné nastavení addonů a podobně</strong><br>
     603Problém může být způsoben špatně nastavenými právy u souboru WoWLua.exe. Můžete přenastavit práva, nebo spouštět jako správce.</p>'.
     604
     605'<p><strong>Po spuštění souboru WoWLua.exe mi píše chybu:</strong><br>
     606Cannot stream required archive data. Please check the network connection.
     607Chyba může být způsobena tím, že jste nenainstalovali češtinu do adresáře se hrou.
     608Nebo jste nainstalovali do jiné verze hry, než je požadovaná. Může se vztahovat i na požadovanou lokalizaci (enUS, enGB)</p>'.
     609
     610'<p><strong>Po nainstalování češtiny nemám žádné výpravy (questy) česky</strong><br>
     611Zkontrolujte si v přihlášení, jestli máte povolený addon CzWoW v seznamu addonů.</p>'.
     612
     613'<p><strong>Addon mi hlásí spoustu chyb.</strong><br>
     614Chyba může být způsobena kolizí s jinými addony. Vyzkoušejte spuštění hry pouze s addonem CzWoW.</p>'.
     615
     616'<p><strong>Ve hře se mi špatně zobrazuje diakritika (háčky, čárky)</strong><br>
     617Chyba je způsobena chybějícími fonty do hry. Potřebné fonty si stáhněte mezi soubory ke stažení.</p>'.
     618
     619'<p><strong>Mám nainstalovánu češtinu a nejde mi spustit Wow.exe.</strong><br>
     620Pokud chcete opět spouštět hru přes původní Wow.exe v angličtině, musíte češtinu nejprve odinstalovat ze systému. Především se jedná o soubor Data/enGB/patch-enGB-5.MPQ či Data/enUS/patch-enUS-5.MPQ, který je nutno smazat. U novějších verzí se soubor může jmenovat wow-update-base-50000.MPQ.</p>'.
     621
     622'<p><strong>Jak mám hru spustit?</strong><br>
     623Hru musíte spustit přes soubor WowLua.exe v kořenovém adresáři hry.</p>'.
     624
     625'<p><strong>Mohu použít tuto češtinu na oficiálních serverech?</strong><br>
    626626Ne úplně, protože se vystavujete riziku zablokování vašeho účtu z důvodu použití upravené hry. Na oficiálním serveru lze využít pouze Addon s češtinou CzWoW. Instalační soubor určený pro oficiální servery je už takto přizpůsoben.</p>'.
    627  
     627
    628628'</td><td>';
    629629
     
    631631
    632632  $Output .= '</td></tr></table>'.
    633  
    634  
     633
     634
    635635  '</body></html>';
    636636  return $Output;
    637 } 
    638  
     637}
     638
    639639  function ExportToXML()
    640640  {
    641641    global $TranslationTree;
    642  
     642
    643643    $this->LoadFilters();
    644644
     
    653653    foreach(explode(',', $this->UserNames) as $UserName)
    654654      $Buffer .= "      <user>".$UserName."</user>\n";
    655     $Buffer .= 
     655    $Buffer .=
    656656    "    </contributors>\n".
    657657    "  </meta>\n".
     
    659659
    660660    $DbResult = $this->Database->query('SELECT `Group`.* FROM `ExportGroup` '.
    661         'JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id);
     661      'JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id);
    662662    while($Group = $DbResult->fetch_assoc())
    663663    {
     
    669669      $Buffer .= '    <group id="'.$Group['Id'].'" name="'.$Group['TablePrefix'].'">'."\n";
    670670      $DbResult2 = $this->Database->query($this->BuildQuery($Group));
    671       while($Line = $DbResult2->fetch_assoc()) 
     671      while($Line = $DbResult2->fetch_assoc())
    672672      {
    673673        $Buffer .= '      <item id="'.$Line['Entry'].'" user="'.$Line['UserName'].'">'."\n";
     
    681681        }
    682682        $Buffer .= "      </item>\n";
    683       }   
     683      }
    684684      $Buffer .= "    </group>\n";
    685685    }
     
    688688  "</document>";
    689689    return($Buffer);
    690   }   
     690  }
    691691}
    692692
     
    706706    $this->Dependencies = array();
    707707  }
    708  
     708
    709709  function Start()
    710710  {
    711         $this->System->RegisterPage('export', 'PageExport');
    712         $this->System->RegisterMenuItem(array(
    713         'Title' => 'Exporty',
    714         'Hint' => 'Zde si můžete stáhnout přeložené texty',
    715         'Link' => $this->System->Link('/export/'),
    716         'Permission' => LICENCE_ANONYMOUS,
    717         'Icon' => '',
     711    $this->System->RegisterPage('export', 'PageExport');
     712    $this->System->RegisterMenuItem(array(
     713      'Title' => 'Exporty',
     714      'Hint' => 'Zde si můžete stáhnout přeložené texty',
     715      'Link' => $this->System->Link('/export/'),
     716      'Permission' => LICENCE_ANONYMOUS,
     717      'Icon' => '',
    718718    ), 2);
    719719  }
  • trunk/Modules/Export/ExportOutput.php

    r743 r816  
    1717      //echo($Path.$FileName.'<br />');
    1818      if(is_dir($Path.$FileName)) CreateZipFromDir($Zip, $Path.$FileName.'/', $ZipPath.$FileName.'/');
    19         else $Zip->addFile(file_get_contents($Path.$FileName), $ZipPath.$FileName); 
    20     }         
     19        else $Zip->addFile(file_get_contents($Path.$FileName), $ZipPath.$FileName);
     20    }
    2121  }
    2222}
     
    2525{
    2626  global $System, $Config;
    27  
    28   $Output = '';
    29   $Export = new Export($System);
    30   $Export->Id = $ExportId;
    31   $Export->Init(); 
    32   if(function_exists('gzcompress')) 
     27
     28  $Output = '';
     29  $Export = new Export($System);
     30  $Export->Id = $ExportId;
     31  $Export->Init();
     32  if(function_exists('gzcompress'))
    3333  {
    3434    $SaveFilename = $Export->TempDir.'CzAoWoW_SQL.zip';
    35     $SQLFilename = 'CzAoWoW_SQL.sql';       
     35    $SQLFilename = 'CzAoWoW_SQL.sql';
    3636    $BufferZip = $Export->ExportToAoWoWSQL();
    3737    $ZipFile = new zipfile();
     
    4343  //  'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'.
    4444  //  '</script>';
    45      
    46   $Output .= 'Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '. 
     45
     46  $Output .= 'Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '.
    4747    '<a href="'.$System->Link('/'.$Export->TempDirRelative.'CzAoWoW_SQL.zip').'">'.$SQLFilename.'</a><br />'.
    4848    'Pokud se vám zdá, že filtr na export nefunguje, vymažte si vyrovnávací paměť prohlížeče a zkuste stáhnout soubor znovu.';
     
    5353{
    5454  global $System, $Config;
    55  
    56   $Export = new Export($System);
    57   $Export->Id = $ExportId;
    58  
     55
     56  $Export = new Export($System);
     57  $Export->Id = $ExportId;
     58
    5959  $Output = 'Vygenerovaný SQL kód: <br /><pre class="SQLCode">'.
    6060     htmlspecialchars($Export->ExportToAoWoWSQL()).
     
    6666{
    6767  global $System, $Config;
    68  
    69   $Output = '';
    70   $Export = new Export($System);
    71   $Export->Id = $ExportId;
    72   $Export->Init();
    73   if(function_exists('gzcompress')) 
     68
     69  $Output = '';
     70  $Export = new Export($System);
     71  $Export->Id = $ExportId;
     72  $Export->Init();
     73  if(function_exists('gzcompress'))
    7474  {
    7575    $SaveFilename = $Export->TempDir.'CzWoW_SQL.zip';
    76     $SQLFilename = 'CzWoW_SQL.sql';       
     76    $SQLFilename = 'CzWoW_SQL.sql';
    7777    $BufferZip = $Export->ExportToMangosSQL();
    7878    $ZipFile = new zipfile();
     
    8484  //  'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'.
    8585  //  '</script>';
    86      
    87   $Output .= 'Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '. 
     86
     87  $Output .= 'Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '.
    8888    '<a href="'.$System->Link('/'.$Export->TempDirRelative.'CzWoW_SQL.zip').'">'.$SQLFilename.'</a><br />'.
    8989    'Pokud se vám zdá, že filtr na export nefunguje, vymažte si vyrovnávací paměť prohlížeče a zkuste stáhnout soubor znovu.';
    90   return($Output); 
     90  return($Output);
    9191}
    9292
     
    9494{
    9595  global $System;
    96  
     96
    9797  $Export = new Export($System);
    9898  $Export->Id = $ExportId;
     
    107107{
    108108  global $System;
    109  
    110   if(function_exists('gzcompress')) 
     109
     110  if(function_exists('gzcompress'))
    111111  {
    112112    $Addon = new ExportAddon($System);
     
    114114    $Addon->Init();
    115115    $Output = $Addon->MakeAddon();
    116    
     116
    117117    $Output .= 'Generování addonu...<br />';
    118     $SaveFilename = $Addon->TempDir.'CzWoW_Addon-'.$Addon->ClientVersion['Version'].'.zip';         
     118    $SaveFilename = $Addon->TempDir.'CzWoW_Addon-'.$Addon->ClientVersion['Version'].'.zip';
    119119    $Zip = new zipfile();
    120120    CreateZipFromDir($Zip, $Addon->TempDir.'CzWoW/', 'CzWoW/');
    121     $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/OptionsFrame.xml'), 'CzWoW/OptionsFrame.xml'); 
    122     $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/CzWoW.xml'), 'CzWoW/CzWoW.xml'); 
    123     $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/CzWoW.toc'), 'CzWoW/CzWoW.toc'); 
    124     $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/CzWoW.lua'), 'CzWoW/CzWoW.lua'); 
    125     $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/GameMenuFrame.xml'), 'CzWoW/GameMenuFrame.xml'); 
    126     $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/Localization.lua'), 'CzWoW/Localization.lua'); 
     121    $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/OptionsFrame.xml'), 'CzWoW/OptionsFrame.xml');
     122    $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/CzWoW.xml'), 'CzWoW/CzWoW.xml');
     123    $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/CzWoW.toc'), 'CzWoW/CzWoW.toc');
     124    $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/CzWoW.lua'), 'CzWoW/CzWoW.lua');
     125    $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/GameMenuFrame.xml'), 'CzWoW/GameMenuFrame.xml');
     126    $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/Localization.lua'), 'CzWoW/Localization.lua');
    127127    $Buffer = $Zip->file();
    128128    file_put_contents($SaveFilename, $Buffer);
     
    132132  //  'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'.
    133133  //  '</script>';
    134      
    135   $Output .= 'Soubor ke stažení: '. 
     134
     135  $Output .= 'Soubor ke stažení: '.
    136136    '<a href="'.$System->Link('/'.$Addon->TempDirRelative.'CzWoW_Addon-'.$Addon->ClientVersion['Version'].'.zip').'">CzWoW_Addon-'.$Addon->ClientVersion['Version'].'.zip</a><br />'.
    137137    'Pokud se vám zdá, že filtr na export nefunguje, vymažte si vyrovnávací paměť prohlížeče a zkuste stáhnout soubor znovu.';
     
    143143{
    144144  global $Config, $System;
    145  
    146   $Output = '';
    147   $Export = new Export($System);
    148   $Export->Id = $ExportId;
    149   $Export->Init();
    150   if(function_exists('gzcompress')) 
     145
     146  $Output = '';
     147  $Export = new Export($System);
     148  $Export->Id = $ExportId;
     149  $Export->Init();
     150  if(function_exists('gzcompress'))
    151151  {
    152152    $SaveFilename = $Export->TempDir.'CzWoW_XML.zip';
    153     $SQLFilename = 'CzWoW_XML.sql';       
     153    $SQLFilename = 'CzWoW_XML.sql';
    154154    $BufferZip = $Export->ExportToXML();
    155155    $ZipFile = new zipfile();
     
    161161  // 'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'.
    162162  // '</script>';
    163      
    164   $Output .= 'Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '. 
     163
     164  $Output .= 'Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '.
    165165    '<a href="'.$System->Link('/'.$Export->TempDirRelative.'CzWoW_XML.zip').'">CzWoW_SQL.zip</a><br />'.
    166166    'Pokud se vám zdá, že filtr na export nefunguje, vymažte si vyrovnávací paměť prohlížeče a zkuste stáhnout soubor znovu.';
     
    171171{
    172172  global $System;
    173  
     173
    174174  $Export = new Export($System);
    175175  $Export->Id = $ExportId;
     
    188188  $Export->Id = $ExportId;
    189189  $Export->Init();
    190  
     190
    191191  $Output = '';
    192192  if(array_key_exists('Regenerate', $_POST))
     
    199199  $Output .= '<form action="?Action=View&amp;Tab=7&amp;ExportId='.$ExportId.'" method="post"><input type="submit" name="Regenerate" value="Přegenerovat"/></form><br />';
    200200  $Output .= 'U DBC souborů export textů funguje jinak, protože generování je náročné, jsou požadavky zařazovány do fronty a postupně zpracovávány.<br />DBC soubory je nutné zabalit do souboru patch-enGB-5.MPQ uvnitř složky "DBFilesClient" a hru spouštět přes upravený spouštěcí soubor. Zabalit je můžete pomocí programu <a href="../download/mpqediten32.zip">Ladik\'s MPQ Editor</a>. Stav vygenerování můžete sledovat na této stránce.<br /><br />';
    201    
     201
    202202  $DbResult = $System->Database->query('SELECT * FROM ExportTask WHERE Export = '.$ExportId);
    203203  if($DbResult->num_rows == 0)
     
    206206    $System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování dbc souboru', LOG_TYPE_DOWNLOAD);
    207207    $System->Database->query('UPDATE `ExportTask` SET `Progress`=0 WHERE `Export`='.$Export->Id);
    208   } 
    209  
     208  }
     209
    210210  $DbResult = $System->Database->query('SELECT * FROM `ExportTask` WHERE `Export` = '.$ExportId);
    211211  $ExportTask = $DbResult->fetch_assoc();
     
    216216    while($Group = $DbResult->fetch_assoc())
    217217    {
    218       if(file_exists($Export->TempDir.'dbc/'.$Group['DBCFileName'].'.dbc')) 
    219         $Output .= '<a href="'.$System->Link('/'.$Export->TempDirRelative.'dbc/'.$Group['DBCFileName'].'.dbc').'">'.$Group['DBCFileName'].'.dbc</a><br/>';
     218      if(file_exists($Export->TempDir.'dbc/'.$Group['DBCFileName'].'.dbc'))
     219        $Output .= '<a href="'.$System->Link('/'.$Export->TempDirRelative.'dbc/'.$Group['DBCFileName'].'.dbc').'">'.$Group['DBCFileName'].'.dbc</a><br/>';
    220220    }
    221221  } else {
    222222    $Output .= ShowProgress($Export);
    223223
    224   } 
     224  }
    225225  return($Output);
    226226}
     
    232232
    233233
    234         $Output .= '<script src="http://code.jquery.com/jquery-latest.js"></script>'.
     234      $Output .= '<script src="http://code.jquery.com/jquery-latest.js"></script>'.
    235235               '<script>'.
    236236                  '$(document).ready(function() {'.
     
    241241               '</script>';
    242242
    243    
     243
    244244      $Output .= ' <strong><div id="progress"></div></strong><br />';
    245245
     
    248248    if($DbResult->num_rows > 0) {
    249249      $System->ModuleManager->Modules['Log']->WriteLog('ProcesTask nepracuje přes 2 hodiny, pravděpodobně nepracuje!', LOG_TYPE_ERROR);
    250  
     250
    251251    }
    252252    return ($Output);
     
    256256{
    257257  global $System;
    258  
     258
    259259  $Export = new Export($System);
    260260  $Export->Id = $ExportId;
     
    272272  $Output .= '<form action="?Action=View&amp;Tab=7&amp;ExportId='.$ExportId.'" method="post"><input type="submit" name="Regenerate" value="Přegenerovat"/></form><br />';
    273273  $Output .= 'U souhrné instalace češtiny funguje export textů jinak, protože generování je náročné, jsou požadavky zařazovány do fronty a postupně zpracovávány.<br /><br />';
    274    
     274
    275275  $DbResult = $System->Database->query('SELECT * FROM ExportTask WHERE Export = '.$ExportId);
    276276  if($DbResult->num_rows == 0)
     
    278278    $System->Database->query('INSERT INTO ExportTask (`Export` ,`TimeStart` ) VALUES ('.$ExportId.', NOW())');
    279279    $System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování dbc souboru', LOG_TYPE_DOWNLOAD);
    280   } 
    281  
     280  }
     281
    282282  $DbResult = $System->Database->query('SELECT * FROM `ExportTask` WHERE `Export` = '.$ExportId);
    283283  $ExportTask = $DbResult->fetch_assoc();
     
    287287
    288288  } else {
    289    
     289
    290290    $Output .= ShowProgress($Export);
    291291  }
     
    296296{
    297297  global $System, $Config;
    298  
    299   $Export = new Export($System);
    300   $Export->Id = $ExportId;
    301   $Export->Init();
    302 
    303   if(function_exists('gzcompress')) 
     298
     299  $Export = new Export($System);
     300  $Export->Id = $ExportId;
     301  $Export->Init();
     302
     303  if(function_exists('gzcompress'))
    304304  {
    305305    $Output = 'Generování lua souborů...<br />';
    306306    $Export->ExportToLua();
    307     $SaveFilename = $Export->TempDir.'CzWoW_Lua.zip';         
     307    $SaveFilename = $Export->TempDir.'CzWoW_Lua.zip';
    308308    $ZipFile = new zipfile();
    309309    CreateZipFromDir($ZipFile, $Export->TempDir.'lua/', '');
     
    315315  //  'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'.
    316316  //  '</script>';
    317      
    318   $Output .= '<strong>Soubory:</strong><br/>'. 
     317
     318  $Output .= '<strong>Soubory:</strong><br/>'.
    319319    'Souhrný archív <a href="'.$System->Link('/'.$Export->TempDirRelative.'CzWoW_Lua.zip').'">CzWoW_Lua.zip</a><br />';
    320320  $DbResult = $System->Database->query('SELECT `Group`.* FROM `ExportGroup` JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$Export->Id.' AND `Group`.`LuaFileName` != ""');
  • trunk/Modules/Export/Page.php

    r809 r816  
    1414class PageExport extends Page
    1515{
    16         function ExportList()
    17         {
    18                 $Output = '<a href="?Action=ViewList">'.T('All').'</a>';
    19                 if($this->System->User->Licence(LICENCE_USER))
    20                 {
    21                         $Output .= ' <a href="?Action=ViewList&amp;Filter=Others">Ostatních</a>'.
    22                                         ' <a href="?Action=ViewList&amp;Filter=My">'.T('Mine').'</a>';
    23                 }
    24        
    25                 if($this->System->User->Licence(LICENCE_USER))
    26                         $Output .= '<br/><div style="text-align: center;"><a href="?Action=Create">'.T('Create new export').'</a></div><br/>';
    27                
    28                 $Filter = '';
    29                 if(array_key_exists('Filter', $_GET))
    30                 {
    31                         if($_GET['Filter'] == 'My') $Filter = ' WHERE `Export`.`User` = '.$this->System->User->Id;
    32                         if($_GET['Filter'] == 'Others') $Filter = ' WHERE `Export`.`User` != '.$this->System->User->Id;
    33                 }
    34        
    35                 $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM `Export` '.$Filter);
    36                 $DbRow = $DbResult->fetch_row();
    37                 $PageList = GetPageList($DbRow[0]);
    38        
    39                 $Output .= '<h3>'.T('List of export').'</h3>'.
    40                                 $PageList['Output'];
    41        
    42                 $TableColumns = array(
    43                                 array('Name' => 'TimeCreate', 'Title' => T('Time made')),
    44                                 array('Name' => 'UserName', 'Title' => T('Translator')),
    45                                 array('Name' => 'Title', 'Title' => T('Name od export')),
    46                                 //  array('Name' => 'UserCount', 'Title' => 'Vybraných překladatelů'),
    47                                 //  array('Name' => 'GroupCount', 'Title' => 'Překladových skupin'),
    48                                 array('Name' => 'OutputType', 'Title' => T('Type of output')),
    49                                 array('Name' => 'ClientVersion', 'Title' => T('Client version')),
    50                                 array('Name' => 'UsedCount', 'Title' => T('Viewed count')),
    51                                 array('Name' => '', 'Title' => T('Action')),
    52                 );
    53                 $Order = GetOrderTableHeader($TableColumns, 'TimeCreate', 1);
    54                 $Output .= '<table class="BaseTable">'.
    55                                 $Order['Output'];
    56        
    57                 $DbResult = $this->System->Database->query('SELECT `User`.`Name` AS `UserName`, `Export`.`Id`, `Export`.`TimeCreate`, `Export`.`Title`, `Export`.`User`, `Export`.`UsedCount`, '.
     16  function ExportList()
     17  {
     18    $Output = '<a href="?Action=ViewList">'.T('All').'</a>';
     19    if($this->System->User->Licence(LICENCE_USER))
     20    {
     21      $Output .= ' <a href="?Action=ViewList&amp;Filter=Others">Ostatních</a>'.
     22          ' <a href="?Action=ViewList&amp;Filter=My">'.T('Mine').'</a>';
     23    }
     24
     25    if($this->System->User->Licence(LICENCE_USER))
     26      $Output .= '<br/><div style="text-align: center;"><a href="?Action=Create">'.T('Create new export').'</a></div><br/>';
     27
     28    $Filter = '';
     29    if(array_key_exists('Filter', $_GET))
     30    {
     31      if($_GET['Filter'] == 'My') $Filter = ' WHERE `Export`.`User` = '.$this->System->User->Id;
     32      if($_GET['Filter'] == 'Others') $Filter = ' WHERE `Export`.`User` != '.$this->System->User->Id;
     33    }
     34
     35    $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM `Export` '.$Filter);
     36    $DbRow = $DbResult->fetch_row();
     37    $PageList = GetPageList($DbRow[0]);
     38
     39    $Output .= '<h3>'.T('List of export').'</h3>'.
     40        $PageList['Output'];
     41
     42    $TableColumns = array(
     43        array('Name' => 'TimeCreate', 'Title' => T('Time made')),
     44        array('Name' => 'UserName', 'Title' => T('Translator')),
     45        array('Name' => 'Title', 'Title' => T('Name od export')),
     46        //  array('Name' => 'UserCount', 'Title' => 'Vybraných překladatelů'),
     47        //  array('Name' => 'GroupCount', 'Title' => 'Překladových skupin'),
     48        array('Name' => 'OutputType', 'Title' => T('Type of output')),
     49        array('Name' => 'ClientVersion', 'Title' => T('Client version')),
     50        array('Name' => 'UsedCount', 'Title' => T('Viewed count')),
     51        array('Name' => '', 'Title' => T('Action')),
     52    );
     53    $Order = GetOrderTableHeader($TableColumns, 'TimeCreate', 1);
     54    $Output .= '<table class="BaseTable">'.
     55        $Order['Output'];
     56
     57    $DbResult = $this->System->Database->query('SELECT `User`.`Name` AS `UserName`, `Export`.`Id`, `Export`.`TimeCreate`, `Export`.`Title`, `Export`.`User`, `Export`.`UsedCount`, '.
    5858      '(SELECT Version FROM `ClientVersion` WHERE `ClientVersion`.`Id`=`Export`.`ClientVersion`) AS `ClientVersion`, '.
    5959      '(SELECT Id FROM `ClientVersion` WHERE `ClientVersion`.`Id`=`Export`.`ClientVersion`) AS `ClientVersionId`, '.
     
    6262      '(SELECT COUNT(*) FROM `ExportUser` WHERE `ExportUser`.`Export`=`Export`.`Id`) AS `UserCount` FROM `Export` '.
    6363      'LEFT JOIN `User` ON `User`.`ID`=`Export`.`User` '.$Filter.$Order['SQL'].$PageList['SQLLimit']);
    64                 while($Export = $DbResult->fetch_assoc())
    65                 {
    66                         $Action = '<a href="?Action=View&amp;ExportId='.$Export['Id'].'&amp;Tab=0">'.T('View').'</a> '.
    67                           '<a href="?Action=View&amp;ExportId='.$Export['Id'].'&amp;Tab=7">'.T('Make export').'</a>';
    68                         if($Export['User'] == $this->System->User->Id) $Action .= ' <a href="?Action=Delete&amp;ExportId='.$Export['Id'].'" onclick="return confirmAction(\''.T('Realy delete item?').'\');">'.T('Delete').'</a>';
    69                         if($this->System->User->Id != null) $Action .= ' <a href="?Action=Clone&amp;ExportId='.$Export['Id'].'" onclick="return confirmAction(\''.T('Realy clone item?').'\');">'.T('Clone').'</a>';
    70                         $Output .= '<tr><td>'.HumanDate($Export['TimeCreate']).'</td>'.
    71                                         '<td><a href="'.$this->System->Link('/user.php?user='.$Export['User']).'">'.$Export['UserName'].'</a></td>'.
    72                                         '<td>'.$Export['Title'].'</td>'.
    73                                         '<td>'.$Export['OutputType'].'</td>'.
    74                                         '<td><a href="'.$this->System->Link('/client-version/?action=item&amp;id='.$Export['ClientVersionId']).'">'.$Export['ClientVersion'].'</a></td>'.
    75                                         '<td>'.$Export['UsedCount'].'</td>'.
    76                                         '<td>'.$Action.'</td></tr>';
    77                 }
    78                 $Output .= '</table>'.
    79                                 $PageList['Output'];
    80        
    81                 return($Output);
    82         }
    83        
    84         function ExportCreate()
    85         {
    86                 if($this->System->User->Licence(LICENCE_USER))
    87                 {
    88                         $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM `Export` WHERE `User`='.$this->System->User->Id);
    89                         $DbRow = $DbResult->fetch_row();
    90                         if($DbRow[0] < $this->System->Config['MaxExportPerUser'])
    91                         {
    92                                 $Output = '<form action="?Action=CreateFinish" method="post">'.
    93                                                 '<fieldset><legend>'.T('Creation of new export').'</legend>'.
    94                                                 '<table><tr><td>'.T('Identification').':</td><td><input type="text" name="Title" /></td></tr>'.
    95                                                 '<tr><td>'.T('Description').':</td><td><textarea name="Description" cols="54" rows="10"></textarea></td></tr>'.
    96                                                 '<tr><td colspan="2"><input type="submit" value="'.T('Create').'" /></td></tr>'.
    97                                                 '</table></fieldset></form>';
    98                         } else $Output = ShowMessage(T('You can\'t create another export. Max for one user is').$this->System->Config['MaxExportPerUser'].'.', MESSAGE_CRITICAL);
    99                 } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
    100                 return($Output);
    101         }
    102        
    103         function ExportCreateFinish()
    104         {
    105                 if($this->System->User->Licence(LICENCE_USER))
    106                 {
    107                         if(array_key_exists('Title', $_POST) and array_key_exists('Description', $_POST))
    108                         {
    109                                 $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM `Export` WHERE `User`='.$this->System->User->Id);
    110                                 $DbRow = $DbResult->fetch_row();
    111                                 if($DbRow[0] < $this->System->Config['MaxExportPerUser'])
    112                                 {
    113                                         $this->System->Database->query('INSERT INTO `Export` (`Title`, `User`, `TimeCreate`, `WithDiacritic`, `Description`) VALUES ("'.$_POST['Title'].'", '.$this->System->User->Id.', NOW(), 1, "'.$_POST['Description'].'")');
    114                                         $ExportId = $this->System->Database->insert_id;
    115                                         $Output = ShowMessage(T('New export created.<br />Direct link to export').': <a href="?Action=View&amp;ExportId='.$ExportId.'">'.T('here').'</a>');
    116                                         $this->System->ModuleManager->Modules['Log']->WriteLog(T('New export created').' <a href="'.$this->System->Link('/export/?Action=View&amp;ExportId='.$ExportId).'">'.$ExportId.'</a>.', LOG_TYPE_EXPORT);
    117                                         $_GET['Filter'] = 'my';
    118                                         $this->ExportList();
    119                                 } else $Output = ShowMessage(T('You can\'t create another export. Max for one user is').' '.$this->System->Config['MaxExportPerUser'].'.', MESSAGE_CRITICAL);
    120                         } else $Output = ShowMessage(T('Missing data in form.'), MESSAGE_CRITICAL);
    121                 } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
    122                 return($Output);
    123         }
    124        
    125         function ExportDelete()
    126         {
    127                 if($this->System->User->Licence(LICENCE_USER))
    128                 {
    129                         $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE (`Id`='.($_GET['ExportId'] * 1).') AND (`User`='.$this->System->User->Id.')');
    130                         if($DbResult->num_rows > 0)
    131                         {
    132                                 $this->System->Database->query('DELETE FROM `ExportGroup` WHERE `Export`='.$_GET['ExportId']);
    133                                 $this->System->Database->query('DELETE FROM `ExportGroupItem` WHERE `Export`='.$_GET['ExportId']);
    134                                 $this->System->Database->query('DELETE FROM `ExportLanguage` WHERE `Export`='.$_GET['ExportId']);
    135                                 $this->System->Database->query('DELETE FROM `ExportTask` WHERE `Export`='.$_GET['ExportId']);
    136                                 $this->System->Database->query('DELETE FROM `ExportUser` WHERE `Export`='.$_GET['ExportId']);
    137                                 $this->System->Database->query('DELETE FROM `Export` WHERE `Id`='.$_GET['ExportId']);
    138                                 DeleteDirectory('../tmp/Export/'.$_GET['ExportId'].'/');
    139                                 $Output = ShowMessage(T('Export deleted.'));
    140                                 $_GET['Filter'] = 'my';
    141                                 $this->System->ModuleManager->Modules['Log']->WriteLog('Smazán export '.$_GET['ExportId'], LOG_TYPE_EXPORT);
    142                                 $Output .= $this->ExportList();
    143                         } else $Output = ShowMessage(T('Export not found.'), MESSAGE_CRITICAL);
    144                 } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
    145                 return($Output);
    146         }
    147        
    148         function SaveAllUsers()
    149         {
    150         global $System;
    151             $Export = new Export($System);
     64    while($Export = $DbResult->fetch_assoc())
     65    {
     66      $Action = '<a href="?Action=View&amp;ExportId='.$Export['Id'].'&amp;Tab=0">'.T('View').'</a> '.
     67        '<a href="?Action=View&amp;ExportId='.$Export['Id'].'&amp;Tab=7">'.T('Make export').'</a>';
     68      if($Export['User'] == $this->System->User->Id) $Action .= ' <a href="?Action=Delete&amp;ExportId='.$Export['Id'].'" onclick="return confirmAction(\''.T('Realy delete item?').'\');">'.T('Delete').'</a>';
     69      if($this->System->User->Id != null) $Action .= ' <a href="?Action=Clone&amp;ExportId='.$Export['Id'].'" onclick="return confirmAction(\''.T('Realy clone item?').'\');">'.T('Clone').'</a>';
     70      $Output .= '<tr><td>'.HumanDate($Export['TimeCreate']).'</td>'.
     71          '<td><a href="'.$this->System->Link('/user.php?user='.$Export['User']).'">'.$Export['UserName'].'</a></td>'.
     72          '<td>'.$Export['Title'].'</td>'.
     73          '<td>'.$Export['OutputType'].'</td>'.
     74          '<td><a href="'.$this->System->Link('/client-version/?action=item&amp;id='.$Export['ClientVersionId']).'">'.$Export['ClientVersion'].'</a></td>'.
     75          '<td>'.$Export['UsedCount'].'</td>'.
     76          '<td>'.$Action.'</td></tr>';
     77    }
     78    $Output .= '</table>'.
     79        $PageList['Output'];
     80
     81    return($Output);
     82  }
     83
     84  function ExportCreate()
     85  {
     86    if($this->System->User->Licence(LICENCE_USER))
     87    {
     88      $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM `Export` WHERE `User`='.$this->System->User->Id);
     89      $DbRow = $DbResult->fetch_row();
     90      if($DbRow[0] < $this->System->Config['MaxExportPerUser'])
     91      {
     92        $Output = '<form action="?Action=CreateFinish" method="post">'.
     93            '<fieldset><legend>'.T('Creation of new export').'</legend>'.
     94            '<table><tr><td>'.T('Identification').':</td><td><input type="text" name="Title" /></td></tr>'.
     95            '<tr><td>'.T('Description').':</td><td><textarea name="Description" cols="54" rows="10"></textarea></td></tr>'.
     96            '<tr><td colspan="2"><input type="submit" value="'.T('Create').'" /></td></tr>'.
     97            '</table></fieldset></form>';
     98      } else $Output = ShowMessage(T('You can\'t create another export. Max for one user is').$this->System->Config['MaxExportPerUser'].'.', MESSAGE_CRITICAL);
     99    } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
     100    return($Output);
     101  }
     102
     103  function ExportCreateFinish()
     104  {
     105    if($this->System->User->Licence(LICENCE_USER))
     106    {
     107      if(array_key_exists('Title', $_POST) and array_key_exists('Description', $_POST))
     108      {
     109        $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM `Export` WHERE `User`='.$this->System->User->Id);
     110        $DbRow = $DbResult->fetch_row();
     111        if($DbRow[0] < $this->System->Config['MaxExportPerUser'])
     112        {
     113          $this->System->Database->query('INSERT INTO `Export` (`Title`, `User`, `TimeCreate`, `WithDiacritic`, `Description`) VALUES ("'.$_POST['Title'].'", '.$this->System->User->Id.', NOW(), 1, "'.$_POST['Description'].'")');
     114          $ExportId = $this->System->Database->insert_id;
     115          $Output = ShowMessage(T('New export created.<br />Direct link to export').': <a href="?Action=View&amp;ExportId='.$ExportId.'">'.T('here').'</a>');
     116          $this->System->ModuleManager->Modules['Log']->WriteLog(T('New export created').' <a href="'.$this->System->Link('/export/?Action=View&amp;ExportId='.$ExportId).'">'.$ExportId.'</a>.', LOG_TYPE_EXPORT);
     117          $_GET['Filter'] = 'my';
     118          $this->ExportList();
     119        } else $Output = ShowMessage(T('You can\'t create another export. Max for one user is').' '.$this->System->Config['MaxExportPerUser'].'.', MESSAGE_CRITICAL);
     120      } else $Output = ShowMessage(T('Missing data in form.'), MESSAGE_CRITICAL);
     121    } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
     122    return($Output);
     123  }
     124
     125  function ExportDelete()
     126  {
     127    if($this->System->User->Licence(LICENCE_USER))
     128    {
     129      $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE (`Id`='.($_GET['ExportId'] * 1).') AND (`User`='.$this->System->User->Id.')');
     130      if($DbResult->num_rows > 0)
     131      {
     132        $this->System->Database->query('DELETE FROM `ExportGroup` WHERE `Export`='.$_GET['ExportId']);
     133        $this->System->Database->query('DELETE FROM `ExportGroupItem` WHERE `Export`='.$_GET['ExportId']);
     134        $this->System->Database->query('DELETE FROM `ExportLanguage` WHERE `Export`='.$_GET['ExportId']);
     135        $this->System->Database->query('DELETE FROM `ExportTask` WHERE `Export`='.$_GET['ExportId']);
     136        $this->System->Database->query('DELETE FROM `ExportUser` WHERE `Export`='.$_GET['ExportId']);
     137        $this->System->Database->query('DELETE FROM `Export` WHERE `Id`='.$_GET['ExportId']);
     138        DeleteDirectory('../tmp/Export/'.$_GET['ExportId'].'/');
     139        $Output = ShowMessage(T('Export deleted.'));
     140        $_GET['Filter'] = 'my';
     141        $this->System->ModuleManager->Modules['Log']->WriteLog('Smazán export '.$_GET['ExportId'], LOG_TYPE_EXPORT);
     142        $Output .= $this->ExportList();
     143      } else $Output = ShowMessage(T('Export not found.'), MESSAGE_CRITICAL);
     144    } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
     145    return($Output);
     146  }
     147
     148  function SaveAllUsers()
     149  {
     150  global $System;
     151      $Export = new Export($System);
    152152      $Export->Id = $_GET['ExportId'];
    153153      $Export->SaveAllUsers();
    154      
    155   }
    156        
    157         function ExportViewTranslators()
    158         {
    159                 global $TranslationTree;
    160        
    161                 $Output = '';
    162                 $DisabledInput = array(false => ' disabled="disabled"', true => '');
    163                 $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
    164                 $Export = $DbResult->fetch_assoc();
    165                 if($this->System->User->Licence(LICENCE_USER) and ($this->System->User->Id == $Export['User'])) $Editable = true;
    166                 else $Editable = false;
    167        
    168                 if(array_key_exists('Operation', $_POST))
    169                 {
    170                         if($_POST['Operation'] == 'Save')
    171                         {
    172                                 //print_r($_POST);
    173                                 // Update user selection page
    174                                 foreach($_POST as $Index => $Value)
    175                                 {
    176                                         if(substr($Index, 0, 3) == 'seq')
    177                                         {
    178                                                 $UserId = substr($Index, 3) * 1;
    179                                                 if(array_key_exists('sel'.$UserId, $_POST)) $Selected = true;
    180                                                 else $Selected = false;
    181                                                 $Condition = ' WHERE `Export`='.$_GET['ExportId'].' AND `User`='.$UserId;
    182                                                 $DbResult = $this->System->Database->query('SELECT * FROM `ExportUser` '.$Condition);
    183                                                 if($DbResult->num_rows > 0)
    184                                                 {
    185                                                         if(!$Selected) $this->System->Database->query('DELETE FROM `ExportUser` '.$Condition);
    186                                                         else $this->System->Database->query('UPDATE `ExportUser` SET `Sequence`='.$Value.$Condition);
    187                                                 } else
    188                                                 {
    189                                                         if($Selected) $this->System->Database->query('INSERT INTO `ExportUser` (`Export`, `User`, `Sequence`) VALUES ('.$_GET['ExportId'].', '.$UserId.', '.$Value.')');
    190                                                 }
    191                                         }
    192                                 }
    193        
    194                           if (array_key_exists('AllUsers', $_POST)) {
     154
     155  }
     156
     157  function ExportViewTranslators()
     158  {
     159    global $TranslationTree;
     160
     161    $Output = '';
     162    $DisabledInput = array(false => ' disabled="disabled"', true => '');
     163    $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
     164    $Export = $DbResult->fetch_assoc();
     165    if($this->System->User->Licence(LICENCE_USER) and ($this->System->User->Id == $Export['User'])) $Editable = true;
     166    else $Editable = false;
     167
     168    if(array_key_exists('Operation', $_POST))
     169    {
     170      if($_POST['Operation'] == 'Save')
     171      {
     172        //print_r($_POST);
     173        // Update user selection page
     174        foreach($_POST as $Index => $Value)
     175        {
     176          if(substr($Index, 0, 3) == 'seq')
     177          {
     178            $UserId = substr($Index, 3) * 1;
     179            if(array_key_exists('sel'.$UserId, $_POST)) $Selected = true;
     180            else $Selected = false;
     181            $Condition = ' WHERE `Export`='.$_GET['ExportId'].' AND `User`='.$UserId;
     182            $DbResult = $this->System->Database->query('SELECT * FROM `ExportUser` '.$Condition);
     183            if($DbResult->num_rows > 0)
     184            {
     185              if(!$Selected) $this->System->Database->query('DELETE FROM `ExportUser` '.$Condition);
     186              else $this->System->Database->query('UPDATE `ExportUser` SET `Sequence`='.$Value.$Condition);
     187            } else
     188            {
     189              if($Selected) $this->System->Database->query('INSERT INTO `ExportUser` (`Export`, `User`, `Sequence`) VALUES ('.$_GET['ExportId'].', '.$UserId.', '.$Value.')');
     190            }
     191          }
     192        }
     193
     194        if (array_key_exists('AllUsers', $_POST)) {
    195195            //add allusers to export
    196                                                 $this->System->Database->query('UPDATE `Export` SET `AllUsers`=1 WHERE `Id`='.$_GET['ExportId']);
    197            
    198                   //update export stat
     196            $this->System->Database->query('UPDATE `Export` SET `AllUsers`=1 WHERE `Id`='.$_GET['ExportId']);
     197
     198            //update export stat
    199199            $Export['AllUsers'] = 1;
    200200            $this->SaveAllUsers();
    201201          } else {
    202                   //update export stat
     202            //update export stat
    203203            $Export['AllUsers'] = 0;
    204                                                 $this->System->Database->query('UPDATE `Export` SET `AllUsers`=0 WHERE `Id`='.$_GET['ExportId']);
     204            $this->System->Database->query('UPDATE `Export` SET `AllUsers`=0 WHERE `Id`='.$_GET['ExportId']);
    205205          }
    206206
    207                                 // Recalculate sequence number
    208                                 $this->System->Database->query('SET @I = 0');
    209                                 $this->System->Database->query('UPDATE `ExportUser` SET `Sequence` = (@I := @I + 1) WHERE `Export`='.$_GET['ExportId'].' ORDER BY `Sequence`;');
    210                                 $Output .= ShowMessage(T('Select saved.'));
    211                         }
    212                 }
    213        
    214                 $TableColumns = array(
    215                                 array('Name' => 'Name', 'Title' => T('Name')),
    216                                 array('Name' => 'TranslatedCount', 'Title' => T('Translated count')),
    217                                 array('Name' => 'XP', 'Title' => T('Level')),
    218                                 array('Name' => 'XP', 'Title' => T('Experience')),
    219                                 array('Name' => '', 'Title' => T('Select')),
    220                                 array('Name' => 'Sequence2', 'Title' => T('Order')),
    221                 );
    222                 $Order = GetOrderTableHeader($TableColumns, 'TranslatedCount', 1);
    223                 if($Order['Column'] != 'Sequence2') $InitialOrder = ', '.substr($Order['SQL'], 10);
    224                 else $InitialOrder = '';
    225        
    226                 $Query = 'SELECT (@I := @I + 1) AS `Sequence2`, `TT`.* FROM (SELECT `ExportUser`.`Sequence`, `T`.`ID`, `T`.`TranslatedCount`, `T`.`Name`, `T`.`XP` FROM (SELECT `User`.`ID`, `User`.`Name`, `User`.`XP`, `TranslatedCount` FROM `User`) AS T';
    227                 $Query .=' LEFT JOIN `ExportUser` ON `ExportUser`.`Export` = '.$_GET['ExportId'].' AND `ExportUser`.`User`=`T`.`ID`';
    228                 $Query .=' WHERE `T`.`TranslatedCount` > 0 ORDER BY COALESCE(`ExportUser`.`Sequence`, 100000000)'.$InitialOrder.') AS `TT`';
    229        
    230                 $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM ('.$Query.') AS `X`');
    231                 $DbRow = $DbResult->fetch_row();
    232                 $PageList = GetPageList($DbRow[0]);
    233        
    234                 $Output .= '<form name="Translators" action="?Action=View&amp;ExportId='.$_GET['ExportId'].'" method="post">'.
    235                                 '<h3>'.T('Translators').'</h3>';
    236                 if($Editable)
    237                 {
    238                         $Output .= '<input type="submit" value="'.T('Save').'" '.$DisabledInput[$Editable].'/>'.
    239                                         '<input type="hidden" name="Operation" value="Save"/><br />'.
    240                                         ' <span onclick="CheckAllCheckbox();">'.CheckBox('CheckAll', False, 'CheckAll').' '.T('Select all on page').'</span> <br />'.
    241                                         ' <span>'.CheckBox('AllUsers', $Export['AllUsers']).' '.T('Export allways from all users').'</span> '.
    242                                         '<br />'.
    243                                         T('Select users from list which you want to export from. And edit their order.').'<br />'.
    244                                         T('Order is done by numeric value which is can be edit to desirable order. Lines with same number will be renumbered in ascending order.');
    245                 }
    246        
    247                 $Output .= $PageList['Output'].
    248                 '<table class="BaseTable">'.
    249                 $Order['Output'];
    250        
    251                 $Query = 'SELECT * FROM ('.$Query.') AS `TX` '.$Order['SQL'].$PageList['SQLLimit'];
    252                 $this->System->Database->query('SET @I = 0');
    253                 $DbResult = $this->System->Database->query($Query);
    254                 while($UserLine = $DbResult->fetch_assoc())
    255                 {
    256                         $XP = GetLevelMinMax($UserLine['XP']);
    257                         $Checked = $UserLine['Sequence'] != '';
    258                         $Selection = CheckBox('sel'.$UserLine['ID'], $Checked, '', 'CheckBox', ((!$Editable) or ($Export['AllUsers'])));
    259                         $Sequence = '<input type="text" name="seq'.$UserLine['ID'].'" style="text-align: center; width: 40px;" value="'.$UserLine['Sequence2'].'"'.$DisabledInput[$Editable].'/>';
    260                         $Output .= '<tr>'.
    261                                         '<td><a href="'.$this->System->Link('/TranslationList.php?user='.$UserLine['ID'].'&amp;state=2&amp;group=0').'" title="Zobrazit všechny jeho přeložené texty">'.$UserLine['Name'].'</a></td>'.
    262                                         '<td>'.$UserLine['TranslatedCount'].'</td>'.
    263                                         '<td>'.$XP['Level'].'</td>'.
    264                                         '<td>'.ProgressBar(150, round($XP['XP'] / $XP['MaxXP'] * 100, 2), $XP['XP'].' / '.$XP['MaxXP']).'</td>'.
    265                                         '<td>'.$Selection.'</td><td>'.$Sequence.'</td></tr>';
    266                 }
    267                 $Output .= '</table>'.
    268                                 '</form>'.
    269                                 $PageList['Output'];
    270                 return($Output);
    271         }
    272        
    273         function ExportViewGeneral()
    274         {
    275                 $DisabledInput = array(false => ' disabled="disabled"', true => '');
    276                 $DisabledTextArea = array(false => ' readonly="yes"', true => '');
    277                 $Output = '<h3>Obecná nastavení</h3>';
    278                 $DbRows = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
    279                 $Export = $DbRows->fetch_assoc();
    280                 if($this->System->User->Licence(LICENCE_USER) and ($this->System->User->Id == $Export['User'])) $Editable = true;
    281                 else $Editable = false;
    282        
    283                 if(array_key_exists('Operation', $_POST))
    284                         if($_POST['Operation'] == 'Save')  if($Editable and array_key_exists('Title', $_POST) and array_key_exists('Description', $_POST))
    285                         {
    286                                 if(array_key_exists('WithDiacritic', $_POST)) $WithDiacritic = 1;
    287                                 else $WithDiacritic = 0;
    288                                 if (array_key_exists('Featured', $_POST)) $Export['Featured'] = 1;
    289                                 $this->System->Database->query('UPDATE `Export` SET `Title`="'.$_POST['Title'].'", `Featured`='.$Export['Featured'].', `Description`="'.$_POST['Description'].'", `WithDiacritic`='.$WithDiacritic.' WHERE Id='.$Export['Id']);
    290                                 $Export['Title'] = $_POST['Title'];
    291                                 $Export['Description'] = $_POST['Description'];
    292                                 $Export['WithDiacritic'] = $WithDiacritic;
    293                                 $Output .= ShowMessage('Nastavení uloženo.');
    294                         }
    295        
    296                         if($Export['WithDiacritic'] == 1) $WithDiacritic = ' checked="checked"';
    297                         else $WithDiacritic = '';
    298                         $Output .= '<form action="?Action=View&amp;Tab=0&amp;ExportId='.$Export['Id'].'" method="post">'.
    299                                         '<table>';
    300                         if($this->System->User->Id != null)
    301                         {
    302                                 $Output .= '<input type="hidden" name="Operation" value="Save"/>'.
    303                                                 '<tr><td colspan="2">';
     207        // Recalculate sequence number
     208        $this->System->Database->query('SET @I = 0');
     209        $this->System->Database->query('UPDATE `ExportUser` SET `Sequence` = (@I := @I + 1) WHERE `Export`='.$_GET['ExportId'].' ORDER BY `Sequence`;');
     210        $Output .= ShowMessage(T('Select saved.'));
     211      }
     212    }
     213
     214    $TableColumns = array(
     215        array('Name' => 'Name', 'Title' => T('Name')),
     216        array('Name' => 'TranslatedCount', 'Title' => T('Translated count')),
     217        array('Name' => 'XP', 'Title' => T('Level')),
     218        array('Name' => 'XP', 'Title' => T('Experience')),
     219        array('Name' => '', 'Title' => T('Select')),
     220        array('Name' => 'Sequence2', 'Title' => T('Order')),
     221    );
     222    $Order = GetOrderTableHeader($TableColumns, 'TranslatedCount', 1);
     223    if($Order['Column'] != 'Sequence2') $InitialOrder = ', '.substr($Order['SQL'], 10);
     224    else $InitialOrder = '';
     225
     226    $Query = 'SELECT (@I := @I + 1) AS `Sequence2`, `TT`.* FROM (SELECT `ExportUser`.`Sequence`, `T`.`ID`, `T`.`TranslatedCount`, `T`.`Name`, `T`.`XP` FROM (SELECT `User`.`ID`, `User`.`Name`, `User`.`XP`, `TranslatedCount` FROM `User`) AS T';
     227    $Query .=' LEFT JOIN `ExportUser` ON `ExportUser`.`Export` = '.$_GET['ExportId'].' AND `ExportUser`.`User`=`T`.`ID`';
     228    $Query .=' WHERE `T`.`TranslatedCount` > 0 ORDER BY COALESCE(`ExportUser`.`Sequence`, 100000000)'.$InitialOrder.') AS `TT`';
     229
     230    $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM ('.$Query.') AS `X`');
     231    $DbRow = $DbResult->fetch_row();
     232    $PageList = GetPageList($DbRow[0]);
     233
     234    $Output .= '<form name="Translators" action="?Action=View&amp;ExportId='.$_GET['ExportId'].'" method="post">'.
     235        '<h3>'.T('Translators').'</h3>';
     236    if($Editable)
     237    {
     238      $Output .= '<input type="submit" value="'.T('Save').'" '.$DisabledInput[$Editable].'/>'.
     239          '<input type="hidden" name="Operation" value="Save"/><br />'.
     240          ' <span onclick="CheckAllCheckbox();">'.CheckBox('CheckAll', False, 'CheckAll').' '.T('Select all on page').'</span> <br />'.
     241          ' <span>'.CheckBox('AllUsers', $Export['AllUsers']).' '.T('Export allways from all users').'</span> '.
     242          '<br />'.
     243          T('Select users from list which you want to export from. And edit their order.').'<br />'.
     244          T('Order is done by numeric value which is can be edit to desirable order. Lines with same number will be renumbered in ascending order.');
     245    }
     246
     247    $Output .= $PageList['Output'].
     248    '<table class="BaseTable">'.
     249    $Order['Output'];
     250
     251    $Query = 'SELECT * FROM ('.$Query.') AS `TX` '.$Order['SQL'].$PageList['SQLLimit'];
     252    $this->System->Database->query('SET @I = 0');
     253    $DbResult = $this->System->Database->query($Query);
     254    while($UserLine = $DbResult->fetch_assoc())
     255    {
     256      $XP = GetLevelMinMax($UserLine['XP']);
     257      $Checked = $UserLine['Sequence'] != '';
     258      $Selection = CheckBox('sel'.$UserLine['ID'], $Checked, '', 'CheckBox', ((!$Editable) or ($Export['AllUsers'])));
     259      $Sequence = '<input type="text" name="seq'.$UserLine['ID'].'" style="text-align: center; width: 40px;" value="'.$UserLine['Sequence2'].'"'.$DisabledInput[$Editable].'/>';
     260      $Output .= '<tr>'.
     261          '<td><a href="'.$this->System->Link('/TranslationList.php?user='.$UserLine['ID'].'&amp;state=2&amp;group=0').'" title="Zobrazit všechny jeho přeložené texty">'.$UserLine['Name'].'</a></td>'.
     262          '<td>'.$UserLine['TranslatedCount'].'</td>'.
     263          '<td>'.$XP['Level'].'</td>'.
     264          '<td>'.ProgressBar(150, round($XP['XP'] / $XP['MaxXP'] * 100, 2), $XP['XP'].' / '.$XP['MaxXP']).'</td>'.
     265          '<td>'.$Selection.'</td><td>'.$Sequence.'</td></tr>';
     266    }
     267    $Output .= '</table>'.
     268        '</form>'.
     269        $PageList['Output'];
     270    return($Output);
     271  }
     272
     273  function ExportViewGeneral()
     274  {
     275    $DisabledInput = array(false => ' disabled="disabled"', true => '');
     276    $DisabledTextArea = array(false => ' readonly="yes"', true => '');
     277    $Output = '<h3>Obecná nastavení</h3>';
     278    $DbRows = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
     279    $Export = $DbRows->fetch_assoc();
     280    if($this->System->User->Licence(LICENCE_USER) and ($this->System->User->Id == $Export['User'])) $Editable = true;
     281    else $Editable = false;
     282
     283    if(array_key_exists('Operation', $_POST))
     284      if($_POST['Operation'] == 'Save')  if($Editable and array_key_exists('Title', $_POST) and array_key_exists('Description', $_POST))
     285      {
     286        if(array_key_exists('WithDiacritic', $_POST)) $WithDiacritic = 1;
     287        else $WithDiacritic = 0;
     288        if (array_key_exists('Featured', $_POST)) $Export['Featured'] = 1;
     289        $this->System->Database->query('UPDATE `Export` SET `Title`="'.$_POST['Title'].'", `Featured`='.$Export['Featured'].', `Description`="'.$_POST['Description'].'", `WithDiacritic`='.$WithDiacritic.' WHERE Id='.$Export['Id']);
     290        $Export['Title'] = $_POST['Title'];
     291        $Export['Description'] = $_POST['Description'];
     292        $Export['WithDiacritic'] = $WithDiacritic;
     293        $Output .= ShowMessage('Nastavení uloženo.');
     294      }
     295
     296      if($Export['WithDiacritic'] == 1) $WithDiacritic = ' checked="checked"';
     297      else $WithDiacritic = '';
     298      $Output .= '<form action="?Action=View&amp;Tab=0&amp;ExportId='.$Export['Id'].'" method="post">'.
     299          '<table>';
     300      if($this->System->User->Id != null)
     301      {
     302        $Output .= '<input type="hidden" name="Operation" value="Save"/>'.
     303            '<tr><td colspan="2">';
    304304        if($Editable) $Output .= ' <input type="submit" value="Uložit" '.$DisabledInput[$Editable].'/>';
    305         $Output .= ' <a href="?Action=Clone&amp;ExportId='.$Export['Id'].'" onclick="return confirmAction(\''.T('Realy clone item?').'\');">'.T('Clone').'</a> ';
     305        $Output .= ' <a href="?Action=Clone&amp;ExportId='.$Export['Id'].'" onclick="return confirmAction(\''.T('Realy clone item?').'\');">'.T('Clone').'</a> ';
    306306        if($this->System->User->Licence(LICENCE_ADMIN))
    307307          $Output .= CheckBox('Featured', $Export['Featured'], '', 'CheckBox', !$Editable). ' '.T('Recommended').' ';
    308308        $Output .= '</td></tr>';
    309                         }
    310                         $Output .= '<tr><td>'.T('Identification').':</td><td><input type="text" style="width: 400px" name="Title" value="'.$Export['Title'].'"'.$DisabledInput[$Editable].'/></td></tr>'.
    311                                         '<tr><td>Popis:</td><td><textarea name="Description" cols="54" rows="10"'.$DisabledTextArea[$Editable].'>'.$Export['Description'].'</textarea></td></tr>'.
    312                                         '<tr><td>'.T('With diacritics').'</td><td><input type="checkbox" name="WithDiacritic" '.$WithDiacritic.''.$DisabledInput[$Editable].'/></td></tr>'.
    313                                         '</table></form>';
    314                         return($Output);
    315         }
    316        
    317         function ExportViewLanguages()
    318         {
    319                 global $TranslationTree;
    320        
    321                 $Output = '';
    322                 $DisabledInput = array(false => ' disabled="disabled"', true => '');
    323                 $DbRows = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
    324                 $Export = $DbRows->fetch_assoc();
    325                 if($this->System->User->Licence(LICENCE_USER) and ($this->System->User->Id == $Export['User'])) $Editable = true;
    326                 else $Editable = false;
    327        
    328                 if(array_key_exists('Operation', $_POST))
    329                 {
    330                         if($_POST['Operation'] == 'Save')
    331                         {
    332                                 //print_r($_POST);
    333                                 // Update user selection page
    334                                 foreach($_POST as $Index => $Value)
    335                                 {
    336                                         if(substr($Index, 0, 3) == 'seq')
    337                                         {
    338                                                 $LanguageId = substr($Index, 3) * 1;
    339                                                 if(array_key_exists('sel'.$LanguageId, $_POST)) $Selected = true;
    340                                                 else $Selected = false;
    341                                                 $Condition = ' WHERE Export='.$_GET['ExportId'].' AND `Language`='.$LanguageId;
    342                                                 $DbResult = $this->System->Database->query('SELECT * FROM `ExportLanguage` '.$Condition);
    343                                                 if($DbResult->num_rows > 0)
    344                                                 {
    345                                                         if(!$Selected) $this->System->Database->query('DELETE FROM `ExportLanguage` '.$Condition);
    346                                                         else $this->System->Database->query('UPDATE `ExportLanguage` SET `Sequence`='.$Value.$Condition);
    347                                                 } else
    348                                                 {
    349                                                         if($Selected) $this->System->Database->query('INSERT INTO `ExportLanguage` (`Export`, `Language`, `Sequence`) VALUES ('.$_GET['ExportId'].', '.$LanguageId.', '.$Value.')');
    350                                                 }
    351                                         }
    352                                 }
    353        
    354                                 // Recalculate sequence number
    355                                 $this->System->Database->query('SET @I = 0');
    356                                 $this->System->Database->query('UPDATE `ExportLanguage` SET `Sequence` = (@I := @I + 1) WHERE `Export`='.$_GET['ExportId'].' ORDER BY `Sequence`;');
    357                                 $Output .= ShowMessage('Výběr uložen.');
    358                         }
    359                 }
    360        
    361                 $Query = 'SELECT (@I := @I + 1) AS `Sequence2`, `Sequence`, `Language`.`Id`, `Name` FROM `Language`';
    362                 $Query .=' LEFT JOIN `ExportLanguage` ON `ExportLanguage`.`Export` = '.$_GET['ExportId'].' AND `ExportLanguage`.`Language`=`Language`.`Id`';
    363                 $Query .=' WHERE `Language`.`Enabled` = 1 ORDER BY COALESCE(`Sequence`, 100)';
    364        
    365                 $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM ('.$Query.') AS X');
    366                 $DbRow = $DbResult->fetch_row();
    367                 $PageList = GetPageList($DbRow[0]);
    368        
    369                 $TableColumns = array(
    370                                 array('Name' => 'Name', 'Title' => T('Name')),
    371                                 array('Name' => '', 'Title' => T('Select')),
    372                                 array('Name' => 'Sequence2', 'Title' => T('Order')),
    373                 );
    374                 $Order = GetOrderTableHeader($TableColumns, 'Sequence2');
    375                 $Output .= '<form action="?Action=View&amp;ExportId='.$_GET['ExportId'].'" method="post">'.
    376                                 '<h3>'.T('Languages').'</h3>';
    377                 if($Editable)
    378                 {
    379                         $Output .= '<input type="submit" value="'.T('Save').'" '.$DisabledInput[$Editable].'/>'.
    380                                         '<input type="hidden" name="Operation" value="Save"/>'.
    381                                         '<br />'.
    382                                         T('Select languades from list witch you want to export from. And edit theirs order.').'<br />'.
    383                                         T('Order is done by numeric value which is can be edit to desirable order. Lines with same number will be renumbered in ascending order.');
    384                 }
    385        
    386                 $Output .= $PageList['Output'].
    387                 '<table class="BaseTable">'.
    388                 $Order['Output'];
    389        
    390                 $Query = 'SELECT * FROM ('.$Query.') AS TX '.$Order['SQL'].$PageList['SQLLimit'];
    391                 $this->System->Database->query('SET @I = 0');
    392                 $DbResult = $this->System->Database->query($Query);
    393                 while($Langugage = $DbResult->fetch_assoc())
    394                 {
    395                         $Checked = $Langugage['Sequence'] != '';
    396                         $Selection = CheckBox('sel'.$Langugage['Id'], $Checked, '', 'CheckBox', !$Editable);
    397                         $Sequence = '<input type="text" name="seq'.$Langugage['Id'].'" style="text-align: center; width: 40px;" value="'.$Langugage['Sequence2'].'"'.$DisabledInput[$Editable].'/>';
    398                         $Output .= '<tr>
    399                         <td>'.$Langugage['Name'].'</td>
    400                         <td>'.$Selection.'</td><td>'.$Sequence.'</td></tr>';
    401                 }
    402                 $Output .= '</table>'.
    403                                 '</form>'.
    404                                 $PageList['Output'];
    405                 return($Output);
    406         }
    407        
    408         function ExportViewGroups()
    409         {
    410                 global $TranslationTree;
    411        
    412                 $Output = '';
    413                 $DisabledInput = array(false => ' disabled="disabled"', true => '');
    414                 $DbRows = $this->System->Database->query('SELECT * FROM Export WHERE Id='.$_GET['ExportId']);
    415                 $Export = $DbRows->fetch_assoc();
    416                 if($this->System->User->Licence(LICENCE_USER) and ($this->System->User->Id == $Export['User'])) $Editable = true;
    417                 else $Editable = false;
    418        
    419                 if(array_key_exists('Operation', $_POST))
    420                 {
    421                         if($_POST['Operation'] == 'Save')
    422                         {
    423                                 //print_r($_POST);
    424                                 // Update user selection page
    425                                 foreach($_POST as $Index => $Value)
    426                                 {
    427                                         if(substr($Index, 0, 3) == 'seq')
    428                                         {
    429                                                 $GroupId = substr($Index, 3) * 1;
    430                                                 if(array_key_exists('sel'.$GroupId, $_POST)) $Selected = true;
    431                                                 else $Selected = false;
    432                                                 $Condition = ' WHERE `Export`='.$_GET['ExportId'].' AND `Group`='.$GroupId;
    433                                                 $DbResult = $this->System->Database->query('SELECT * FROM `ExportGroup` '.$Condition);
    434                                                 if($DbResult->num_rows > 0)
    435                                                 {
    436                                                         if(!$Selected) $this->System->Database->query('DELETE FROM `ExportGroup` '.$Condition);
    437                                                 } else
    438                                                 {
    439                                                         if($Selected) $this->System->Database->query('INSERT INTO `ExportGroup` (`Export`, `Group`) VALUES ('.$_GET['ExportId'].', '.$GroupId.')');
    440                                                 }
    441                                         }
    442                                 }
    443                                 $Output .= ShowMessage(T('Select saved.'));
    444                         }
    445           //items
    446       foreach($TranslationTree as $Group) 
    447                 {
    448                 //  echo $Group['Id'].' ';
     309      }
     310      $Output .= '<tr><td>'.T('Identification').':</td><td><input type="text" style="width: 400px" name="Title" value="'.$Export['Title'].'"'.$DisabledInput[$Editable].'/></td></tr>'.
     311          '<tr><td>Popis:</td><td><textarea name="Description" cols="54" rows="10"'.$DisabledTextArea[$Editable].'>'.$Export['Description'].'</textarea></td></tr>'.
     312          '<tr><td>'.T('With diacritics').'</td><td><input type="checkbox" name="WithDiacritic" '.$WithDiacritic.''.$DisabledInput[$Editable].'/></td></tr>'.
     313          '</table></form>';
     314      return($Output);
     315  }
     316
     317  function ExportViewLanguages()
     318  {
     319    global $TranslationTree;
     320
     321    $Output = '';
     322    $DisabledInput = array(false => ' disabled="disabled"', true => '');
     323    $DbRows = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
     324    $Export = $DbRows->fetch_assoc();
     325    if($this->System->User->Licence(LICENCE_USER) and ($this->System->User->Id == $Export['User'])) $Editable = true;
     326    else $Editable = false;
     327
     328    if(array_key_exists('Operation', $_POST))
     329    {
     330      if($_POST['Operation'] == 'Save')
     331      {
     332        //print_r($_POST);
     333        // Update user selection page
     334        foreach($_POST as $Index => $Value)
     335        {
     336          if(substr($Index, 0, 3) == 'seq')
     337          {
     338            $LanguageId = substr($Index, 3) * 1;
     339            if(array_key_exists('sel'.$LanguageId, $_POST)) $Selected = true;
     340            else $Selected = false;
     341            $Condition = ' WHERE Export='.$_GET['ExportId'].' AND `Language`='.$LanguageId;
     342            $DbResult = $this->System->Database->query('SELECT * FROM `ExportLanguage` '.$Condition);
     343            if($DbResult->num_rows > 0)
     344            {
     345              if(!$Selected) $this->System->Database->query('DELETE FROM `ExportLanguage` '.$Condition);
     346              else $this->System->Database->query('UPDATE `ExportLanguage` SET `Sequence`='.$Value.$Condition);
     347            } else
     348            {
     349              if($Selected) $this->System->Database->query('INSERT INTO `ExportLanguage` (`Export`, `Language`, `Sequence`) VALUES ('.$_GET['ExportId'].', '.$LanguageId.', '.$Value.')');
     350            }
     351          }
     352        }
     353
     354        // Recalculate sequence number
     355        $this->System->Database->query('SET @I = 0');
     356        $this->System->Database->query('UPDATE `ExportLanguage` SET `Sequence` = (@I := @I + 1) WHERE `Export`='.$_GET['ExportId'].' ORDER BY `Sequence`;');
     357        $Output .= ShowMessage('Výběr uložen.');
     358      }
     359    }
     360
     361    $Query = 'SELECT (@I := @I + 1) AS `Sequence2`, `Sequence`, `Language`.`Id`, `Name` FROM `Language`';
     362    $Query .=' LEFT JOIN `ExportLanguage` ON `ExportLanguage`.`Export` = '.$_GET['ExportId'].' AND `ExportLanguage`.`Language`=`Language`.`Id`';
     363    $Query .=' WHERE `Language`.`Enabled` = 1 ORDER BY COALESCE(`Sequence`, 100)';
     364
     365    $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM ('.$Query.') AS X');
     366    $DbRow = $DbResult->fetch_row();
     367    $PageList = GetPageList($DbRow[0]);
     368
     369    $TableColumns = array(
     370        array('Name' => 'Name', 'Title' => T('Name')),
     371        array('Name' => '', 'Title' => T('Select')),
     372        array('Name' => 'Sequence2', 'Title' => T('Order')),
     373    );
     374    $Order = GetOrderTableHeader($TableColumns, 'Sequence2');
     375    $Output .= '<form action="?Action=View&amp;ExportId='.$_GET['ExportId'].'" method="post">'.
     376        '<h3>'.T('Languages').'</h3>';
     377    if($Editable)
     378    {
     379      $Output .= '<input type="submit" value="'.T('Save').'" '.$DisabledInput[$Editable].'/>'.
     380          '<input type="hidden" name="Operation" value="Save"/>'.
     381          '<br />'.
     382          T('Select languades from list witch you want to export from. And edit theirs order.').'<br />'.
     383          T('Order is done by numeric value which is can be edit to desirable order. Lines with same number will be renumbered in ascending order.');
     384    }
     385
     386    $Output .= $PageList['Output'].
     387    '<table class="BaseTable">'.
     388    $Order['Output'];
     389
     390    $Query = 'SELECT * FROM ('.$Query.') AS TX '.$Order['SQL'].$PageList['SQLLimit'];
     391    $this->System->Database->query('SET @I = 0');
     392    $DbResult = $this->System->Database->query($Query);
     393    while($Langugage = $DbResult->fetch_assoc())
     394    {
     395      $Checked = $Langugage['Sequence'] != '';
     396      $Selection = CheckBox('sel'.$Langugage['Id'], $Checked, '', 'CheckBox', !$Editable);
     397      $Sequence = '<input type="text" name="seq'.$Langugage['Id'].'" style="text-align: center; width: 40px;" value="'.$Langugage['Sequence2'].'"'.$DisabledInput[$Editable].'/>';
     398      $Output .= '<tr>
     399      <td>'.$Langugage['Name'].'</td>
     400      <td>'.$Selection.'</td><td>'.$Sequence.'</td></tr>';
     401    }
     402    $Output .= '</table>'.
     403        '</form>'.
     404        $PageList['Output'];
     405    return($Output);
     406  }
     407
     408  function ExportViewGroups()
     409  {
     410    global $TranslationTree;
     411
     412    $Output = '';
     413    $DisabledInput = array(false => ' disabled="disabled"', true => '');
     414    $DbRows = $this->System->Database->query('SELECT * FROM Export WHERE Id='.$_GET['ExportId']);
     415    $Export = $DbRows->fetch_assoc();
     416    if($this->System->User->Licence(LICENCE_USER) and ($this->System->User->Id == $Export['User'])) $Editable = true;
     417    else $Editable = false;
     418
     419    if(array_key_exists('Operation', $_POST))
     420    {
     421      if($_POST['Operation'] == 'Save')
     422      {
     423        //print_r($_POST);
     424        // Update user selection page
     425        foreach($_POST as $Index => $Value)
     426        {
     427          if(substr($Index, 0, 3) == 'seq')
     428          {
     429            $GroupId = substr($Index, 3) * 1;
     430            if(array_key_exists('sel'.$GroupId, $_POST)) $Selected = true;
     431            else $Selected = false;
     432            $Condition = ' WHERE `Export`='.$_GET['ExportId'].' AND `Group`='.$GroupId;
     433            $DbResult = $this->System->Database->query('SELECT * FROM `ExportGroup` '.$Condition);
     434            if($DbResult->num_rows > 0)
     435            {
     436              if(!$Selected) $this->System->Database->query('DELETE FROM `ExportGroup` '.$Condition);
     437            } else
     438            {
     439              if($Selected) $this->System->Database->query('INSERT INTO `ExportGroup` (`Export`, `Group`) VALUES ('.$_GET['ExportId'].', '.$GroupId.')');
     440            }
     441          }
     442        }
     443        $Output .= ShowMessage(T('Select saved.'));
     444      }
     445      //items
     446      foreach($TranslationTree as $Group)
     447      {
     448      //  echo $Group['Id'].' ';
    449449        foreach($TranslationTree[$Group['Id']]['Items'] as $Column) {
    450450          if(array_key_exists('item'.$Column['Id'], $_POST)) $Selected = true;
     
    452452          //we will save only forbitten collums and need to be visible
    453453          $Selected = !$Selected;
    454           if (!$Column['Visible']) $Selected = false; 
    455 
    456                                                 $Condition = ' WHERE `Export`='.$_GET['ExportId'].' AND `GroupItem`='.$Column['Id'];
    457                                                 $DbResult = $this->System->Database->query('SELECT * FROM `ExportGroupItem` '.$Condition);
    458                                                 if($DbResult->num_rows > 0)
    459                                                 {
    460                                                         if(!$Selected) $this->System->Database->query('DELETE FROM `ExportGroupItem` '.$Condition);
    461                                                 } else
    462                                                 {
    463                                                         if($Selected) $this->System->Database->query('INSERT INTO `ExportGroupItem` (`Export`, `GroupItem`) VALUES ('.$_GET['ExportId'].', '.$Column['Id'].')');
    464                                                 }
     454          if (!$Column['Visible']) $Selected = false;
     455
     456            $Condition = ' WHERE `Export`='.$_GET['ExportId'].' AND `GroupItem`='.$Column['Id'];
     457            $DbResult = $this->System->Database->query('SELECT * FROM `ExportGroupItem` '.$Condition);
     458            if($DbResult->num_rows > 0)
     459            {
     460              if(!$Selected) $this->System->Database->query('DELETE FROM `ExportGroupItem` '.$Condition);
     461            } else
     462            {
     463              if($Selected) $this->System->Database->query('INSERT INTO `ExportGroupItem` (`Export`, `GroupItem`) VALUES ('.$_GET['ExportId'].', '.$Column['Id'].')');
     464            }
    465465
    466466        }
    467467      }
    468                 }
    469        
    470                 $Query = 'SELECT `Group`.*, `ExportGroup`.`Id` AS `ExportGroupId` FROM `Group` LEFT JOIN `ExportGroup` ON `ExportGroup`.`Export`='.$_GET['ExportId'].' AND `Group`=`Group`.`Id`';
    471        
    472                 $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM ('.$Query.') AS X');
    473                 $DbRow = $DbResult->fetch_row();
    474                 $PageList = GetPageList($DbRow[0]);
    475        
    476                 $TableColumns = array(
    477                                 array('Name' => '', 'Title' => T('Select')),
    478                                 array('Name' => 'Name', 'Title' => T('Name')),
    479                                 array('Name' => 'MangosTable', 'Title' => 'Mangos/DBC/Lua'),
    480                 //              array('Name' => 'DBCFileName', 'Title' => 'DBC soubor'),
    481                 //              array('Name' => 'LuaFileName', 'Title' => 'Lua soubor'),
    482                                 array('Name' => '', 'Title' => T('Items of tranlation')),
    483                 );
    484                 $Order = GetOrderTableHeader($TableColumns, 'Name');
    485                 $Output .= '<form action="?Action=View&amp;ExportId='.$_GET['ExportId'].'" method="post">'.
    486                                 '<h3>Překladové skupiny</h3>';
    487                 if($Editable)
    488                 {
    489                         $Output .= '<input type="submit" value="'.T('Save').'" '.$DisabledInput[$Editable].'/>'.
    490                                         '<input type="hidden" name="Operation" value="Save"/>'.
    491                                         ' <span onclick="CheckAllCheckbox();">'.CheckBox('CheckAll', False, 'CheckAll').' '.T('Select all').'</span> '.
    492                                         '<br />'.
    493                                         T('Select translation groups witch you want to export.').'<br />';
    494                 }
    495        
    496                 $Output .= $PageList['Output'].
    497                 '<table class="BaseTable">'.
    498                 $Order['Output'];
    499 
    500           $DbResultItem = $this->System->Database->query('SELECT * FROM `ExportGroupItem` WHERE `Export`='.$_GET['ExportId']);
    501                 while($GroupItem = $DbResultItem->fetch_assoc())
    502                 {
    503                   $GroupItems[$GroupItem['GroupItem']] = 1;
    504     }
    505        
    506                 $Query = 'SELECT * FROM ('.$Query.') AS TX '.$Order['SQL'].$PageList['SQLLimit'];
    507                 $DbResult = $this->System->Database->query($Query);
    508                 while($Group = $DbResult->fetch_assoc())
    509                 {
     468    }
     469
     470    $Query = 'SELECT `Group`.*, `ExportGroup`.`Id` AS `ExportGroupId` FROM `Group` LEFT JOIN `ExportGroup` ON `ExportGroup`.`Export`='.$_GET['ExportId'].' AND `Group`=`Group`.`Id`';
     471
     472    $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM ('.$Query.') AS X');
     473    $DbRow = $DbResult->fetch_row();
     474    $PageList = GetPageList($DbRow[0]);
     475
     476    $TableColumns = array(
     477        array('Name' => '', 'Title' => T('Select')),
     478        array('Name' => 'Name', 'Title' => T('Name')),
     479        array('Name' => 'MangosTable', 'Title' => 'Mangos/DBC/Lua'),
     480    //    array('Name' => 'DBCFileName', 'Title' => 'DBC soubor'),
     481    //    array('Name' => 'LuaFileName', 'Title' => 'Lua soubor'),
     482        array('Name' => '', 'Title' => T('Items of tranlation')),
     483    );
     484    $Order = GetOrderTableHeader($TableColumns, 'Name');
     485    $Output .= '<form action="?Action=View&amp;ExportId='.$_GET['ExportId'].'" method="post">'.
     486        '<h3>Překladové skupiny</h3>';
     487    if($Editable)
     488    {
     489      $Output .= '<input type="submit" value="'.T('Save').'" '.$DisabledInput[$Editable].'/>'.
     490          '<input type="hidden" name="Operation" value="Save"/>'.
     491          ' <span onclick="CheckAllCheckbox();">'.CheckBox('CheckAll', False, 'CheckAll').' '.T('Select all').'</span> '.
     492          '<br />'.
     493          T('Select translation groups witch you want to export.').'<br />';
     494    }
     495
     496    $Output .= $PageList['Output'].
     497    '<table class="BaseTable">'.
     498    $Order['Output'];
     499
     500    $DbResultItem = $this->System->Database->query('SELECT * FROM `ExportGroupItem` WHERE `Export`='.$_GET['ExportId']);
     501    while($GroupItem = $DbResultItem->fetch_assoc())
     502    {
     503      $GroupItems[$GroupItem['GroupItem']] = 1;
     504    }
     505
     506    $Query = 'SELECT * FROM ('.$Query.') AS TX '.$Order['SQL'].$PageList['SQLLimit'];
     507    $DbResult = $this->System->Database->query($Query);
     508    while($Group = $DbResult->fetch_assoc())
     509    {
    510510      $Columns = '';
    511511      foreach($TranslationTree[$Group['Id']]['Items'] as $Column) {
    512512        if ($Column['Visible'])  $Columns .= CheckBox('item'.$Column['Id'], !isset($GroupItems[$Column['Id']]), '', 'CheckBox', !$Editable).' '.$Column['Name'].' <br />';
    513513      }
    514                         $Checked = $Group['ExportGroupId'] != '';
    515                         $Selection = CheckBox('sel'.$Group['Id'], $Checked, '', 'CheckBox', !$Editable);
    516                         $Output .= '<tr>'.
    517                                         '<td>'.$Selection.'<input type="hidden" name="seq'.$Group['Id'].'"/></td>'.
    518                                         '<td>'.$Group['Name'].'</td><td>';
    519                                         if ($Group['MangosTable'] <> '')
    520                                           $Output .= $Group['MangosTable'].'.sql ';
    521                                         if ($Group['LuaFileName'] <> '')
    522                                           $Output .= $Group['LuaFileName'].'.lua ';
    523                                         if ($Group['DBCFileName'] <> '')
    524                                           $Output .= $Group['DBCFileName'].'.dbc ';
    525      
    526       $Output .=                '</td><td>';
    527       $Output .=        $Columns.       '</td>';
     514      $Checked = $Group['ExportGroupId'] != '';
     515      $Selection = CheckBox('sel'.$Group['Id'], $Checked, '', 'CheckBox', !$Editable);
     516      $Output .= '<tr>'.
     517          '<td>'.$Selection.'<input type="hidden" name="seq'.$Group['Id'].'"/></td>'.
     518          '<td>'.$Group['Name'].'</td><td>';
     519          if ($Group['MangosTable'] <> '')
     520            $Output .= $Group['MangosTable'].'.sql ';
     521          if ($Group['LuaFileName'] <> '')
     522            $Output .= $Group['LuaFileName'].'.lua ';
     523          if ($Group['DBCFileName'] <> '')
     524            $Output .= $Group['DBCFileName'].'.dbc ';
     525
     526      $Output .=    '</td><td>';
     527      $Output .=  $Columns. '</td>';
    528528      $Output .=     '</tr>';
    529                 }
    530                 $Output .= '</table>'.
    531                                 '</form>'.
    532                                 $PageList['Output'];
    533                 return($Output);
    534         }
    535        
    536         function ExportViewOutputFormat()
    537         {
    538                 $Output = '';
    539                 $DisabledInput = array(false => ' disabled="disabled"', true => '');
    540                 if(array_key_exists('ExportId', $_GET))
    541                 {
    542                         $DbRows = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
    543                         if($DbRows->num_rows > 0)
    544                         {
    545                                 $Export = $DbRows->fetch_assoc();
    546                                 if($this->System->User->Licence(LICENCE_USER) and ($this->System->User->Id == $Export['User'])) $Editable = true;
    547                                 else $Editable = false;
    548        
    549                                 if(array_key_exists('Operation', $_POST))
    550                                         if($_POST['Operation'] == 'Save')
    551                                         {
    552                                                 if(array_key_exists('OutputType', $_POST) and ($_POST['OutputType'] * 1 > 0))
    553                                                 {
    554                                                   $this->System->Database->query('UPDATE Export SET OutputType='.$_POST['OutputType'].' WHERE Id='.$_GET['ExportId']);
    555                                                   $Output .= ShowMessage(T('Select saved.'));
    556                                           } else $Output .= ShowMessage(T('Format wasn\'t selected'), MESSAGE_CRITICAL);
    557                                         }
    558        
    559                                         $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
    560                                         $Export = $DbResult->fetch_assoc();
    561        
    562                                         $Output .= '<h3>'.T('Format the generated output').'</h3>'.
    563                                                         '<form action="?Action=View&amp;ExportId='.$_GET['ExportId'].'" method="post">';
    564                                         if($Editable)
    565                                         {
    566                                                 $Output .= '<input type="submit" value="'.T('Save').'" '.$DisabledInput[$Editable].'/>'.
    567                                                                 '<input type="hidden" name="Operation" value="Save"/>'.
    568                                                                 '<br />';
    569                                         }
    570                                         $DbResult = $this->System->Database->query('SELECT * FROM `ExportOutputType` ORDER BY `Name`');
    571                                         while($ExportFormat = $DbResult->fetch_assoc())
    572                                         {
    573                                                 $Output .= RadioButton('OutputType', $ExportFormat['Id'], $Export['OutputType'] == $ExportFormat['Id'], '', !$Editable).' '.$ExportFormat['Name'].'<br/>';
    574                                         }
    575                                         $Output .= '</form>';
    576                         } else $Output .= ShowMessage(T('Item not found'), MESSAGE_CRITICAL);
    577                 } else $Output .= ShowMessage(T('Is isn\'t select'), MESSAGE_CRITICAL);
    578                 return($Output);
    579         }
    580        
    581         function ExportViewVersion()
    582         {
    583                 $Output = '';
    584                 $DisabledInput = array(false => ' disabled="disabled"', true => '');
    585                 $DbRows = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
    586                 $Export = $DbRows->fetch_assoc();
    587                 if($this->System->User->Licence(LICENCE_USER) and ($this->System->User->Id == $Export['User'])) $Editable = true;
    588                 else $Editable = false;
    589        
    590                 if(array_key_exists('Operation', $_POST))
    591                         if(($_POST['Operation'] == 'Save') and (array_key_exists('ClientVersion', $_POST)))
    592                         {
    593                                 $this->System->Database->query('UPDATE `Export` SET `ClientVersion`='.$_POST['ClientVersion'].' WHERE `Id`='.$_GET['ExportId']);
    594                                 $Output .= ShowMessage(T('Select saved.'));
    595                         }
    596        
    597                         $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
    598                         $Export = $DbResult->fetch_assoc();
    599        
    600                         if($Export['OutputType'] == '') $Output .= ShowMessage('Nevybrán typ exportu', MESSAGE_CRITICAL);
    601                         else {
    602                                 $Query = 'SELECT `ClientVersion`.* FROM `ExportVersion` '.
    603                                   'LEFT JOIN `ClientVersion` ON `ClientVersion`.`Id`=`ExportVersion`.`ClientVersion` WHERE `ExportType`='.$Export['OutputType'];
    604        
    605                                 $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM ('.$Query.') AS `X`');
    606                                 $DbRow = $DbResult->fetch_row();
    607                                 $PageList = GetPageList($DbRow[0]);
    608        
    609                                 $TableColumns = array(
    610                                                 array('Name' => 'Version', 'Title' => T('Version')),
    611                                                 array('Name' => 'BuildNumber', 'Title' => T('Build')),
    612                                                 array('Name' => 'ReleaseDate', 'Title' => T('Release date')),
    613                                                 array('Name' => 'Title', 'Title' => T('Name2')),
    614                                                 array('Name' => '', 'Title' => T('Select')),
    615                                 );
    616                                 $Order = GetOrderTableHeader($TableColumns, 'BuildNumber', 1);
    617                                 $Output .= '<form action="?Action=View&amp;ExportId='.$_GET['ExportId'].'" method="post">'.
    618                                                 '<h3>'.T('Client version').'</h3>';
    619        
    620                                 if($Editable)
    621                                 {
    622                                         $Output .= '<input type="submit" value="'.T('Save').'" '.$DisabledInput[$Editable].'/>'.
    623                                                         '<input type="hidden" name="Operation" value="Save"/>'.
    624                                                         '<br />'.
    625                                                         T('Select version of game client witch you want to export.').'<br />';
    626                                 }
    627                                 $Output .= $PageList['Output'].
    628                                 '<table class="BaseTable">'.
    629                                 $Order['Output'];
    630        
    631                                 $Query = 'SELECT * FROM ('.$Query.') AS `TX` '.$Order['SQL'].$PageList['SQLLimit'];
    632                                 $DbResult = $this->System->Database->query($Query);
    633                                 while($Version = $DbResult->fetch_assoc())
    634                                 {
    635                                         $Output .= '<tr><td><a href="'.$this->System->Link('/client-version/?action=item&amp;id='.$Version['Id']).'">'.
    636                                                         $Version['Version'].'</a></td><td>'.$Version['BuildNumber'].'</td><td>'.
    637                                                         HumanDate($Version['ReleaseDate']).'</td><td>'.$Version['Title'].'</td><td>'.
    638                                                         RadioButton('ClientVersion', $Version['Id'], $Export['ClientVersion'] == $Version['Id'], '', !$Editable
    639                                                         ).'</td></tr>';
    640        
    641                                 }
    642                                 $Output .= '</table>'.
    643                                                 '</form>'.
    644                                                 $PageList['Output'];
    645                         }
    646                         return($Output);
    647         }
    648        
    649         function ExportViewOutput()
    650         {
    651                 $Output = '';
    652                 $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
    653                 $Export = $DbResult->fetch_assoc();
    654                 if($Export['OutputType'] == '') $Output .= ShowMessage('Nevybrán typ exportu', MESSAGE_CRITICAL);
    655                 else if($Export['ClientVersion'] == '') $Output .= ShowMessage(T('Export don\'t have selected version of client'), MESSAGE_CRITICAL);
    656                 else {
    657                         $DbResult = $this->System->Database->query('SELECT * FROM `ExportOutputType` WHERE `Id`='.$Export['OutputType']);
    658                         if($DbResult->num_rows > 0)
    659                         {
    660                                 $DbResult = $this->System->Database->query('SELECT * FROM `ExportVersion` WHERE (`ExportType`='.$Export['OutputType'].') AND (`ClientVersion`='.$Export['ClientVersion'].')');
    661                                 if($DbResult->num_rows > 0)
    662                                 {
    663                                   if (array_key_exists('Auto', $_GET) == false) 
    664                                           $this->System->Database->query('UPDATE `Export` SET `UsedCount` = `UsedCount` + 1 WHERE `Id`='.$Export['Id']);
    665                                         $Output = ExportOutput($Export['Id'], $Export['OutputType']);
    666                                 } else $Output = ShowMessage(T('Export don\'t have selected version of client'), MESSAGE_CRITICAL);
    667                         } else $Output = ShowMessage(T('Format output isn\'t select').'.', MESSAGE_CRITICAL);
    668                 }
    669                 return($Output);
    670         }
    671        
    672         function ExportViewStat($Where = '')
    673         {
    674                 $Export = new Export($this->System);
    675                 $Export->Id = $_GET['ExportId'];
    676                 $Export->Init();
    677                 $Export->LoadFilters();
    678        
    679                 if(($Export->Export['ClientVersion'] == '') or ($Export->ClientVersion['BuildNumber'] == ''))
    680                         $Output = ShowMessage(T('Export don\'t have selected version of client'), MESSAGE_CRITICAL);
    681                 else {
    682                         $GroupListQuery = 'SELECT `Group`.* FROM `Group` '.
    683                                         ' JOIN `ExportGroup` ON (`ExportGroup`.`Export`='.$Export->Id.') AND (`ExportGroup`.`Group`=`Group`.`Id`)';
    684                         $Query = '';
    685                         $UnionItems = array();
    686                         $DbResult = $this->System->Database->query($GroupListQuery.$Where);
    687                         while($DbRow = $DbResult->fetch_assoc())
    688                         {
    689                                 $UnionItems[] = 'SELECT (SELECT COUNT(DISTINCT(`Entry`)) FROM ('.
    690                                                 ' SELECT `T`.* FROM `'.$DbRow['TablePrefix'].'` AS `T`'.
    691                                                 ' JOIN `ExportUser` ON (`ExportUser`.`User`=`T`.`User`) AND (`ExportUser`.`Export`='.$Export->Id.') '.
    692                                                 ' JOIN `ExportLanguage` ON (`ExportLanguage`.`Export`='.$Export->Id.')'.
    693                                                 ' WHERE (`Complete` = 1) AND (`VersionStart` <= '.$Export->ClientVersion['BuildNumber'].') AND (`VersionEnd` >= '.$Export->ClientVersion['BuildNumber'].')'.
    694                                                 ') AS `C1`) AS `Translated`, '.
    695                                                 '(SELECT COUNT(DISTINCT(`Entry`)) FROM ('.
    696                                                 ' SELECT `T`.* FROM `'.$DbRow['TablePrefix'].'` AS `T`'.
    697                                                 ' WHERE (`Language` = '.$this->System->Config['OriginalLanguage'].') AND (`VersionStart` <= '.$Export->ClientVersion['BuildNumber'].') AND (`VersionEnd` >= '.$Export->ClientVersion['BuildNumber'].')'.
    698                                                 ') AS `C2`) AS `Total`, "'.$DbRow['Name'].'" AS `Name`';
    699                         }
    700                         $Query = substr($Query, 0, - 6);
    701        
    702                         $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM ('.$GroupListQuery.') AS `T`');
    703                         $DbRow = $DbResult->fetch_row();
    704                         $PageList = GetPageList($DbRow[0]);
    705                         $Output = '<h3>'.T('Statistic of coplection selected groups').'</h3>'.
    706                                 $PageList['Output'];
    707        
    708                         $Output .= '<table class="BaseTable">';
    709                         $TableColumns = array(
    710                                 array('Name' => 'Name', 'Title' => T('Name')),
    711                                 array('Name' => 'Translated', 'Title' => T('Translated count')),
    712                                 array('Name' => 'Total', 'Title' => T('English')),
    713                                 array('Name' => 'Percent', 'Title' => T('Percent')),
    714                         );
    715        
    716                         $Order = GetOrderTableHeader($TableColumns, 'Name', 0);
    717                         $Output .= $Order['Output'];
    718        
    719                         $Translated = 0;
    720                         $Total = 0;
    721                         if(count($UnionItems) > 0)
    722                         {
    723                                 $ID = $this->System->Database->query('SELECT *, ROUND(`Translated` / `Total` * 100, 2) AS `Percent` FROM ('.implode(' UNION ALL ', $UnionItems).') AS `C3` '.$Order['SQL'].$PageList['SQLLimit']);
    724                                 while($Group = $ID->fetch_assoc())
    725                                 {
    726                                         $Output .= '<tr><td>'.$Group['Name'].'</td><td>'.$Group['Translated'].'</td><td>'.$Group['Total'].'</td><td>'.ProgressBar(150, $Group['Percent']).'</td></tr>';
    727                                         $Translated += $Group['Translated'];
    728                                         $Total += $Group['Total'];
    729                                 }
    730                         }
    731                         if($Total > 0) $Percent = $Translated / $Total * 100;
    732                         else $Percent = 100;
    733        
    734                         $Output .= '<tr><td><strong>'.T('Altogether').'</strong></td><td><strong>'.$Translated.'</strong></td><td><strong>'.$Total.'</strong></td><td><strong>'.ProgressBar(150, round($Percent, 2)).'</strong></td></tr>';
    735                         $Output .= '</table>';
    736                 }
    737                 return($Output);
    738         }
    739        
    740         function ExportView()
    741         {
    742                 $Output = '';
    743                 if(array_key_exists('ExportId', $_GET) and is_numeric($_GET['ExportId']))
    744                 {
    745                         $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
    746                         if($DbResult->num_rows > 0)
    747                         {
    748                                 $Export = $DbResult->fetch_assoc();
    749        
    750                                 $DbResult = $this->System->Database->query('SELECT * FROM `User` WHERE `ID`='.$Export['User']);
    751                                 $UserLine = $DbResult->fetch_assoc();
    752                                 $Output .= 'Export <strong><a href="?Action=View&amp;Tab=6&amp;ExportId='.$Export['Id'].'">'.$_GET['ExportId'].'</a></strong> překladatele <strong>'.$UserLine['Name'].'</strong> s označením <strong>'.$Export['Title'].'</strong>';
    753                                 $Output .= ShowTabs(array(T('General'), T('Translators'), 'Překlady', T('Languages'), T('Format'), T('Version'), T('Statistic'), T('Output')));
    754                                 $Output .= '<div id="content">';
    755                                 if($_SESSION['Tab'] == TAB_GENERAL) $Output .= $this->ExportViewGeneral();
    756                                 else if($_SESSION['Tab'] == TAB_TRANSLATORS) $Output .= $this->ExportViewTranslators();
    757                                 else if($_SESSION['Tab'] == TAB_GROUPS) $Output .= $this->ExportViewGroups();
    758                                 else if($_SESSION['Tab'] == TAB_LANGUAGES) $Output .= $this->ExportViewLanguages();
    759                                 else if($_SESSION['Tab'] == TAB_OUTPUT_FORMAT) $Output .= $this->ExportViewOutputFormat();
    760                                 else if($_SESSION['Tab'] == TAB_VERSION) $Output .= $this->ExportViewVersion();
    761                                 else if($_SESSION['Tab'] == TAB_STAT) $Output .= $this->ExportViewStat();
    762                                 else if($_SESSION['Tab'] == TAB_OUTPUT) $Output .= $this->ExportViewOutput();
    763                                 else $Output .= $this->ExportViewGeneral();
    764        
    765                                 $Output .= '</div>';
    766                         } else $Output .= ShowMessage(T('Export not found.'), MESSAGE_CRITICAL);
    767                 } else $Output .= ShowMessage(T('Is isn\'t select'), MESSAGE_CRITICAL);
    768                 return($Output);
    769         }
    770        
    771         function ExportClone()
    772         {
    773                 if($this->System->User->Licence(LICENCE_USER))
    774                 {
    775                         if(array_key_exists('ExportId', $_GET) and is_numeric($_GET['ExportId']))
    776                         {
    777                                 $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM `Export` WHERE `User`='.$this->System->User->Id);
    778                                 $DbRow = $DbResult->fetch_row();
    779                                 if($DbRow[0] < $this->System->Config['MaxExportPerUser'])
    780                                 {
    781                                   $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
    782                                   if($DbResult->num_rows > 0)
    783                                   {
    784                                     $DbRow = $DbResult->fetch_assoc();
    785                                     unset($DbRow['Id']);
    786                                     $DbRow['UsedCount'] = '0';
    787                                     $DbRow['User'] = $this->System->User->Id;                             
    788                                     $DbRow['TimeCreate'] = 'NOW()';
    789                                     $DbRow['Title'] .= ' - '.T('clone');
     529    }
     530    $Output .= '</table>'.
     531        '</form>'.
     532        $PageList['Output'];
     533    return($Output);
     534  }
     535
     536  function ExportViewOutputFormat()
     537  {
     538    $Output = '';
     539    $DisabledInput = array(false => ' disabled="disabled"', true => '');
     540    if(array_key_exists('ExportId', $_GET))
     541    {
     542      $DbRows = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
     543      if($DbRows->num_rows > 0)
     544      {
     545        $Export = $DbRows->fetch_assoc();
     546        if($this->System->User->Licence(LICENCE_USER) and ($this->System->User->Id == $Export['User'])) $Editable = true;
     547        else $Editable = false;
     548
     549        if(array_key_exists('Operation', $_POST))
     550          if($_POST['Operation'] == 'Save')
     551          {
     552            if(array_key_exists('OutputType', $_POST) and ($_POST['OutputType'] * 1 > 0))
     553            {
     554              $this->System->Database->query('UPDATE Export SET OutputType='.$_POST['OutputType'].' WHERE Id='.$_GET['ExportId']);
     555              $Output .= ShowMessage(T('Select saved.'));
     556            } else $Output .= ShowMessage(T('Format wasn\'t selected'), MESSAGE_CRITICAL);
     557          }
     558
     559          $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
     560          $Export = $DbResult->fetch_assoc();
     561
     562          $Output .= '<h3>'.T('Format the generated output').'</h3>'.
     563              '<form action="?Action=View&amp;ExportId='.$_GET['ExportId'].'" method="post">';
     564          if($Editable)
     565          {
     566            $Output .= '<input type="submit" value="'.T('Save').'" '.$DisabledInput[$Editable].'/>'.
     567                '<input type="hidden" name="Operation" value="Save"/>'.
     568                '<br />';
     569          }
     570          $DbResult = $this->System->Database->query('SELECT * FROM `ExportOutputType` ORDER BY `Name`');
     571          while($ExportFormat = $DbResult->fetch_assoc())
     572          {
     573            $Output .= RadioButton('OutputType', $ExportFormat['Id'], $Export['OutputType'] == $ExportFormat['Id'], '', !$Editable).' '.$ExportFormat['Name'].'<br/>';
     574          }
     575          $Output .= '</form>';
     576      } else $Output .= ShowMessage(T('Item not found'), MESSAGE_CRITICAL);
     577    } else $Output .= ShowMessage(T('Is isn\'t select'), MESSAGE_CRITICAL);
     578    return($Output);
     579  }
     580
     581  function ExportViewVersion()
     582  {
     583    $Output = '';
     584    $DisabledInput = array(false => ' disabled="disabled"', true => '');
     585    $DbRows = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
     586    $Export = $DbRows->fetch_assoc();
     587    if($this->System->User->Licence(LICENCE_USER) and ($this->System->User->Id == $Export['User'])) $Editable = true;
     588    else $Editable = false;
     589
     590    if(array_key_exists('Operation', $_POST))
     591      if(($_POST['Operation'] == 'Save') and (array_key_exists('ClientVersion', $_POST)))
     592      {
     593        $this->System->Database->query('UPDATE `Export` SET `ClientVersion`='.$_POST['ClientVersion'].' WHERE `Id`='.$_GET['ExportId']);
     594        $Output .= ShowMessage(T('Select saved.'));
     595      }
     596
     597      $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
     598      $Export = $DbResult->fetch_assoc();
     599
     600      if($Export['OutputType'] == '') $Output .= ShowMessage('Nevybrán typ exportu', MESSAGE_CRITICAL);
     601      else {
     602        $Query = 'SELECT `ClientVersion`.* FROM `ExportVersion` '.
     603          'LEFT JOIN `ClientVersion` ON `ClientVersion`.`Id`=`ExportVersion`.`ClientVersion` WHERE `ExportType`='.$Export['OutputType'];
     604
     605        $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM ('.$Query.') AS `X`');
     606        $DbRow = $DbResult->fetch_row();
     607        $PageList = GetPageList($DbRow[0]);
     608
     609        $TableColumns = array(
     610            array('Name' => 'Version', 'Title' => T('Version')),
     611            array('Name' => 'BuildNumber', 'Title' => T('Build')),
     612            array('Name' => 'ReleaseDate', 'Title' => T('Release date')),
     613            array('Name' => 'Title', 'Title' => T('Name2')),
     614            array('Name' => '', 'Title' => T('Select')),
     615        );
     616        $Order = GetOrderTableHeader($TableColumns, 'BuildNumber', 1);
     617        $Output .= '<form action="?Action=View&amp;ExportId='.$_GET['ExportId'].'" method="post">'.
     618            '<h3>'.T('Client version').'</h3>';
     619
     620        if($Editable)
     621        {
     622          $Output .= '<input type="submit" value="'.T('Save').'" '.$DisabledInput[$Editable].'/>'.
     623              '<input type="hidden" name="Operation" value="Save"/>'.
     624              '<br />'.
     625              T('Select version of game client witch you want to export.').'<br />';
     626        }
     627        $Output .= $PageList['Output'].
     628        '<table class="BaseTable">'.
     629        $Order['Output'];
     630
     631        $Query = 'SELECT * FROM ('.$Query.') AS `TX` '.$Order['SQL'].$PageList['SQLLimit'];
     632        $DbResult = $this->System->Database->query($Query);
     633        while($Version = $DbResult->fetch_assoc())
     634        {
     635          $Output .= '<tr><td><a href="'.$this->System->Link('/client-version/?action=item&amp;id='.$Version['Id']).'">'.
     636              $Version['Version'].'</a></td><td>'.$Version['BuildNumber'].'</td><td>'.
     637              HumanDate($Version['ReleaseDate']).'</td><td>'.$Version['Title'].'</td><td>'.
     638              RadioButton('ClientVersion', $Version['Id'], $Export['ClientVersion'] == $Version['Id'], '', !$Editable
     639              ).'</td></tr>';
     640
     641        }
     642        $Output .= '</table>'.
     643            '</form>'.
     644            $PageList['Output'];
     645      }
     646      return($Output);
     647  }
     648
     649  function ExportViewOutput()
     650  {
     651    $Output = '';
     652    $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
     653    $Export = $DbResult->fetch_assoc();
     654    if($Export['OutputType'] == '') $Output .= ShowMessage('Nevybrán typ exportu', MESSAGE_CRITICAL);
     655    else if($Export['ClientVersion'] == '') $Output .= ShowMessage(T('Export don\'t have selected version of client'), MESSAGE_CRITICAL);
     656    else {
     657      $DbResult = $this->System->Database->query('SELECT * FROM `ExportOutputType` WHERE `Id`='.$Export['OutputType']);
     658      if($DbResult->num_rows > 0)
     659      {
     660        $DbResult = $this->System->Database->query('SELECT * FROM `ExportVersion` WHERE (`ExportType`='.$Export['OutputType'].') AND (`ClientVersion`='.$Export['ClientVersion'].')');
     661        if($DbResult->num_rows > 0)
     662        {
     663          if (array_key_exists('Auto', $_GET) == false)
     664            $this->System->Database->query('UPDATE `Export` SET `UsedCount` = `UsedCount` + 1 WHERE `Id`='.$Export['Id']);
     665          $Output = ExportOutput($Export['Id'], $Export['OutputType']);
     666        } else $Output = ShowMessage(T('Export don\'t have selected version of client'), MESSAGE_CRITICAL);
     667      } else $Output = ShowMessage(T('Format output isn\'t select').'.', MESSAGE_CRITICAL);
     668    }
     669    return($Output);
     670  }
     671
     672  function ExportViewStat($Where = '')
     673  {
     674    $Export = new Export($this->System);
     675    $Export->Id = $_GET['ExportId'];
     676    $Export->Init();
     677    $Export->LoadFilters();
     678
     679    if(($Export->Export['ClientVersion'] == '') or ($Export->ClientVersion['BuildNumber'] == ''))
     680      $Output = ShowMessage(T('Export don\'t have selected version of client'), MESSAGE_CRITICAL);
     681    else {
     682      $GroupListQuery = 'SELECT `Group`.* FROM `Group` '.
     683          ' JOIN `ExportGroup` ON (`ExportGroup`.`Export`='.$Export->Id.') AND (`ExportGroup`.`Group`=`Group`.`Id`)';
     684      $Query = '';
     685      $UnionItems = array();
     686      $DbResult = $this->System->Database->query($GroupListQuery.$Where);
     687      while($DbRow = $DbResult->fetch_assoc())
     688      {
     689        $UnionItems[] = 'SELECT (SELECT COUNT(DISTINCT(`Entry`)) FROM ('.
     690            ' SELECT `T`.* FROM `'.$DbRow['TablePrefix'].'` AS `T`'.
     691            ' JOIN `ExportUser` ON (`ExportUser`.`User`=`T`.`User`) AND (`ExportUser`.`Export`='.$Export->Id.') '.
     692            ' JOIN `ExportLanguage` ON (`ExportLanguage`.`Export`='.$Export->Id.')'.
     693            ' WHERE (`Complete` = 1) AND (`VersionStart` <= '.$Export->ClientVersion['BuildNumber'].') AND (`VersionEnd` >= '.$Export->ClientVersion['BuildNumber'].')'.
     694            ') AS `C1`) AS `Translated`, '.
     695            '(SELECT COUNT(DISTINCT(`Entry`)) FROM ('.
     696            ' SELECT `T`.* FROM `'.$DbRow['TablePrefix'].'` AS `T`'.
     697            ' WHERE (`Language` = '.$this->System->Config['OriginalLanguage'].') AND (`VersionStart` <= '.$Export->ClientVersion['BuildNumber'].') AND (`VersionEnd` >= '.$Export->ClientVersion['BuildNumber'].')'.
     698            ') AS `C2`) AS `Total`, "'.$DbRow['Name'].'" AS `Name`';
     699      }
     700      $Query = substr($Query, 0, - 6);
     701
     702      $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM ('.$GroupListQuery.') AS `T`');
     703      $DbRow = $DbResult->fetch_row();
     704      $PageList = GetPageList($DbRow[0]);
     705      $Output = '<h3>'.T('Statistic of coplection selected groups').'</h3>'.
     706        $PageList['Output'];
     707
     708      $Output .= '<table class="BaseTable">';
     709      $TableColumns = array(
     710        array('Name' => 'Name', 'Title' => T('Name')),
     711        array('Name' => 'Translated', 'Title' => T('Translated count')),
     712        array('Name' => 'Total', 'Title' => T('English')),
     713        array('Name' => 'Percent', 'Title' => T('Percent')),
     714      );
     715
     716      $Order = GetOrderTableHeader($TableColumns, 'Name', 0);
     717      $Output .= $Order['Output'];
     718
     719      $Translated = 0;
     720      $Total = 0;
     721      if(count($UnionItems) > 0)
     722      {
     723        $ID = $this->System->Database->query('SELECT *, ROUND(`Translated` / `Total` * 100, 2) AS `Percent` FROM ('.implode(' UNION ALL ', $UnionItems).') AS `C3` '.$Order['SQL'].$PageList['SQLLimit']);
     724        while($Group = $ID->fetch_assoc())
     725        {
     726          $Output .= '<tr><td>'.$Group['Name'].'</td><td>'.$Group['Translated'].'</td><td>'.$Group['Total'].'</td><td>'.ProgressBar(150, $Group['Percent']).'</td></tr>';
     727          $Translated += $Group['Translated'];
     728          $Total += $Group['Total'];
     729        }
     730      }
     731      if($Total > 0) $Percent = $Translated / $Total * 100;
     732      else $Percent = 100;
     733
     734      $Output .= '<tr><td><strong>'.T('Altogether').'</strong></td><td><strong>'.$Translated.'</strong></td><td><strong>'.$Total.'</strong></td><td><strong>'.ProgressBar(150, round($Percent, 2)).'</strong></td></tr>';
     735      $Output .= '</table>';
     736    }
     737    return($Output);
     738  }
     739
     740  function ExportView()
     741  {
     742    $Output = '';
     743    if(array_key_exists('ExportId', $_GET) and is_numeric($_GET['ExportId']))
     744    {
     745      $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
     746      if($DbResult->num_rows > 0)
     747      {
     748        $Export = $DbResult->fetch_assoc();
     749
     750        $DbResult = $this->System->Database->query('SELECT * FROM `User` WHERE `ID`='.$Export['User']);
     751        $UserLine = $DbResult->fetch_assoc();
     752        $Output .= 'Export <strong><a href="?Action=View&amp;Tab=6&amp;ExportId='.$Export['Id'].'">'.$_GET['ExportId'].'</a></strong> překladatele <strong>'.$UserLine['Name'].'</strong> s označením <strong>'.$Export['Title'].'</strong>';
     753        $Output .= ShowTabs(array(T('General'), T('Translators'), 'Překlady', T('Languages'), T('Format'), T('Version'), T('Statistic'), T('Output')));
     754        $Output .= '<div id="content">';
     755        if($_SESSION['Tab'] == TAB_GENERAL) $Output .= $this->ExportViewGeneral();
     756        else if($_SESSION['Tab'] == TAB_TRANSLATORS) $Output .= $this->ExportViewTranslators();
     757        else if($_SESSION['Tab'] == TAB_GROUPS) $Output .= $this->ExportViewGroups();
     758        else if($_SESSION['Tab'] == TAB_LANGUAGES) $Output .= $this->ExportViewLanguages();
     759        else if($_SESSION['Tab'] == TAB_OUTPUT_FORMAT) $Output .= $this->ExportViewOutputFormat();
     760        else if($_SESSION['Tab'] == TAB_VERSION) $Output .= $this->ExportViewVersion();
     761        else if($_SESSION['Tab'] == TAB_STAT) $Output .= $this->ExportViewStat();
     762        else if($_SESSION['Tab'] == TAB_OUTPUT) $Output .= $this->ExportViewOutput();
     763        else $Output .= $this->ExportViewGeneral();
     764
     765        $Output .= '</div>';
     766      } else $Output .= ShowMessage(T('Export not found.'), MESSAGE_CRITICAL);
     767    } else $Output .= ShowMessage(T('Is isn\'t select'), MESSAGE_CRITICAL);
     768    return($Output);
     769  }
     770
     771  function ExportClone()
     772  {
     773    if($this->System->User->Licence(LICENCE_USER))
     774    {
     775      if(array_key_exists('ExportId', $_GET) and is_numeric($_GET['ExportId']))
     776      {
     777        $DbResult = $this->System->Database->query('SELECT COUNT(*) FROM `Export` WHERE `User`='.$this->System->User->Id);
     778        $DbRow = $DbResult->fetch_row();
     779        if($DbRow[0] < $this->System->Config['MaxExportPerUser'])
     780        {
     781          $DbResult = $this->System->Database->query('SELECT * FROM `Export` WHERE `Id`='.$_GET['ExportId']);
     782          if($DbResult->num_rows > 0)
     783          {
     784            $DbRow = $DbResult->fetch_assoc();
     785            unset($DbRow['Id']);
     786            $DbRow['UsedCount'] = '0';
     787            $DbRow['User'] = $this->System->User->Id;
     788            $DbRow['TimeCreate'] = 'NOW()';
     789            $DbRow['Title'] .= ' - '.T('clone');
    790790            $DbRow['Featured'] = 0;
    791                                           $this->System->Database->insert('Export', $DbRow);
    792                                     $ExportId = $this->System->Database->insert_id;                                     
    793                                     $this->System->Database->query('INSERT INTO `ExportGroup` (SELECT NULL AS `Id`, '.$ExportId.' AS `Export`, `Group` FROM `ExportGroup` WHERE `Export`='.$_GET['ExportId'].')');
    794                                     $this->System->Database->query('INSERT INTO `ExportGroupItem` (SELECT NULL AS `Id`, '.$ExportId.' AS `Export`, `GroupItem` FROM `ExportGroupItem` WHERE `Export`='.$_GET['ExportId'].')');
    795                                     $this->System->Database->query('INSERT INTO `ExportLanguage` (SELECT NULL AS `Id`, '.$ExportId.' AS `Export`, `Language`, `Sequence` FROM `ExportLanguage` WHERE `Export`='.$_GET['ExportId'].')');
    796                                     $this->System->Database->query('INSERT INTO `ExportUser` (SELECT NULL AS `Id`, '.$ExportId.' AS `Export`, `User`, `Sequence` FROM `ExportUser` WHERE `Export`='.$_GET['ExportId'].')');
    797                                           $Output = ShowMessage(T('Clone export created.<br />Direct link to export').': <a href="?Action=View&amp;ExportId='.$ExportId.'">zde</a>');
    798                                           $this->System->ModuleManager->Modules['Log']->WriteLog(T('Clone export created').' <a href="'.$this->System->Link('/export/?Action=View&amp;ExportId='.$ExportId).'">'.$ExportId.'</a>.', LOG_TYPE_EXPORT);
    799                                           $_GET['Filter'] = 'my';
    800                                           $this->ExportList();
    801                                         } else $Output = ShowMessage('Zdrojový export nenalezen', MESSAGE_CRITICAL);
    802                                 } else $Output = ShowMessage('Nemůžete vytvářet další export. Max. počet na uživatele je '.
    803                                         $this->System->Config['MaxExportPerUser'].'.', MESSAGE_CRITICAL);
    804                         } else $Output = ShowMessage(T('Export not found.'), MESSAGE_CRITICAL);
    805                 } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
    806                 return($Output);
    807         }
    808        
    809         function Show()
    810   {
    811         $this->Title = T('Export');
     791            $this->System->Database->insert('Export', $DbRow);
     792            $ExportId = $this->System->Database->insert_id;
     793            $this->System->Database->query('INSERT INTO `ExportGroup` (SELECT NULL AS `Id`, '.$ExportId.' AS `Export`, `Group` FROM `ExportGroup` WHERE `Export`='.$_GET['ExportId'].')');
     794            $this->System->Database->query('INSERT INTO `ExportGroupItem` (SELECT NULL AS `Id`, '.$ExportId.' AS `Export`, `GroupItem` FROM `ExportGroupItem` WHERE `Export`='.$_GET['ExportId'].')');
     795            $this->System->Database->query('INSERT INTO `ExportLanguage` (SELECT NULL AS `Id`, '.$ExportId.' AS `Export`, `Language`, `Sequence` FROM `ExportLanguage` WHERE `Export`='.$_GET['ExportId'].')');
     796            $this->System->Database->query('INSERT INTO `ExportUser` (SELECT NULL AS `Id`, '.$ExportId.' AS `Export`, `User`, `Sequence` FROM `ExportUser` WHERE `Export`='.$_GET['ExportId'].')');
     797            $Output = ShowMessage(T('Clone export created.<br />Direct link to export').': <a href="?Action=View&amp;ExportId='.$ExportId.'">zde</a>');
     798            $this->System->ModuleManager->Modules['Log']->WriteLog(T('Clone export created').' <a href="'.$this->System->Link('/export/?Action=View&amp;ExportId='.$ExportId).'">'.$ExportId.'</a>.', LOG_TYPE_EXPORT);
     799            $_GET['Filter'] = 'my';
     800            $this->ExportList();
     801          } else $Output = ShowMessage('Zdrojový export nenalezen', MESSAGE_CRITICAL);
     802        } else $Output = ShowMessage('Nemůžete vytvářet další export. Max. počet na uživatele je '.
     803          $this->System->Config['MaxExportPerUser'].'.', MESSAGE_CRITICAL);
     804      } else $Output = ShowMessage(T('Export not found.'), MESSAGE_CRITICAL);
     805    } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
     806    return($Output);
     807  }
     808
     809  function Show()
     810  {
     811    $this->Title = T('Export');
    812812    if(array_key_exists('Action', $_GET))
    813813    {
     
    820820    } else $Output = $this->ExportList();
    821821    return($Output);
    822   } 
     822  }
    823823}
  • trunk/Modules/Export/ProcessAoWoWExport.php

    r805 r816  
    55include_once('../../includes/global.php');
    66//include_once('../../includes/dbc.php');
    7 include_once('Export.php');   
    8 include_once('Page.php');   
     7include_once('Export.php');
     8include_once('Page.php');
    99
    1010  $System = new System();
    1111  $System->DoNotShowPage = true;
    12         $System->Run();
     12    $System->Run();
    1313
    1414$Output = '';
    1515
    16 if(defined('STDIN') == false) 
     16if(defined('STDIN') == false)
    1717{
    1818  $Output = T('Access denied');
    1919  exit($Output);
    20 } 
     20}
    2121
    2222foreach($_SERVER['argv'] as $parameter)
     
    3636  $Export->Id = $Config['AoWoWExportId'];
    3737} else $Export->Id = 37;
    38   $Output .= $Export->Init();                   
     38  $Output .= $Export->Init();
    3939  $SQL = $Export->ExportToAoWoWSQL();
    4040echo 'Hotovo
     
    8989}
    9090$Files = scandir(dirname(__FILE__).'/../../aowow/cache/templates/wowhead');
    91 foreach($Files as $File) 
     91foreach($Files as $File)
    9292{
    9393  $End = substr($File, strlen($File) - 3);
  • trunk/Modules/Export/ProcessTask.php

    r811 r816  
    1212  $System = new System();
    1313  $System->DoNotShowPage = true;
    14         $System->Run();
     14    $System->Run();
    1515
    1616function SetProgress($Export,$per) {
  • trunk/Modules/Export/Progress.php

    r743 r816  
    22
    33include_once(dirname(__FILE__).'/../../includes/global.php');
    4  
     4
    55  $System = new System();
    66  $System->DoNotShowPage = true;
    77  $System->Run();
    8    
     8
    99
    1010    $Output = '';
     
    1212    ' LEFT JOIN `Export` ON `Export`.`Id` = `ExportTask`.`Export` WHERE  (`Export`.`OutputType` = 9 OR  `Export`.`OutputType` = 10 ) AND `TimeFinish` IS NULL  OR `Export` ='.$_GET['RedirectId'].' ORDER BY `Progress` DESC');// `Export`='.$Export->Id
    1313    while($Task = $DbResult->fetch_assoc()) {
    14       $Export = '<a href="'.$System->Link('/export/?Action=View&ExportId='.$Task['Export']).'">'.$Task['Export'].'</a>';         
     14      $Export = '<a href="'.$System->Link('/export/?Action=View&ExportId='.$Task['Export']).'">'.$Task['Export'].'</a>';
    1515      if ($_GET['RedirectId'] == $Task['Export'])
    1616        $Export = ''.$Export.' (tento)';
     
    1919      'setTimeout("parent.location.href=\''.$System->Link('/export/?Action=View&Tab=7&ExportId='.$_GET['RedirectId']).'\'", 500)'.
    2020      '</script>';
    21     }   
     21    }
    2222
    2323    echo $Output;
  • trunk/Modules/Export/cmdmpqexport.php

    r805 r816  
    55include_once(dirname(__FILE__).'/../../includes/global.php');
    66//include_once('../../includes/dbc.php');
    7 include_once('Export.php');   
    8 include_once('Page.php');   
     7include_once('Export.php');
     8include_once('Page.php');
    99
    1010  $System = new System();
    1111  $System->DoNotShowPage = true;
    12         $System->Run();
     12    $System->Run();
    1313$PageExport = new PageExport($System);
    1414
     
    1717$Output = '';
    1818
    19 if(defined('STDIN') == false) 
     19if(defined('STDIN') == false)
    2020{
    2121  $Output = T('Access denied');
    2222  exit($Output);
    23 } 
     23}
    2424
    2525foreach($_SERVER['argv'] as $parameter)
     
    3737  $Output .= 'Usage ExportId=id_export - for write export info<br />';
    3838  $Output .= 'Usage needgeneration=id_export - for write export info<br />';
    39  
     39
    4040  $Output .= 'type_export={lua,dbc,addon} <br />';
    4141  $Output = str_replace('<br />','
     
    4646  $Export = new Export($System);
    4747  $Export->Id = $_GET['lua'];
    48   $Output .= $Export->Init();                   
     48  $Output .= $Export->Init();
    4949  $Output .= $Export->ExportToLua();
    5050  $Output = str_replace('<br/>','
     
    5656  $Export = new Export($System);
    5757  $Export->Id = $_GET['version'];
    58   $Export->LoadFilters();   
     58  $Export->LoadFilters();
    5959  $Output .= $Export->ClientVersion['Version'];
    6060  $Output = str_replace('<br/>','
     
    6666  $Export = new Export($System);
    6767  $Export->Id = $_GET['dbc'];
    68   $Output .= $Export->Init();                   
     68  $Output .= $Export->Init();
    6969  $Output .= $Export->ExportToDbc();
    7070  $Output = str_replace('<br/>','
     
    8585
    8686if(array_key_exists('needgeneration', $_GET)) {
    87         $DbRows = $System->Database->query('SELECT `ClientVersion`.`Version` as Version, `Export`.`Id`,`Export`.`ClientVersion`,`Export`.`OutputType`,`Export`.`Title`,`Export`.`Description` FROM `Export` JOIN `ClientVersion` as `ClientVersion` ON `ClientVersion`.`Id`=`Export`.`ClientVersion` WHERE `Featured`=1 ORDER BY `ClientVersion`.`BuildNumber` DESC');
     87  $DbRows = $System->Database->query('SELECT `ClientVersion`.`Version` as Version, `Export`.`Id`,`Export`.`ClientVersion`,`Export`.`OutputType`,`Export`.`Title`,`Export`.`Description` FROM `Export` JOIN `ClientVersion` as `ClientVersion` ON `ClientVersion`.`Id`=`Export`.`ClientVersion` WHERE `Featured`=1 ORDER BY `ClientVersion`.`BuildNumber` DESC');
    8888  while ($DbExport = $DbRows->fetch_assoc()) {
    8989  $Export = new Export($System);
    9090  $Export->Id = $DbExport['Id'];
    91   $Output .= $Export->Init();                   
     91  $Output .= $Export->Init();
    9292  if ($Export->NeedGeneration()) {
    9393    $DbResult = $System->Database->query('SELECT * FROM ExportTask WHERE Export = '.$Export->Id);
     
    9595    {
    9696      $System->Database->query('INSERT INTO ExportTask (`Export` ,`TimeStart` ) VALUES ('.$Export->Id.', NOW())');
    97     } else 
     97    } else
    9898      $System->Database->query('UPDATE ExportTask SET `TimeStart` = NOW(), `Progress` = 0, `TimeFinish` = NULL WHERE Export = '.$Export->Id);
    9999
     
    113113  $Export = new Export($System);
    114114  $Export->Id = $_GET['ExportId'];
    115   $Export->LoadFilters(); 
    116  
     115  $Export->LoadFilters();
     116
    117117  //generation readme
    118118  $Output .= '<?xml version="1.0" encoding="utf-8"?\>'.
     
    129129  '<meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" />'.
    130130  '<title>Čeština pro WoW</title>'.
    131 '</head><body>'. 
     131'</head><body>'.
    132132'<h1>České WoW - čestina pro klienta hry World of Warcraft</h1>'.
    133  
     133
    134134'<table cellspacing="10"><tr><td valign="top">'.
    135  
     135
    136136'<p>Texty přebírány z projektu <a href="http://wowpreklad.zdechov.net/">wowpreklad.zdechov.net</a><br>'.
    137137'<a href="http://wowpreklad.zdechov.net/export/?Action=View&ExportId='.$_GET['ExportId'].'&Tab=0">Export '.$_GET['ExportId'].'</a></p><br>'.
    138  
    139  
     138
     139
    140140'<p><strong>Vlastnosti</strong>'.
    141141'<ul>'.
     
    148148'</p>'.
    149149'<br>'.
    150  
     150
    151151'<h2>Nejčastější otázky</h2>'.
    152152'<p><strong>Jak mám hru spustit?</strong><br>'.
     
    155155'<p><strong>Mohu použít tuto češtinu na oficiálních serverech?</strong><br>'.
    156156'Ne úplně, protože se vystavujete riziku zablokování vašeho účtu z důvodu použití upravené hry. Na oficiálním serveru lze využít pouze Addon s češtinou CzWoW.</p>'.
    157  
     157
    158158'<p><strong>Mám nainstalovánu češtinu a nejde mi spustit Wow.exe.</strong><br>'.
    159159'Pokud chcete opět spouštět hru přes původní Wow.exe v angličtině, musíte češtinu nejprve odinstalovat ze systému. Především se jedná o soubor Data/enGB/patch-enGB-5.MPQ či Data/enUS/patch-enUS-5.MPQ, který je nutno smazat.</p>'.
    160  
     160
    161161'<p><strong>Nedaří se mi provést aktualizaci klienta s nainstalovanou češtinou.</strong><br>'.
    162162'Před aktualizací na novější verzi klienta musíte nejprve češtinu odinstalovat. Čeština totiž mění v rámci patch MPQ souboru některé soubory hry, což oficiální instalátory vyhodnotí jako poškození hry.</p>'.
    163  
     163
    164164'</td><td>';
    165165
     
    167167
    168168  $Output .= '</td></tr></table>'.
    169  
    170  
     169
     170
    171171  '</body></html>';
    172  
     172
    173173}
    174174//$_GET['ExportId']
Note: See TracChangeset for help on using the changeset viewer.