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.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Modules/Translation/TranslationList.php

    r791 r816  
    33class CompletionState
    44{
    5         const All = 0;
    6         const NotTranslated = 1;
    7         const Translated = 2;
    8         const NotFinished = 3;
    9         const Original = 4;
    10         const NotFinishedNotTranslated = 5;
    11         const Missing1 = 6;
    12         const Missing2 = 7;
     5  const All = 0;
     6  const NotTranslated = 1;
     7  const Translated = 2;
     8  const NotFinished = 3;
     9  const Original = 4;
     10  const NotFinishedNotTranslated = 5;
     11  const Missing1 = 6;
     12  const Missing2 = 7;
    1313}
    1414
     
    1616class PageTranslationList extends Page
    1717{
    18         function ShowFilter($GroupId = 0)
    19         {
    20                 global $TranslationTree;
    21 
    22                 $Filter = array('SQL' => '');
    23 
    24                 $Output = '<form action="?" method="post">'.
    25                                 '<table class="BaseTable"><tr>'.
    26                                 '<th>Zpracování</th>'.
    27                                 '<th>Skupina</th>'.
    28                                 '<th>Verze</th>'.
    29                                 '<th>Jazyk</th>'.
    30                                 '<th>Překladatel</th>'.
    31                                 '<th>Slova</th>'.
    32                                 '<th>Položka</th>'.
    33                                 '<th></th></tr><tr>';
    34 
    35                 // State
    36                 $Filter['State'] = GetParameter('state', 0, true, true);
    37                 $Output .= '<td><select name="state">';
    38                 $StateTypes = array(
    39                   CompletionState::All => 'Všechny',
     18  function ShowFilter($GroupId = 0)
     19  {
     20    global $TranslationTree;
     21
     22    $Filter = array('SQL' => '');
     23
     24    $Output = '<form action="?" method="post">'.
     25        '<table class="BaseTable"><tr>'.
     26        '<th>Zpracování</th>'.
     27        '<th>Skupina</th>'.
     28        '<th>Verze</th>'.
     29        '<th>Jazyk</th>'.
     30        '<th>Překladatel</th>'.
     31        '<th>Slova</th>'.
     32        '<th>Položka</th>'.
     33        '<th></th></tr><tr>';
     34
     35    // State
     36    $Filter['State'] = GetParameter('state', 0, true, true);
     37    $Output .= '<td><select name="state">';
     38    $StateTypes = array(
     39      CompletionState::All => 'Všechny',
    4040      CompletionState::NotTranslated => 'Nepřeložené',
    4141      CompletionState::Translated => 'Přeložené',
     
    4646      CompletionState::Missing2 => 'Chybějící $-Neopravený'
    4747    );
    48                 foreach ($StateTypes as $index=>$StateType) {
    49                 if($Filter['State'] == $index) $Selected = ' selected="selected"';
    50                 else $Selected = '';
    51                   $Output .= '<option value="'.$index.'"'.$Selected.'>'.$StateType.'</option>';
    52     }
    53                 $Output .= '</select></td>';
    54 
    55                 // Translation group
    56                 if($GroupId == 0)
    57                 {
    58                         $Filter['Group'] = GetParameter('group', 0, true, true);
    59                         if($Filter['Group'] != 0)
    60                         {
    61                                 if(isset($TranslationTree[$Filter['Group']]) == false) ErrorMessage('Překladová skupina dle zadaného Id neexistuje.');
    62                                 $Table = $TranslationTree[$Filter['Group']]['TablePrefix'];
    63                         }
    64                 } else
    65                 {
    66                         $Filter['Group'] = $GroupId;
    67                         $Table = $TranslationTree[$Filter['Group']]['TablePrefix'];
    68                 }
    69 
    70                 $Output .= '<td><select name="group" style="width: 80px">';
    71                 if($Filter['Group'] == 0) $Selected = ' selected="selected"';
    72                 else $Selected = '';
    73                 $Output .= '<option value="0"'.$Selected.'>Všechny</option>';
    74                 $DbResult = $this->Database->query('SELECT `Id`,`Name` FROM `Group` ORDER BY `Name`');
    75                 while($Group = $DbResult->fetch_assoc())
    76                 {
    77                         if($Group['Id'] == $Filter['Group']) $Selected = ' selected="selected"';
    78                         else $Selected = '';
    79                         $Output .= '<option value="'.$Group['Id'].'"'.$Selected.'>'.$Group['Name'].'</option>';
    80                 }
    81                 $Output .= '</select></td>';
     48    foreach ($StateTypes as $index=>$StateType) {
     49      if($Filter['State'] == $index) $Selected = ' selected="selected"';
     50      else $Selected = '';
     51      $Output .= '<option value="'.$index.'"'.$Selected.'>'.$StateType.'</option>';
     52    }
     53    $Output .= '</select></td>';
     54
     55    // Translation group
     56    if($GroupId == 0)
     57    {
     58      $Filter['Group'] = GetParameter('group', 0, true, true);
     59      if($Filter['Group'] != 0)
     60      {
     61        if(isset($TranslationTree[$Filter['Group']]) == false) ErrorMessage('Překladová skupina dle zadaného Id neexistuje.');
     62        $Table = $TranslationTree[$Filter['Group']]['TablePrefix'];
     63      }
     64    } else
     65    {
     66      $Filter['Group'] = $GroupId;
     67      $Table = $TranslationTree[$Filter['Group']]['TablePrefix'];
     68    }
     69
     70    $Output .= '<td><select name="group" style="width: 80px">';
     71    if($Filter['Group'] == 0) $Selected = ' selected="selected"';
     72    else $Selected = '';
     73    $Output .= '<option value="0"'.$Selected.'>Všechny</option>';
     74    $DbResult = $this->Database->query('SELECT `Id`,`Name` FROM `Group` ORDER BY `Name`');
     75    while($Group = $DbResult->fetch_assoc())
     76    {
     77      if($Group['Id'] == $Filter['Group']) $Selected = ' selected="selected"';
     78      else $Selected = '';
     79      $Output .= '<option value="'.$Group['Id'].'"'.$Selected.'>'.$Group['Name'].'</option>';
     80    }
     81    $Output .= '</select></td>';
    8282
    8383    if ($this->System->User->Licence(LICENCE_USER))
    84                 $Filter['Version'] = GetParameter('version', $this->System->User->PreferredVersion, true, true);
    85     else 
    86                 $Filter['Version'] = GetParameter('version', 0, true, true);
    87                 if($Filter['Version'] != 0)
    88                 {
    89                         $DbResult = $this->Database->query('SELECT `Id`, `BuildNumber`,`Version` FROM `ClientVersion` WHERE (`Imported` = 1) AND (`Id` ='.$Filter['Version'].')');
    90                         if($DbResult->num_rows > 0)
    91                         {
    92                                 $DbRow = $DbResult->fetch_assoc();
    93                                 $Filter['BuildNumber'] = $DbRow['BuildNumber'];
    94                         } else ErrorMessage('Zadaná verze klienta nenalezena');
    95                 }
    96                 $Output .= '<td><select name="version">';
    97                 if($Filter['Version'] == 0) $Selected = ' selected="selected"';
    98                 else $Selected = '';
    99                 $Output .= '<option value="0"'.$Selected.'>Všechny</option>';
    100                 $DbResult = $this->Database->query('SELECT `Id`, `BuildNumber`,`Version` FROM `ClientVersion` WHERE `Imported` = 1 ORDER BY `BuildNumber` DESC');
    101                 while($Version = $DbResult->fetch_assoc())
    102                 {
    103                         if($Version['Id'] == $Filter['Version']) $Selected = ' selected="selected"';
    104                         else $Selected = '';
    105                         $Output .= '<option value="'.$Version['Id'].'"'.$Selected.'>'.$Version['Version'].'</option>';
    106                 }
    107                 $Output .= '</select></td>';
    108                 if($Filter['Version'] != 0) $VersionFilter = ' AND (`VersionStart` <= '.$Filter['BuildNumber'].') AND (`VersionEnd` >= '.$Filter['BuildNumber'].')';
    109                 else $VersionFilter = '';
    110                 //else $Filter['SQL'] .= ' AND '; DISTINCT(Entry)
    111 
    112                 // Language
    113                 $Filter['Language'] = GetParameter('lang', 0, true, true);
    114                 $Output .= '<td><select name="lang">';
    115                 if($Filter['Language'] == 0) $Selected = ' selected="selected"';
    116                 else $Selected = '';
    117                 $Output .= '<option value="0"'.$Selected.'>Všechny</option>';
    118                 $DbResult = $this->Database->query('SELECT `Id`, `Name` FROM `Language` WHERE `Enabled` = 1 ORDER BY `Name`');
    119                 while($Language = $DbResult->fetch_assoc())
    120                 {
    121                         if($Language['Id'] == $Filter['Language']) $Selected = ' selected="selected"';
    122                         else $Selected = '';
    123                         $Output .= '<option value="'.$Language['Id'].'"'.$Selected.'>'.$Language['Name'].'</option>';
    124                 }
    125                 $Output .= '</select></td>';
    126                 $LanguageFilter = '';
    127                 $LanguageFilterSub = '';
    128                 if($Filter['Language'] != 0) {
     84      $Filter['Version'] = GetParameter('version', $this->System->User->PreferredVersion, true, true);
     85    else
     86      $Filter['Version'] = GetParameter('version', 0, true, true);
     87    if($Filter['Version'] != 0)
     88    {
     89      $DbResult = $this->Database->query('SELECT `Id`, `BuildNumber`,`Version` FROM `ClientVersion` WHERE (`Imported` = 1) AND (`Id` ='.$Filter['Version'].')');
     90      if($DbResult->num_rows > 0)
     91      {
     92        $DbRow = $DbResult->fetch_assoc();
     93        $Filter['BuildNumber'] = $DbRow['BuildNumber'];
     94      } else ErrorMessage('Zadaná verze klienta nenalezena');
     95    }
     96    $Output .= '<td><select name="version">';
     97    if($Filter['Version'] == 0) $Selected = ' selected="selected"';
     98    else $Selected = '';
     99    $Output .= '<option value="0"'.$Selected.'>Všechny</option>';
     100    $DbResult = $this->Database->query('SELECT `Id`, `BuildNumber`,`Version` FROM `ClientVersion` WHERE `Imported` = 1 ORDER BY `BuildNumber` DESC');
     101    while($Version = $DbResult->fetch_assoc())
     102    {
     103      if($Version['Id'] == $Filter['Version']) $Selected = ' selected="selected"';
     104      else $Selected = '';
     105      $Output .= '<option value="'.$Version['Id'].'"'.$Selected.'>'.$Version['Version'].'</option>';
     106    }
     107    $Output .= '</select></td>';
     108    if($Filter['Version'] != 0) $VersionFilter = ' AND (`VersionStart` <= '.$Filter['BuildNumber'].') AND (`VersionEnd` >= '.$Filter['BuildNumber'].')';
     109    else $VersionFilter = '';
     110    //else $Filter['SQL'] .= ' AND '; DISTINCT(Entry)
     111
     112    // Language
     113    $Filter['Language'] = GetParameter('lang', 0, true, true);
     114    $Output .= '<td><select name="lang">';
     115    if($Filter['Language'] == 0) $Selected = ' selected="selected"';
     116    else $Selected = '';
     117    $Output .= '<option value="0"'.$Selected.'>Všechny</option>';
     118    $DbResult = $this->Database->query('SELECT `Id`, `Name` FROM `Language` WHERE `Enabled` = 1 ORDER BY `Name`');
     119    while($Language = $DbResult->fetch_assoc())
     120    {
     121      if($Language['Id'] == $Filter['Language']) $Selected = ' selected="selected"';
     122      else $Selected = '';
     123      $Output .= '<option value="'.$Language['Id'].'"'.$Selected.'>'.$Language['Name'].'</option>';
     124    }
     125    $Output .= '</select></td>';
     126    $LanguageFilter = '';
     127    $LanguageFilterSub = '';
     128    if($Filter['Language'] != 0) {
    129129      $LanguageFilter = ' AND (`T`.`Language` = '.$Filter['Language'].')';
    130130      $LanguageFilterSub = ' AND (`Sub`.`Language` = '.$Filter['Language'].')';
    131131    }
    132132
    133                 // User
    134                 $Filter['User'] = GetParameter('user', 0, true, true);
    135                 $Output .= '<td><select name="user" style="width: 80px">';
    136                 if($Filter['User'] == 0) $Selected = ' selected="selected"';
    137                 else $Selected = '';
    138                 $Output .= '<option value="0"'.$Selected.'>Všichni</option>';
    139                 $DbResult = $this->Database->query('SELECT `Id`, `Name` FROM `User` ORDER BY `Name`');
    140                 while($User = $DbResult->fetch_assoc())
    141                 {
    142                         if($User['Id'] == $Filter['User']) $Selected = ' selected="selected"';
    143                         else $Selected = '';
    144                         $Output .= '<option value="'.$User['Id'].'"'.$Selected.'>'.$User['Name'].'</option>';
    145                 }
    146                 $Output .= '</select></td>';
    147                 if($Filter['User'] != 0) $UserFilter = ' AND (`User` = '.$Filter['User'].')';
    148                 else $UserFilter = '';
    149 
    150                 // Words
    151                 $Filter['Text'] = GetParameter('text', '', false, true);
    152                 $Output .= '<td><input name="text" type="text" style="width: 60px;" value="'.htmlentities($Filter['Text']).'"></td>';
    153                 if($Filter['Text'] != '')
    154                 {
    155                         $Items = array('(`T`.`ID` LIKE "%'.$Filter['Text'].'%")', '(`T`.`Entry` LIKE "%'.$Filter['Text'].'%")');
    156                         if($Filter['Group'] != 0)
    157                                 foreach($TranslationTree[$Filter['Group']]['Items'] as $GroupItem)
    158                                 if($GroupItem['Visible'] == 1)
    159                                 $Items[] = '(`T`.`'.$GroupItem['Column'].'` LIKE "%'.$Filter['Text'].'%")';
    160                         $Filter['SQL'] .= ' AND ('.implode(' OR ', $Items).')';
    161                 }
    162 
    163                 // Entry
    164                 $Filter['Entry'] = GetParameter('entry', '', false, true);
    165                 $Output .= '<td><input name="entry" type="text" style="width: 60px;" value="'.htmlentities($Filter['Entry']).'"></td>';
    166                 if($Filter['Entry'] != '')
    167                 {
    168                         $Filter['SQL'] .= ' AND (`Entry` = "'.$Filter['Entry'].'")';
    169                 }
    170 
    171                 if($Filter['Group'] != 0)
    172                 {
    173                     $WithoutAlter =       ' AND NOT EXISTS(SELECT 1 FROM `'.$Table.'` AS `Sub` WHERE '.
    174                                         '(`Sub`.`Language` <> '.$this->System->Config['OriginalLanguage'].')'.$LanguageFilterSub.
    175                                         ' AND (`Sub`.`Entry` = `T`.`Entry`) AND (`Sub`.`ID` != `T`.`ID`) AND (`Sub`.`Complete` = 1) AND '.
    176                                         '(`Sub`.`VersionStart` = `T`.`VersionStart`) AND (`Sub`.`VersionEnd` = `T`.`VersionEnd`) LIMIT 1 ) ';
    177                                 foreach($TranslationTree[$Filter['Group']]['Items'] as $GroupItem)
    178                                 if($GroupItem['Visible'] == 1) {
    179                                 $ItemsVar[] =    'LENGTH(`T`.`'.$GroupItem['Column'].'`) - LENGTH( REPLACE( `T`.`'.$GroupItem['Column'].'`,  \'$\',  \'\' ) ) '.
     133    // User
     134    $Filter['User'] = GetParameter('user', 0, true, true);
     135    $Output .= '<td><select name="user" style="width: 80px">';
     136    if($Filter['User'] == 0) $Selected = ' selected="selected"';
     137    else $Selected = '';
     138    $Output .= '<option value="0"'.$Selected.'>Všichni</option>';
     139    $DbResult = $this->Database->query('SELECT `Id`, `Name` FROM `User` ORDER BY `Name`');
     140    while($User = $DbResult->fetch_assoc())
     141    {
     142      if($User['Id'] == $Filter['User']) $Selected = ' selected="selected"';
     143      else $Selected = '';
     144      $Output .= '<option value="'.$User['Id'].'"'.$Selected.'>'.$User['Name'].'</option>';
     145    }
     146    $Output .= '</select></td>';
     147    if($Filter['User'] != 0) $UserFilter = ' AND (`User` = '.$Filter['User'].')';
     148    else $UserFilter = '';
     149
     150    // Words
     151    $Filter['Text'] = GetParameter('text', '', false, true);
     152    $Output .= '<td><input name="text" type="text" style="width: 60px;" value="'.htmlentities($Filter['Text']).'"></td>';
     153    if($Filter['Text'] != '')
     154    {
     155      $Items = array('(`T`.`ID` LIKE "%'.$Filter['Text'].'%")', '(`T`.`Entry` LIKE "%'.$Filter['Text'].'%")');
     156      if($Filter['Group'] != 0)
     157        foreach($TranslationTree[$Filter['Group']]['Items'] as $GroupItem)
     158        if($GroupItem['Visible'] == 1)
     159        $Items[] = '(`T`.`'.$GroupItem['Column'].'` LIKE "%'.$Filter['Text'].'%")';
     160      $Filter['SQL'] .= ' AND ('.implode(' OR ', $Items).')';
     161    }
     162
     163    // Entry
     164    $Filter['Entry'] = GetParameter('entry', '', false, true);
     165    $Output .= '<td><input name="entry" type="text" style="width: 60px;" value="'.htmlentities($Filter['Entry']).'"></td>';
     166    if($Filter['Entry'] != '')
     167    {
     168      $Filter['SQL'] .= ' AND (`Entry` = "'.$Filter['Entry'].'")';
     169    }
     170
     171    if($Filter['Group'] != 0)
     172    {
     173        $WithoutAlter =       ' AND NOT EXISTS(SELECT 1 FROM `'.$Table.'` AS `Sub` WHERE '.
     174          '(`Sub`.`Language` <> '.$this->System->Config['OriginalLanguage'].')'.$LanguageFilterSub.
     175          ' AND (`Sub`.`Entry` = `T`.`Entry`) AND (`Sub`.`ID` != `T`.`ID`) AND (`Sub`.`Complete` = 1) AND '.
     176          '(`Sub`.`VersionStart` = `T`.`VersionStart`) AND (`Sub`.`VersionEnd` = `T`.`VersionEnd`) LIMIT 1 ) ';
     177        foreach($TranslationTree[$Filter['Group']]['Items'] as $GroupItem)
     178          if($GroupItem['Visible'] == 1) {
     179            $ItemsVar[] =    'LENGTH(`T`.`'.$GroupItem['Column'].'`) - LENGTH( REPLACE( `T`.`'.$GroupItem['Column'].'`,  \'$\',  \'\' ) ) '.
    180180                           ' < ('.
    181181                                          'SELECT LENGTH(`Sub`.`'.$GroupItem['Column'].'`) - LENGTH( REPLACE( `Sub`.`'.$GroupItem['Column'].'`,  \'$\',  \'\' ) ) FROM `'.$Table.'` AS `Sub` WHERE '.
    182                                                                         ' `Sub`.`Entry` = `T`.`Entry` AND `Sub`.`Language` = '.$this->System->Config['OriginalLanguage'].' AND '.
    183                                                                         '`Sub`.`VersionStart` = `T`.`VersionStart` AND `Sub`.`VersionEnd` = `T`.`VersionEnd` LIMIT 1 '.
     182                                          ' `Sub`.`Entry` = `T`.`Entry` AND `Sub`.`Language` = '.$this->System->Config['OriginalLanguage'].' AND '.
     183                                          '`Sub`.`VersionStart` = `T`.`VersionStart` AND `Sub`.`VersionEnd` = `T`.`VersionEnd` LIMIT 1 '.
    184184                              ')';
    185                       }
    186                         if($Filter['State'] == CompletionState::All) $Filter['SQL'] .= $UserFilter.$VersionFilter.'';
    187                         else if($Filter['State'] == CompletionState::NotTranslated) $Filter['SQL'] .= $VersionFilter.' AND (`T`.`Language` = '.$this->System->Config['OriginalLanguage'].') '.
    188                                         'AND NOT EXISTS(SELECT 1 FROM `'.$Table.'` AS `Sub` WHERE '.
    189                                         '(`Sub`.`Language` <> '.$this->System->Config['OriginalLanguage'].') '.$LanguageFilterSub.$UserFilter.
    190                                         ' AND (`Sub`.`Entry` = `T`.`Entry`) AND (`Sub`.`Complete` = 1) AND '.
    191                                         '(`Sub`.`VersionStart` = `T`.`VersionStart`) AND (`Sub`.`VersionEnd` = `T`.`VersionEnd`))';
    192                         else if($Filter['State'] == CompletionState::Translated) $Filter['SQL'] .= $UserFilter.$LanguageFilter.$VersionFilter.' AND (`T`.`Complete` = 1)';
    193                         else if($Filter['State'] == CompletionState::NotFinished) $Filter['SQL'] .= $UserFilter.$LanguageFilter.$VersionFilter.' AND (`T`.`Language` != '.$this->System->Config['OriginalLanguage'].
    194                         ') AND (`T`.`Complete` = 0)';
    195                         else if($Filter['State'] == CompletionState::Original) $Filter['SQL'] .= $VersionFilter.' AND (`T`.`Language` = '.$this->System->Config['OriginalLanguage'].')';
    196                         else if($Filter['State'] == CompletionState::NotFinishedNotTranslated) $Filter['SQL'] .= $UserFilter.$VersionFilter.$WithoutAlter.
     185          }
     186      if($Filter['State'] == CompletionState::All) $Filter['SQL'] .= $UserFilter.$VersionFilter.'';
     187      else if($Filter['State'] == CompletionState::NotTranslated) $Filter['SQL'] .= $VersionFilter.' AND (`T`.`Language` = '.$this->System->Config['OriginalLanguage'].') '.
     188          'AND NOT EXISTS(SELECT 1 FROM `'.$Table.'` AS `Sub` WHERE '.
     189          '(`Sub`.`Language` <> '.$this->System->Config['OriginalLanguage'].') '.$LanguageFilterSub.$UserFilter.
     190          ' AND (`Sub`.`Entry` = `T`.`Entry`) AND (`Sub`.`Complete` = 1) AND '.
     191          '(`Sub`.`VersionStart` = `T`.`VersionStart`) AND (`Sub`.`VersionEnd` = `T`.`VersionEnd`))';
     192      else if($Filter['State'] == CompletionState::Translated) $Filter['SQL'] .= $UserFilter.$LanguageFilter.$VersionFilter.' AND (`T`.`Complete` = 1)';
     193      else if($Filter['State'] == CompletionState::NotFinished) $Filter['SQL'] .= $UserFilter.$LanguageFilter.$VersionFilter.' AND (`T`.`Language` != '.$this->System->Config['OriginalLanguage'].
     194      ') AND (`T`.`Complete` = 0)';
     195      else if($Filter['State'] == CompletionState::Original) $Filter['SQL'] .= $VersionFilter.' AND (`T`.`Language` = '.$this->System->Config['OriginalLanguage'].')';
     196      else if($Filter['State'] == CompletionState::NotFinishedNotTranslated) $Filter['SQL'] .= $UserFilter.$VersionFilter.$WithoutAlter.
    197197      ' AND (`T`.`Language` != '.$this->System->Config['OriginalLanguage'].
    198                         ') AND (`T`.`Complete` = 0)'.
     198      ') AND (`T`.`Complete` = 0)'.
    199199          '';
    200                         else if($Filter['State'] == CompletionState::Missing1) {
     200      else if($Filter['State'] == CompletionState::Missing1) {
    201201        $Filter['SQL'] .= $UserFilter.$VersionFilter.' AND (`T`.`Complete` = 1) AND `T`.`Language` != '.$this->System->Config['OriginalLanguage'];
    202202        $Filter['SQL'] .= ' AND ('.implode(' OR ', $ItemsVar).') ';
    203                   }
    204                         else if($Filter['State'] == CompletionState::Missing2) {
     203      }
     204      else if($Filter['State'] == CompletionState::Missing2) {
    205205        $Filter['SQL'] .= $UserFilter.$VersionFilter.' AND (`T`.`Complete` = 1) AND `T`.`Language` != '.$this->System->Config['OriginalLanguage'];
    206206        $Filter['SQL'] .= ' '. $WithoutAlter;
    207207        $Filter['SQL'] .= ' AND ('.implode(' OR ', $ItemsVar).') ';
    208                   }
    209                 }
    210 
    211                 /*
    212                 // Ownership
    213                 if(array_key_exists('owner', $_GET) and is_numeric($_GET['owner'])) $Filter['Owner'] = $_GET['owner'];
    214                 else $Filter['Owner'] = 0;
    215                 $Output .= ' <td><select name="owner">';
    216                 if($Filter['Owner'] == 0) $Selected = ' selected="selected"';
    217                 else $Selected = '';
    218                 $Output .= '<option value="0"'.$Selected.'>Všech</option>';
    219                 if($Filter['Owner'] == 1) $Selected = ' selected="selected"';
    220                 else $Selected = '';
    221                 $Output .= '<option value="1"'.$Selected.'>Překladatelův tým</option>';
    222                 if($Filter['Owner'] == 2) $Selected = ' selected="selected"';
    223                 else $Selected = '';
    224                 $Output .= '<option value="2"'.$Selected.'>Překladatele</option>';
    225                 $Output .= '</select></td>';
    226                 if(($Filter['Owner'] == 2) AND ($Filter['User'] != 0)) $Filter['SQL'] .= ' AND (`User` = '.$Filter['User'].')';
    227                 */
    228 
    229                 $Output .= '<td><input type="submit" value="Filtrovat"/></td>';
    230                 $Output .= '</tr></table>';
    231                 $Output .= '</form><br/>';
    232                 $Filter['Output'] = $Output;
    233                 return($Filter);
    234         }
    235 
    236         function ShowTranslationList($Filter)
    237         {
    238                 global $TranslationTree;
    239 
    240                 $Output = $Filter['Output'];
    241                 $Table = $TranslationTree[$Filter['Group']]['TablePrefix'];
    242 
    243                 $Query = 'SELECT `T`.`ModifyTime`, `T`.`ID`, `T`.`Entry`, `T`.`VersionStart`, `T`.`VersionEnd`, '.
    244                                 '`T`.`'.$TranslationTree[$Filter['Group']]['Items'][0]['Column'].'`, '.
    245                                 '`User`.`Name` AS `UserName`, `User`.`ID` AS `UserId`, '.
    246                                 '`Language`.`Name` AS `LanguageName`, `TS`.`Version` AS `VersionStartText`, `TE`.`Version` AS `VersionEndText` '.
    247                                 'FROM `'.$Table.'` AS `T` '.
    248                                 'LEFT JOIN `User` ON `User`.`ID` = `T`.`User` '.
    249                                 'LEFT JOIN `Language` ON `Language`.`ID` = `T`.`Language` '.
    250                                 'LEFT JOIN `ClientVersion` AS `TS` ON `TS`.`BuildNumber` = `T`.`VersionStart` '.
    251                                 'LEFT JOIN `ClientVersion` AS `TE` ON `TE`.`BuildNumber` = `T`.`VersionEnd` '.
    252                                 'WHERE 1 '.$Filter['SQL'];
    253 
    254                 // Get total item count
    255                 $DbResult = $this->Database->query('SELECT COUNT(*) FROM ('.$Query.') AS `TT`');
    256                 $DbRow = $DbResult->fetch_row();
    257                 $PageList = GetPageList($DbRow[0]);
    258 
    259                 $Output .= $PageList['Output'];
    260                 $TableColumns = array(
    261                                 array('Name' => 'ID', 'Title' => 'Číslo'),
    262                                 array('Name' => 'Entry', 'Title' => 'Položka'),
    263                                 array('Name' => $TranslationTree[$Filter['Group']]['Items'][0]['Column'], 'Title' => 'Název'),
    264                                 array('Name' => 'VersionStart', 'Title' => 'Verze'),
    265                                 array('Name' => 'LanguageName', 'Title' => 'Jazyk'),
    266                                 array('Name' => 'UserName', 'Title' => 'Překladatel'),
    267                                 array('Name' => 'ModifyTime', 'Title' => 'Datum'),
    268                 );
    269 
    270                 $Order = GetOrderTableHeader($TableColumns, 'VersionStart', 1);
    271                 $Output .= '<table class="BaseTable">'.
    272                                 $Order['Output'];
    273 
    274                 $DbResult = $this->Database->query($Query.' '.$Order['SQL'].' '.$PageList['SQLLimit']);
    275                 while($Line = $DbResult->fetch_assoc())
    276                 {
    277                         $Output .= '<tr><td><a href="form.php?group='.$Filter['Group'].'&amp;ID='.$Line['ID'].'">'.$Line['ID'].'</a></td><td>'.$Line['Entry'].'</td>'.
    278                                         '<td>'.htmlspecialchars($Line[$TranslationTree[$Filter['Group']]['Items'][0]['Column']]).'</td>'.
    279                                         '<td>'.$Line['VersionStartText'].'-'.$Line['VersionEndText'].'</td>'.
    280                                         '<td>'.$Line['LanguageName'].'</td>'.
    281                                         '<td><a href="user.php?user='.$Line['UserId'].'">'.$Line['UserName'].'</a></td>'.
    282                                         '<td>'.HumanDate($Line['ModifyTime']).'</td>'
     208      }
     209    }
     210
     211    /*
     212    // Ownership
     213    if(array_key_exists('owner', $_GET) and is_numeric($_GET['owner'])) $Filter['Owner'] = $_GET['owner'];
     214    else $Filter['Owner'] = 0;
     215    $Output .= ' <td><select name="owner">';
     216    if($Filter['Owner'] == 0) $Selected = ' selected="selected"';
     217    else $Selected = '';
     218    $Output .= '<option value="0"'.$Selected.'>Všech</option>';
     219    if($Filter['Owner'] == 1) $Selected = ' selected="selected"';
     220    else $Selected = '';
     221    $Output .= '<option value="1"'.$Selected.'>Překladatelův tým</option>';
     222    if($Filter['Owner'] == 2) $Selected = ' selected="selected"';
     223    else $Selected = '';
     224    $Output .= '<option value="2"'.$Selected.'>Překladatele</option>';
     225    $Output .= '</select></td>';
     226    if(($Filter['Owner'] == 2) AND ($Filter['User'] != 0)) $Filter['SQL'] .= ' AND (`User` = '.$Filter['User'].')';
     227    */
     228
     229    $Output .= '<td><input type="submit" value="Filtrovat"/></td>';
     230    $Output .= '</tr></table>';
     231    $Output .= '</form><br/>';
     232    $Filter['Output'] = $Output;
     233    return($Filter);
     234  }
     235
     236  function ShowTranslationList($Filter)
     237  {
     238    global $TranslationTree;
     239
     240    $Output = $Filter['Output'];
     241    $Table = $TranslationTree[$Filter['Group']]['TablePrefix'];
     242
     243    $Query = 'SELECT `T`.`ModifyTime`, `T`.`ID`, `T`.`Entry`, `T`.`VersionStart`, `T`.`VersionEnd`, '.
     244        '`T`.`'.$TranslationTree[$Filter['Group']]['Items'][0]['Column'].'`, '.
     245        '`User`.`Name` AS `UserName`, `User`.`ID` AS `UserId`, '.
     246        '`Language`.`Name` AS `LanguageName`, `TS`.`Version` AS `VersionStartText`, `TE`.`Version` AS `VersionEndText` '.
     247        'FROM `'.$Table.'` AS `T` '.
     248        'LEFT JOIN `User` ON `User`.`ID` = `T`.`User` '.
     249        'LEFT JOIN `Language` ON `Language`.`ID` = `T`.`Language` '.
     250        'LEFT JOIN `ClientVersion` AS `TS` ON `TS`.`BuildNumber` = `T`.`VersionStart` '.
     251        'LEFT JOIN `ClientVersion` AS `TE` ON `TE`.`BuildNumber` = `T`.`VersionEnd` '.
     252        'WHERE 1 '.$Filter['SQL'];
     253
     254    // Get total item count
     255    $DbResult = $this->Database->query('SELECT COUNT(*) FROM ('.$Query.') AS `TT`');
     256    $DbRow = $DbResult->fetch_row();
     257    $PageList = GetPageList($DbRow[0]);
     258
     259    $Output .= $PageList['Output'];
     260    $TableColumns = array(
     261        array('Name' => 'ID', 'Title' => 'Číslo'),
     262        array('Name' => 'Entry', 'Title' => 'Položka'),
     263        array('Name' => $TranslationTree[$Filter['Group']]['Items'][0]['Column'], 'Title' => 'Název'),
     264        array('Name' => 'VersionStart', 'Title' => 'Verze'),
     265        array('Name' => 'LanguageName', 'Title' => 'Jazyk'),
     266        array('Name' => 'UserName', 'Title' => 'Překladatel'),
     267        array('Name' => 'ModifyTime', 'Title' => 'Datum'),
     268    );
     269
     270    $Order = GetOrderTableHeader($TableColumns, 'VersionStart', 1);
     271    $Output .= '<table class="BaseTable">'.
     272        $Order['Output'];
     273
     274    $DbResult = $this->Database->query($Query.' '.$Order['SQL'].' '.$PageList['SQLLimit']);
     275    while($Line = $DbResult->fetch_assoc())
     276    {
     277      $Output .= '<tr><td><a href="form.php?group='.$Filter['Group'].'&amp;ID='.$Line['ID'].'">'.$Line['ID'].'</a></td><td>'.$Line['Entry'].'</td>'.
     278          '<td>'.htmlspecialchars($Line[$TranslationTree[$Filter['Group']]['Items'][0]['Column']]).'</td>'.
     279          '<td>'.$Line['VersionStartText'].'-'.$Line['VersionEndText'].'</td>'.
     280          '<td>'.$Line['LanguageName'].'</td>'.
     281          '<td><a href="user.php?user='.$Line['UserId'].'">'.$Line['UserName'].'</a></td>'.
     282          '<td>'.HumanDate($Line['ModifyTime']).'</td>'
    283283          ;
    284                         '</tr>';
    285                 }
    286                 $Output .= '</table>'.
    287                                 $PageList['Output'];
    288                 return($Output);
    289         }
    290 
    291         function ShowGroupList($Filter)
    292         {
    293                 global $TranslationTree;
    294 
    295           $Output = $Filter['Output'];
    296 
    297                 $Output .= '<table class="BaseTable"><tr><th>Skupina</th><th>Počet</th></tr>';
    298                 $Total = 0;
    299                 foreach($TranslationTree as $Group)
    300                         if($Group['TablePrefix'] != '')
    301                         {
    302                                 $Filter = $this->ShowFilter($Group['Id']);
    303                                 $ID = $this->Database->query('SELECT COUNT(*) FROM `'.$Group['TablePrefix'].'` AS `T` WHERE 1 '.$Filter['SQL']);
    304                                 $Line = $ID->fetch_row();
    305                                 if ($Line[0] <> '0')
    306                                   $Output .= '<tr><td><a href="?group='.$Group['Id'].'">'.$Group['Name'].'</td><td>'.$Line[0].'</a></tr>';
    307                                 $Total += $Line[0];
    308                         }
    309                         $Output .= '<tr><td><strong>Celkem</strong></td><td><strong>'.$Total.'</strong></td></tr>'.
    310                                         '</table>';
    311                         return($Output);
    312         }
    313 
    314         function ShowGroupTypeList()
    315         {
    316                 $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Group`');
    317                 $DbRow = $DbResult->fetch_row();
    318                 $PageList = GetPageList($DbRow[0]);
    319                 $Output = '<h3>Seznam překladových skupin</h3>'.
    320                                 $PageList['Output'];
    321 
    322                 $Output .= '<table class="BaseTable">';
    323                 $TableColumns = array(
    324                                 array('Name' => 'Name', 'Title' => 'Jméno'),
    325                                 array('Name' => 'SourceType', 'Title' => 'Typ zdroje'),
    326                                 array('Name' => '', 'Title' => 'Zdroje'),
    327                                 array('Name' => 'LastImport', 'Title' => 'Datum posledního importu'),
    328                                 array('Name' => 'LastVersion', 'Title' => 'Verze posledního importu'),
    329                 );
    330                 if($this->System->User->Licence(LICENCE_ADMIN))
    331                   $TableColumns[] = array('Name' => '', 'Title' => 'Akce');
    332 
    333                 $Order = GetOrderTableHeader($TableColumns, 'Name', 0);
    334                 $Output .= $Order['Output'];
    335 
    336                 $DbResult = $this->Database->query('SELECT * FROM `Group`'.$Order['SQL'].$PageList['SQLLimit']);
    337                 while($Group = $DbResult->fetch_assoc())
    338                 {
    339                         $Output .= '<tr><td><a href="?group='.$Group['Id'].'&amp;action=filter">'.$Group['Name'].'</a></td><td>'.$Group['SourceType'].'</td><td>';
    340                         if($Group['MangosTable'] != '') $Output .= $Group['MangosTable'].'.sql ';
    341                         if($Group['DBCFileName'] != '') $Output .= $Group['DBCFileName'].'.dbc ';
    342                         if($Group['LuaFileName'] != '') $Output .= $Group['LuaFileName'].'.lua ';
    343                         $Output .= '</td>';
     284      '</tr>';
     285    }
     286    $Output .= '</table>'.
     287        $PageList['Output'];
     288    return($Output);
     289  }
     290
     291  function ShowGroupList($Filter)
     292  {
     293    global $TranslationTree;
     294
     295    $Output = $Filter['Output'];
     296
     297    $Output .= '<table class="BaseTable"><tr><th>Skupina</th><th>Počet</th></tr>';
     298    $Total = 0;
     299    foreach($TranslationTree as $Group)
     300      if($Group['TablePrefix'] != '')
     301      {
     302        $Filter = $this->ShowFilter($Group['Id']);
     303        $ID = $this->Database->query('SELECT COUNT(*) FROM `'.$Group['TablePrefix'].'` AS `T` WHERE 1 '.$Filter['SQL']);
     304        $Line = $ID->fetch_row();
     305        if ($Line[0] <> '0')
     306          $Output .= '<tr><td><a href="?group='.$Group['Id'].'">'.$Group['Name'].'</td><td>'.$Line[0].'</a></tr>';
     307        $Total += $Line[0];
     308      }
     309      $Output .= '<tr><td><strong>Celkem</strong></td><td><strong>'.$Total.'</strong></td></tr>'.
     310          '</table>';
     311      return($Output);
     312  }
     313
     314  function ShowGroupTypeList()
     315  {
     316    $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Group`');
     317    $DbRow = $DbResult->fetch_row();
     318    $PageList = GetPageList($DbRow[0]);
     319    $Output = '<h3>Seznam překladových skupin</h3>'.
     320        $PageList['Output'];
     321
     322    $Output .= '<table class="BaseTable">';
     323    $TableColumns = array(
     324        array('Name' => 'Name', 'Title' => 'Jméno'),
     325        array('Name' => 'SourceType', 'Title' => 'Typ zdroje'),
     326        array('Name' => '', 'Title' => 'Zdroje'),
     327        array('Name' => 'LastImport', 'Title' => 'Datum posledního importu'),
     328        array('Name' => 'LastVersion', 'Title' => 'Verze posledního importu'),
     329    );
     330    if($this->System->User->Licence(LICENCE_ADMIN))
     331      $TableColumns[] = array('Name' => '', 'Title' => 'Akce');
     332
     333    $Order = GetOrderTableHeader($TableColumns, 'Name', 0);
     334    $Output .= $Order['Output'];
     335
     336    $DbResult = $this->Database->query('SELECT * FROM `Group`'.$Order['SQL'].$PageList['SQLLimit']);
     337    while($Group = $DbResult->fetch_assoc())
     338    {
     339      $Output .= '<tr><td><a href="?group='.$Group['Id'].'&amp;action=filter">'.$Group['Name'].'</a></td><td>'.$Group['SourceType'].'</td><td>';
     340      if($Group['MangosTable'] != '') $Output .= $Group['MangosTable'].'.sql ';
     341      if($Group['DBCFileName'] != '') $Output .= $Group['DBCFileName'].'.dbc ';
     342      if($Group['LuaFileName'] != '') $Output .= $Group['LuaFileName'].'.lua ';
     343      $Output .= '</td>';
    344344      if($this->System->User->Licence(LICENCE_ADMIN))
    345345        $Output .= '<td><a title="Změny po posledním importu u vybrané překladové skupiny" href="log.php?group='.
    346                                   $Group['Id'].'&amp;type=11">'.HumanDate($Group['LastImport']).'</a></td>';
     346          $Group['Id'].'&amp;type=11">'.HumanDate($Group['LastImport']).'</a></td>';
    347347        else $Output .= '<td>'.HumanDate($Group['LastImport']).'</td>';
    348348      $Output .= '<td><a href="'.$this->System->Link('/client-version/?action=item&amp;id='.
    349349        GetVersionWOWId($Group['LastVersion'])).'">'.GetVersionWOW($Group['LastVersion']).'</a></td>';
    350                   if($this->System->User->Licence(LICENCE_ADMIN))
    351                     $Output .= '<td><a href="?action=groupdelete&amp;id='.$Group['Id'].'">Smazat</a></td>';
    352                   $Output .= '</tr>';
    353 
    354                 }
    355                 $Output .= '</table>'.
    356                                 '<br /><a title="Záznam změn po importu" href="log.php?type=11">Záznam změn v textech při importu</a><br/>';
    357                 if($this->System->User->Licence(LICENCE_ADMIN)) $Output .= '<a href="?action=groupadd">Přidat překladovou skupinu</a>';
    358                 return($Output);
    359         }
    360 
    361         function ShowMenu()
    362         {
    363                 global $TranslationTree;
    364 
    365                 $GroupId = GetParameter('group', 0, true);
    366                 if($GroupId == 0) $Output = ShowMessage('Skupina nenalezena', MESSAGE_CRITICAL);
    367                 else {
    368                         $Table = $TranslationTree[$GroupId]['TablePrefix'];
    369 
    370                         $Output = '<h3>Základní filtrování textů</h3><br/>'.
    371                                         '<table class="BaseTable"><tr><th>Odkaz</th><th>Popis</th></tr>'.
    372                                         '<tr><td><a title="Všechny dostupné texty ve skupině" href="?group='.$GroupId.'&amp;state=4">Všechny</a></td>'.
    373                                         '<td>Zobrazit všechny dostupné anglické texty ve skupině.</td></tr>'.
    374                                         '<tr><td><a title="Přeložené texty, můžete zde hlasovat, nebo text opravovat" href="?group='.$GroupId.'&amp;state=2">Přeložené</a></td>'.
    375                                         '<td>Zobrazit pouze již přeložené texty.</td></tr>'.
    376                                         '<tr><td><a title="Nepřeložené texty" href="?group='.$GroupId.'&amp;state=1">Nepřeložené</a></td>'.
    377                                         '<td>Dosud nepřeložené texty, které je potřeba přeložit.</td></tr>'.
    378                                         '<tr><td><a title="Nedokončené texty" href="?group='.$GroupId.'&amp;state=3">Nedokončené</a></td>'.
    379                                         '<td>Texty označené jako rozpracované.</td></tr>';
    380 
    381                         if($this->System->User->Licence(LICENCE_USER))
    382                         {
    383                                 $Output .= '<tr><td><a title="Nedokončené texty" href="?group='.$GroupId.'&amp;state=3&amp;user='.$this->System->User->Id.'">Moje nedokončené</a></td>
    384                                 <td>Nedokončené texty přihlášeného uživatele</td></tr>
    385                                 <tr><td><a title="Přeložené texty přihlášeného uživatele" href="?group='.$GroupId.'&amp;state=2&amp;user='.$this->System->User->Id.'">Moje přeložené</a></td>
    386                                 <td>Přeložené texty přihlášeného uživatele</td></tr>';
    387                         }
    388 
    389                         $Output .= '<tr><td><form action="?group='.$GroupId.'&amp;entry=" method="post"><div>'.
    390                                         '<input type="text" name="text" size="8" />'.
    391                                         '<input type="submit" value="Hledat" />'.
    392                                         '</div></form>'.
    393                                         '</td><td>Vyhledat pomocí textu</td></tr>';
    394 
    395                         $Output .= '<tr><td><form action="?group='.$GroupId.'&amp;text=" method="post"><div>'.
    396                                         '<input type="text" name="entry" size="8" />'.
    397                                         '<input type="submit" value="Hledat" />'.
    398                                         '</div></form>'.
    399                                         '</td><td>Zobrazit podle ID textu v databázi MaNGOSu</td></tr>';
    400 
    401                         $Output .= '</table>';
    402                 }
    403                 return($Output);
    404         }
    405 
    406         function ShowGroupAdd()
    407         {
    408                 if($this->System->User->Licence(LICENCE_ADMIN))
    409                 {
    410                         $Output = '<h3>Vložení nové překladové skupiny</h3>'.
    411                                         '<form action="?action=groupaddfinish" method="post">'.
    412                                         '<table>'.
    413                                         '<tr><td>Název:</td><td><input type="text" name="Name"/></td></tr>'.
    414                                         '<tr><td>Název tabulky v databázi:</td><td>Text<input type="text" name="TablePrefix"/></td></tr>'.
    415                                         '<tr><td colspan="2"><input type="submit" name="add" value="Přidat"/></td></tr>'.
    416                                         '</table></form>';
    417                 } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
    418                 return($Output);
    419         }
    420 
    421         function ShowGroupAddFinish()
    422         {
    423                 if($this->System->User->Licence(LICENCE_ADMIN))
    424                 {
    425                         $TableName = 'Text'.$_POST['TablePrefix'];
    426                         $DbResult = $this->System->Database->select('Group', 'Id', 'TablePrefix="'.$TableName.'"');
    427                         if($DbResult->num_rows == 0)
    428                   {
    429 
    430                         $this->System->Database->query('CREATE TABLE IF NOT EXISTS `'.$TableName.'` (
     350      if($this->System->User->Licence(LICENCE_ADMIN))
     351        $Output .= '<td><a href="?action=groupdelete&amp;id='.$Group['Id'].'">Smazat</a></td>';
     352      $Output .= '</tr>';
     353
     354    }
     355    $Output .= '</table>'.
     356        '<br /><a title="Záznam změn po importu" href="log.php?type=11">Záznam změn v textech při importu</a><br/>';
     357    if($this->System->User->Licence(LICENCE_ADMIN)) $Output .= '<a href="?action=groupadd">Přidat překladovou skupinu</a>';
     358    return($Output);
     359  }
     360
     361  function ShowMenu()
     362  {
     363    global $TranslationTree;
     364
     365    $GroupId = GetParameter('group', 0, true);
     366    if($GroupId == 0) $Output = ShowMessage('Skupina nenalezena', MESSAGE_CRITICAL);
     367    else {
     368      $Table = $TranslationTree[$GroupId]['TablePrefix'];
     369
     370      $Output = '<h3>Základní filtrování textů</h3><br/>'.
     371          '<table class="BaseTable"><tr><th>Odkaz</th><th>Popis</th></tr>'.
     372          '<tr><td><a title="Všechny dostupné texty ve skupině" href="?group='.$GroupId.'&amp;state=4">Všechny</a></td>'.
     373          '<td>Zobrazit všechny dostupné anglické texty ve skupině.</td></tr>'.
     374          '<tr><td><a title="Přeložené texty, můžete zde hlasovat, nebo text opravovat" href="?group='.$GroupId.'&amp;state=2">Přeložené</a></td>'.
     375          '<td>Zobrazit pouze již přeložené texty.</td></tr>'.
     376          '<tr><td><a title="Nepřeložené texty" href="?group='.$GroupId.'&amp;state=1">Nepřeložené</a></td>'.
     377          '<td>Dosud nepřeložené texty, které je potřeba přeložit.</td></tr>'.
     378          '<tr><td><a title="Nedokončené texty" href="?group='.$GroupId.'&amp;state=3">Nedokončené</a></td>'.
     379          '<td>Texty označené jako rozpracované.</td></tr>';
     380
     381      if($this->System->User->Licence(LICENCE_USER))
     382      {
     383        $Output .= '<tr><td><a title="Nedokončené texty" href="?group='.$GroupId.'&amp;state=3&amp;user='.$this->System->User->Id.'">Moje nedokončené</a></td>
     384        <td>Nedokončené texty přihlášeného uživatele</td></tr>
     385        <tr><td><a title="Přeložené texty přihlášeného uživatele" href="?group='.$GroupId.'&amp;state=2&amp;user='.$this->System->User->Id.'">Moje přeložené</a></td>
     386        <td>Přeložené texty přihlášeného uživatele</td></tr>';
     387      }
     388
     389      $Output .= '<tr><td><form action="?group='.$GroupId.'&amp;entry=" method="post"><div>'.
     390          '<input type="text" name="text" size="8" />'.
     391          '<input type="submit" value="Hledat" />'.
     392          '</div></form>'.
     393          '</td><td>Vyhledat pomocí textu</td></tr>';
     394
     395      $Output .= '<tr><td><form action="?group='.$GroupId.'&amp;text=" method="post"><div>'.
     396          '<input type="text" name="entry" size="8" />'.
     397          '<input type="submit" value="Hledat" />'.
     398          '</div></form>'.
     399          '</td><td>Zobrazit podle ID textu v databázi MaNGOSu</td></tr>';
     400
     401      $Output .= '</table>';
     402    }
     403    return($Output);
     404  }
     405
     406  function ShowGroupAdd()
     407  {
     408    if($this->System->User->Licence(LICENCE_ADMIN))
     409    {
     410      $Output = '<h3>Vložení nové překladové skupiny</h3>'.
     411          '<form action="?action=groupaddfinish" method="post">'.
     412          '<table>'.
     413          '<tr><td>Název:</td><td><input type="text" name="Name"/></td></tr>'.
     414          '<tr><td>Název tabulky v databázi:</td><td>Text<input type="text" name="TablePrefix"/></td></tr>'.
     415          '<tr><td colspan="2"><input type="submit" name="add" value="Přidat"/></td></tr>'.
     416          '</table></form>';
     417    } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
     418    return($Output);
     419  }
     420
     421  function ShowGroupAddFinish()
     422  {
     423    if($this->System->User->Licence(LICENCE_ADMIN))
     424    {
     425      $TableName = 'Text'.$_POST['TablePrefix'];
     426      $DbResult = $this->System->Database->select('Group', 'Id', 'TablePrefix="'.$TableName.'"');
     427      if($DbResult->num_rows == 0)
     428      {
     429
     430      $this->System->Database->query('CREATE TABLE IF NOT EXISTS `'.$TableName.'` (
    431431  `ID` int(11) NOT NULL AUTO_INCREMENT,
    432432  `Entry` int(11) NOT NULL,
     
    455455  ADD CONSTRAINT `'.$TableName.'_ibfk_2` FOREIGN KEY (`User`) REFERENCES `User` (`ID`),
    456456  ADD CONSTRAINT `'.$TableName.'_ibfk_3` FOREIGN KEY (`Take`) REFERENCES `'.$TableName.'` (`ID`);');
    457                 $DbResult = $this->System->Database->insert('Group', array('Name' => $_POST['Name'],
    458                   'TablePrefix' => $TableName, 'PrimaryKeyItem' => 'Entry'));
    459                 $Group = $this->System->Database->insert_id;
    460                 $this->System->Database->insert('GroupItem', array('Group' => $Group,
     457    $DbResult = $this->System->Database->insert('Group', array('Name' => $_POST['Name'],
     458      'TablePrefix' => $TableName, 'PrimaryKeyItem' => 'Entry'));
     459    $Group = $this->System->Database->insert_id;
     460    $this->System->Database->insert('GroupItem', array('Group' => $Group,
    461461      'Name' => 'Jméno', 'Column' => 'Name', 'Visible' => 1));
    462462    $Output = ShowMessage('Překladová skupina vytvořena', MESSAGE_INFORMATION);
    463                   } else $Output = ShowMessage('Překladová skupina '.$TableName.' již existuje', MESSAGE_CRITICAL);
     463      } else $Output = ShowMessage('Překladová skupina '.$TableName.' již existuje', MESSAGE_CRITICAL);
    464464      $Output .= $this->ShowGroupTypeList();
    465                 } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
    466     return($Output);
    467         }
    468 
    469         function ShowGroupDelete()
    470         {
    471                 if($this->System->User->Licence(LICENCE_ADMIN))
    472                 {
    473                         $DbResult = $this->System->Database->select('Group', '*', 'Id='.$_GET['id']);
    474                         if($DbResult->num_rows == 1)
    475                   {
    476                         $Group = $DbResult->fetch_assoc();
    477                     $this->Database->query('DROP TABLE `'.$Group['TablePrefix'].'`');
    478                     $this->Database->query('DELETE FROM `GroupItem` WHERE `Group`='.$Group['Id']);
    479                     $this->Database->query('DELETE FROM `Group` WHERE `Id`='.$Group['Id']);
    480                     $Output = ShowMessage('Překladová skupina '.$Group['Name'].' smazána', MESSAGE_INFORMATION);
    481                   } else $Output = ShowMessage('Překladová skupina nenalezena', MESSAGE_CRITICAL);
    482                 } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
    483                 $Output .= $this->ShowGroupTypeList();
    484                 return($Output);
    485         }
    486 
    487         function Show()
    488         {
    489                 $this->Title = T('Translation groups');
    490                 $Action = GetParameter('action', '');
    491                 if($Action == 'filter') $Output = $this->ShowMenu();
    492                 else if($Action == 'grouplist') $Output = $this->ShowGroupTypeList();
    493                 else if($Action == 'groupadd') $Output = $this->ShowGroupAdd();
    494                 else if($Action == 'groupdelete') $Output = $this->ShowGroupDelete();
    495                 else if($Action == 'groupaddfinish') $Output = $this->ShowGroupAddFinish();
    496                 else
    497                 {
    498                         $Filter = $this->ShowFilter();
    499                         if($Filter['Group'] > 0) $Output = $this->ShowTranslationList($Filter);
    500                         else $Output = $this->ShowGroupList($Filter);
    501                 }
    502                 return($Output);
    503         }
     465    } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
     466    return($Output);
     467  }
     468
     469  function ShowGroupDelete()
     470  {
     471    if($this->System->User->Licence(LICENCE_ADMIN))
     472    {
     473      $DbResult = $this->System->Database->select('Group', '*', 'Id='.$_GET['id']);
     474      if($DbResult->num_rows == 1)
     475      {
     476        $Group = $DbResult->fetch_assoc();
     477        $this->Database->query('DROP TABLE `'.$Group['TablePrefix'].'`');
     478        $this->Database->query('DELETE FROM `GroupItem` WHERE `Group`='.$Group['Id']);
     479        $this->Database->query('DELETE FROM `Group` WHERE `Id`='.$Group['Id']);
     480        $Output = ShowMessage('Překladová skupina '.$Group['Name'].' smazána', MESSAGE_INFORMATION);
     481      } else $Output = ShowMessage('Překladová skupina nenalezena', MESSAGE_CRITICAL);
     482    } else $Output = ShowMessage(T('Access denied'), MESSAGE_CRITICAL);
     483    $Output .= $this->ShowGroupTypeList();
     484    return($Output);
     485  }
     486
     487  function Show()
     488  {
     489    $this->Title = T('Translation groups');
     490    $Action = GetParameter('action', '');
     491    if($Action == 'filter') $Output = $this->ShowMenu();
     492    else if($Action == 'grouplist') $Output = $this->ShowGroupTypeList();
     493    else if($Action == 'groupadd') $Output = $this->ShowGroupAdd();
     494    else if($Action == 'groupdelete') $Output = $this->ShowGroupDelete();
     495    else if($Action == 'groupaddfinish') $Output = $this->ShowGroupAddFinish();
     496    else
     497    {
     498      $Filter = $this->ShowFilter();
     499      if($Filter['Group'] > 0) $Output = $this->ShowTranslationList($Filter);
     500      else $Output = $this->ShowGroupList($Filter);
     501    }
     502    return($Output);
     503  }
    504504}
Note: See TracChangeset for help on using the changeset viewer.