Ignore:
Timestamp:
Aug 24, 2015, 11:19:26 PM (9 years ago)
Author:
chronos
Message:
  • Modified: Update only translation items which have modified text items during translation save.
  • Modified: Tabs replaced by spaces.
Location:
trunk/Modules/Translation
Files:
3 edited

Legend:

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

    r832 r833  
    33class PageTranslationSave extends Page
    44{
    5         function Translate($Group, $TextID, $Complete, $Language)
    6         {
    7                 $Output = '';
    8                 $Table = $Group['TablePrefix'];
    9                 $CompleteText = array('nedokončený', 'dokončený');
    10 
    11                 // Get source text record from database by ID
    12                 $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE `ID`='.$TextID);
    13                 if($DbResult->num_rows > 0)
    14                 {
    15                         $SourceText = $DbResult->fetch_assoc();
    16 
    17                         // Get data for english original
    18                         $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`Entry`='.$SourceText['Entry'].') '.
    19                                         'AND (`Language` = '.$this->System->Config['OriginalLanguage'].') AND (`VersionStart` = '.$SourceText['VersionStart'].') '.
    20                                         'AND (`VersionEnd` = '.$SourceText['VersionEnd'].')');
    21                         if($DbResult->num_rows > 0)
    22                         {
    23                                 $EnglishText = $DbResult->fetch_assoc();
    24 
    25                                 // Get all similar english texts
    26                                 $Filter = array();
    27                                 foreach($Group['Items'] as $GroupItem)
    28                                         if(($GroupItem['Visible'] == 1))
    29                                                 $Filter[] = '(`'.$GroupItem['Column'].'` = "'.addslashes($EnglishText[$GroupItem['Column']]).'")';
    30                                         if(count($Filter) > 0) $Filter = ' AND ('.implode(' OR ', $Filter).')';
    31 
    32                                         $Query = 'SELECT * FROM `'.$Table.'` WHERE (`Language` = '.$this->System->Config['OriginalLanguage'].')'.$Filter;
    33                                         $DbResult = $this->Database->query($Query);
    34                                         while($EnglishFound = $DbResult->fetch_assoc())
    35                                         {
    36                                                 // Get user translation paired to found english item entry
    37                                                 //TODO: and need update sql
    38                                                 //SELECT T.ID,T.Take,sub1.ID,T.`VersionStart`,T.`VersionEnd`,sub1.`VersionStart` as OrigStart,sub1.`VersionEnd` as OrigEnd FROM `TextSpell` as T
    39                                                 //JOIN `TextSpell` as sub1 ON sub1.Language = 0 AND T.`Entry` = sub1.`Entry` AND T.`VersionStart` = sub1.`VersionStart`
    40                                                 //WHERE T.Language != 0 AND T.`VersionEnd` != sub1.`VersionEnd`
    41                                                 $DbResult2 = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`User` = '.$this->System->User->Id.
    42                                                                 ') AND (`Entry` = '.$EnglishFound['Entry'].') AND (`VersionStart` = '.$EnglishFound['VersionStart'].
    43                                                                 ') AND (`VersionEnd` = '.$EnglishFound['VersionEnd'].')');
    44                                                 if($DbResult2->num_rows > 0)
    45                                                 {
    46                                                         // Update existed user translation
    47                                                         $ExistedText = $DbResult2->fetch_assoc();
    48                                                         $Values = '`Language` = '.$Language;
    49 
    50                                                         $UpdateModifyTime = false;
    51                                                         $Completable = true;
    52                                                         $CompleteParts = $ExistedText['CompleteParts'];
    53                                                         foreach($Group['Items'] as $GroupItem)
    54                                                         {
    55                                                                 if($GroupItem['Visible'] == 1)
    56                                                                 {
    57                                                                         if($SourceText[$GroupItem['Column']] != $ExistedText[$GroupItem['Column']])
    58                                                                                 $UpdateModifyTime = true;
    59 
    60                                                                         if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']])
    61                                                                         {
    62                                                                                 if(array_key_exists($GroupItem['Column'], $_POST))
    63                                                                                 {
    64                                                                                         $Values .= ', `'.$GroupItem['Column'].'` = "'.$_POST[$GroupItem['Column']].'"';
    65                                                                                         $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
    66                                                                                 }
    67                                                                         }
    68                                                                         if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and
    69                                                                                         ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false;
    70                                                                 }
    71                                                         }
    72                                                         if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed
    73                                                         else $NewComplete = 0;
    74                                                         if($SourceText['ID'] == $ExistedText['ID'])
    75                                                         {
    76                                                                 $NewComplete = $Complete; // Our original user text, set complete according user choice
    77                                                                 if($Complete == 1)
    78                                                                 {
    79                                                                         foreach($Group['Items'] as $GroupItem)
    80                                                                                 if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
    81                                                                 }
    82                                                         }
    83                                                         $Values .= ', `Complete`='.$NewComplete.', `CompleteParts` = '.$CompleteParts;
    84 
    85                                                         if($UpdateModifyTime) $Values .= ', `ModifyTime` = NOW()';
    86 
    87                                                         // Update user translation
    88                                                         $this->Database->query('UPDATE `'.$Table.'` SET '.$Values.' WHERE `ID` = '.$ExistedText['ID']);
    89 
    90                                                         $Output .= 'Změny v překladu <a href="'.$this->System->Link('/form.php?group='.
    91                                                                         $Group['Id'].'&amp;ID='.$ExistedText['ID']).'">'.$ExistedText['ID'].'</a> ('.
    92                                                                         $ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.<br />';
    93                                                         $this->System->ModuleManager->Modules['Log']->WriteLog('Změny v překladu <a href="'.
    94                                                                         $this->System->Link('/form.php?group='.$Group['Id'].'&amp;ID='.$ExistedText['ID']).'">'.
    95                                                                         $ExistedText['ID'].'</a> ('.$ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.', LOG_TYPE_TRANSLATION);
    96                                                 } else
    97                                                 {
    98                                                         // Insert new user translation
    99                                                         $Columns = '`Entry`, `VersionStart`, `VersionEnd`, `Language`, `User`, `Take`, `ModifyTime`';
    100                                                         $Values = $EnglishFound['Entry'].', '.$EnglishFound['VersionStart'].', '.
    101                                                                         $EnglishFound['VersionEnd'].', '.$Language.', '.$this->System->User->Id.', '.$EnglishFound['ID'].', NOW()';
    102 
    103                                                         $CompleteParts = 0;
    104                                                         $Completable = true;
    105                                                         foreach($Group['Items'] as $GroupItem)
    106                                                         {
    107                                                                 $Columns .= ', `'.$GroupItem['Column'].'`';
    108                                                                 if($GroupItem['Visible'] == 1)
    109                                                                 {
    110                                                                         if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']])
    111                                                                         {
    112                                                                                 // Read form user data
    113                                                                                 if(array_key_exists($GroupItem['Column'], $_POST))
    114                                                                                 {
    115                                                                                         $Values .= ', "'.$_POST[$GroupItem['Column']].'"';
    116                                                                                         $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
    117                                                                                 } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"';
    118                                                                         } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"';
    119                                                                         if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false;
    120                                                                 } else
    121                                                                 {
    122                                                                         // Read from english text
    123                                                                         $Values .= ', "'.$EnglishFound[$GroupItem['Column']].'"';
    124                                                                 }
    125                                                         }
    126                                                         if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed
    127                                                         else $NewComplete = 0;
    128                                                         if($SourceText['ID'] == $EnglishFound['ID'])
    129                                                         {
    130                                                                 $NewComplete = $Complete; // Our original user text, set complete according user choice
    131                                                                 if($Complete == 1)
    132                                                                 {
    133                                                                         foreach($Group['Items'] as $GroupItem)
    134                                                                                 if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
    135                                                                 }
    136                                                         }
    137                                                         $Columns .= ', `Complete`, `CompleteParts`';
    138                                                         $Values .= ', '.$NewComplete.', '.$CompleteParts;
    139                                                         $this->Database->query('INSERT INTO `'.$Table.'` ('.$Columns.') VALUES ('.$Values.')');
    140                                                         $LastID = $this->Database->insert_id;
    141 
    142                                                         $Output .= 'Text <a href="'.$this->System->Link('/form.php?group='.
    143                                                                         $Group['Id'].'&amp;ID='.$LastID).'">'.$LastID.'</a> ze skupiny <a href="TranslationList.php?group='.
    144                                                                         $Group['Id'].'&amp;user=0&amp;action=filter">'.$Group['Name'].'</a> uložen jako '.
    145                                                                         $CompleteText[$NewComplete].'. Převzat z <a href="form.php?group='.$Group['Id'].'&amp;ID='.$TextID.'">'.$TextID.'</a>.<br/>';
    146                                                         $this->System->ModuleManager->Modules['Log']->WriteLog('Text <a href="'.
    147                                                                         $this->System->Link('/form.php?group='.$Group['Id'].'&amp;ID='.$LastID).'">'.
    148                                                                         $LastID.'</a> ze skupiny <a href="TranslationList.php?group='.
    149                                                                         $Group['Id'].'&amp;user=0&amp;text=&amp;entry=&amp;action=filter">'.
    150                                                                         $Group['Name'].'</a> uložen jako '.$CompleteText[$NewComplete].
    151                                                                         '. Převzat z <a href="form.php?group='.$Group['Id'].'&amp;ID='.$TextID.'">'.$TextID.'</a>.', LOG_TYPE_TRANSLATION);
    152                                                 }
    153                                         }
    154                         } else $Output .= ShowMessage('Anglický originál k překladu nenalezen.', MESSAGE_CRITICAL);
    155                 } else $Output .= ShowMessage('Zadaná položka nenalezena.', MESSAGE_CRITICAL);
    156                 return($Output);
    157         }
     5  function Translate($Group, $TextID, $Complete, $Language)
     6  {
     7    $Output = '';
     8    $Table = $Group['TablePrefix'];
     9    $CompleteText = array('nedokončený', 'dokončený');
     10
     11    // Get source text record from database by ID
     12    $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE `ID`='.$TextID);
     13    if($DbResult->num_rows > 0)
     14    {
     15      $SourceText = $DbResult->fetch_assoc();
     16
     17      // Get data for english original
     18      $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`Entry`='.$SourceText['Entry'].') '.
     19          'AND (`Language` = '.$this->System->Config['OriginalLanguage'].') AND (`VersionStart` = '.$SourceText['VersionStart'].') '.
     20          'AND (`VersionEnd` = '.$SourceText['VersionEnd'].')');
     21      if($DbResult->num_rows > 0)
     22      {
     23        $EnglishText = $DbResult->fetch_assoc();
     24
     25        // Get all similar english texts
     26        $Filter = array();
     27        foreach($Group['Items'] as $GroupItem)
     28          if(($GroupItem['Visible'] == 1))
     29            $Filter[] = '(`'.$GroupItem['Column'].'` = "'.addslashes($EnglishText[$GroupItem['Column']]).'")';
     30          if(count($Filter) > 0) $Filter = ' AND ('.implode(' OR ', $Filter).')';
     31
     32          $Query = 'SELECT * FROM `'.$Table.'` WHERE (`Language` = '.$this->System->Config['OriginalLanguage'].')'.$Filter;
     33          $DbResult = $this->Database->query($Query);
     34          while($EnglishFound = $DbResult->fetch_assoc())
     35          {
     36            // Get user translation paired to found english item entry
     37            $DbResult2 = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`User` = '.$this->System->User->Id.
     38              ') AND (`Entry` = '.$EnglishFound['Entry'].') AND (`VersionStart` = '.$EnglishFound['VersionStart'].
     39              ') AND (`VersionEnd` = '.$EnglishFound['VersionEnd'].')');
     40            if($DbResult2->num_rows > 0)
     41            {
     42              // Update existed user translation
     43              $ExistedText = $DbResult2->fetch_assoc();
     44              $Modified = false;
     45              $Values = '`Language` = '.$Language;
     46              if($Language != $ExistedText['Language']) $Modified = true;
     47
     48              $Completable = true;
     49              $CompleteParts = $ExistedText['CompleteParts'];
     50              foreach($Group['Items'] as $GroupItem)
     51              {
     52                if($GroupItem['Visible'] == 1)
     53                {
     54                  if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']])
     55                  {
     56                    if(array_key_exists($GroupItem['Column'], $_POST))
     57                    {
     58                      if($_POST[$GroupItem['Column']] != $ExistedText[$GroupItem['Column']])
     59                        $Modified = true;
     60
     61                      $Values .= ', `'.$GroupItem['Column'].'` = "'.$_POST[$GroupItem['Column']].'"';
     62                      $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
     63                    }
     64                  }
     65                  if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and
     66                      ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false;
     67                }
     68              }
     69              if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed
     70                else $NewComplete = 0;
     71
     72              // Update completion status for saved translation item
     73              if($SourceText['ID'] == $ExistedText['ID'])
     74              {
     75                $NewComplete = $Complete; // Our original user text, set complete according user choice
     76                if($Complete == 1)
     77                {
     78                  foreach($Group['Items'] as $GroupItem)
     79                    if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
     80                }
     81              }
     82              $Values .= ', `Complete`='.$NewComplete.', `CompleteParts` = '.$CompleteParts;
     83              if(($NewComplete != $ExistedText['Complete']) or ($CompleteParts != $ExistedText['CompleteParts']))
     84                $Modified = true;
     85
     86              $Values .= ', `ModifyTime` = NOW()';
     87              if($Modified)
     88              {
     89                // Update user translation
     90                $this->Database->query('UPDATE `'.$Table.'` SET '.$Values.' WHERE `ID` = '.$ExistedText['ID']);
     91
     92                $Output .= 'Změny v překladu <a href="'.$this->System->Link('/form.php?group='.
     93                  $Group['Id'].'&amp;ID='.$ExistedText['ID']).'">'.$ExistedText['ID'].'</a> ('.
     94                  $ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.<br />';
     95                $this->System->ModuleManager->Modules['Log']->WriteLog('Změny v překladu <a href="'.
     96                  $this->System->Link('/form.php?group='.$Group['Id'].'&amp;ID='.$ExistedText['ID']).'">'.
     97                  $ExistedText['ID'].'</a> ('.$ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.', LOG_TYPE_TRANSLATION);
     98              }
     99            } else
     100            {
     101              // Insert new user translation
     102              $Columns = '`Entry`, `VersionStart`, `VersionEnd`, `Language`, `User`, `Take`, `ModifyTime`';
     103              $Values = $EnglishFound['Entry'].', '.$EnglishFound['VersionStart'].', '.
     104                  $EnglishFound['VersionEnd'].', '.$Language.', '.$this->System->User->Id.', '.$EnglishFound['ID'].', NOW()';
     105
     106              $CompleteParts = 0;
     107              $Completable = true;
     108              foreach($Group['Items'] as $GroupItem)
     109              {
     110                $Columns .= ', `'.$GroupItem['Column'].'`';
     111                if($GroupItem['Visible'] == 1)
     112                {
     113                  if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']])
     114                  {
     115                    // Read form user data
     116                    if(array_key_exists($GroupItem['Column'], $_POST))
     117                    {
     118                      $Values .= ', "'.$_POST[$GroupItem['Column']].'"';
     119                      $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
     120                    } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"';
     121                  } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"';
     122                  if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false;
     123                } else
     124                {
     125                  // Read from english text
     126                  $Values .= ', "'.$EnglishFound[$GroupItem['Column']].'"';
     127                }
     128              }
     129              if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed
     130              else $NewComplete = 0;
     131              if($SourceText['ID'] == $EnglishFound['ID'])
     132              {
     133                $NewComplete = $Complete; // Our original user text, set complete according user choice
     134                if($Complete == 1)
     135                {
     136                  foreach($Group['Items'] as $GroupItem)
     137                    if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
     138                }
     139              }
     140              $Columns .= ', `Complete`, `CompleteParts`';
     141              $Values .= ', '.$NewComplete.', '.$CompleteParts;
     142              $this->Database->query('INSERT INTO `'.$Table.'` ('.$Columns.') VALUES ('.$Values.')');
     143              $LastID = $this->Database->insert_id;
     144
     145              $Output .= 'Text <a href="'.$this->System->Link('/form.php?group='.
     146                $Group['Id'].'&amp;ID='.$LastID).'">'.$LastID.'</a> ze skupiny <a href="TranslationList.php?group='.
     147                $Group['Id'].'&amp;user=0&amp;action=filter">'.$Group['Name'].'</a> uložen jako '.
     148                $CompleteText[$NewComplete].'. Převzat z <a href="form.php?group='.$Group['Id'].'&amp;ID='.$TextID.'">'.$TextID.'</a>.<br/>';
     149              $this->System->ModuleManager->Modules['Log']->WriteLog('Text <a href="'.
     150                $this->System->Link('/form.php?group='.$Group['Id'].'&amp;ID='.$LastID).'">'.
     151                $LastID.'</a> ze skupiny <a href="TranslationList.php?group='.
     152                $Group['Id'].'&amp;user=0&amp;text=&amp;entry=&amp;action=filter">'.
     153                $Group['Name'].'</a> uložen jako '.$CompleteText[$NewComplete].
     154                '. Převzat z <a href="form.php?group='.$Group['Id'].'&amp;ID='.$TextID.'">'.$TextID.'</a>.', LOG_TYPE_TRANSLATION);
     155            }
     156          }
     157      } else $Output .= ShowMessage('Anglický originál k překladu nenalezen.', MESSAGE_CRITICAL);
     158    } else $Output .= ShowMessage('Zadaná položka nenalezena.', MESSAGE_CRITICAL);
     159    return($Output);
     160  }
    158161
    159162  function Show()
     
    184187        $Output .= $this->ShowRedirection($GroupId, $Table, $TextID);
    185188
    186         // Update flag for experience info load
    187         //$this->Database->query('UPDATE `User` SET `NeedUpdate` = 1 WHERE `ID` = '.$this->System->User->Id);
    188189        UserLevelUpdate($this->System->User->Id);
    189190      } else $Output .= ShowMessage('Položka nenalezena', MESSAGE_CRITICAL);
    190191    } else
    191192    {
     193      // User automatically logged out. Show login dialog and allow to save retry.
    192194      if(array_key_exists('ID', $_POST) and array_key_exists('entry', $_POST) and array_key_exists('Language', $_POST) and array_key_exists('user', $_POST))
    193195      {
    194196        $Output .= 'Byli jste automaticky odhlášeni. Pro <strong>Uložení překladu</strong> se musíte přihlásit zde:<br /><br />'.
    195             '<form action="save.php?action=login&amp;group='.$GroupId.'" method="post"><div>'.
    196             '<input type="hidden" name="entry" value="'.$_POST['entry'].'" />'.
    197             '<input type="hidden" name="user" value="'.$_POST['user'].'" />'.
    198             '<input type="hidden" name="ID" value="'.$_POST['ID'].'" />'.
    199             '<input type="hidden" name="Language" value="'.$_POST['Language'].'" />';
     197          '<form action="save.php?action=login&amp;group='.$GroupId.'" method="post"><div>'.
     198          '<input type="hidden" name="entry" value="'.$_POST['entry'].'" />'.
     199          '<input type="hidden" name="user" value="'.$_POST['user'].'" />'.
     200          '<input type="hidden" name="ID" value="'.$_POST['ID'].'" />'.
     201          '<input type="hidden" name="Language" value="'.$_POST['Language'].'" />';
    200202
    201203        foreach($TranslationTree[$GroupId]['Items'] as $Index => $TextItem)
     
    205207        }
    206208        $Output .= '<table>'.
    207             '<tr>'.
    208             '<td>Jméno: <input type="text" name="LoginUser" size="13" /></td>'.
    209             '</tr><tr>'.
    210             '<td>Heslo: <input type="password" name="LoginPass" size="13" /></td>'.
    211             '</tr><tr>'.
    212             '<th><input type="submit" value="Přihlásit a uložit překlad" /></th>'.
    213             '</tr>'.
    214             '</table>';
     209          '<tr>'.
     210          '<td>Jméno: <input type="text" name="LoginUser" size="13" /></td>'.
     211          '</tr><tr>'.
     212          '<td>Heslo: <input type="password" name="LoginPass" size="13" /></td>'.
     213          '</tr><tr>'.
     214          '<th><input type="submit" value="Přihlásit a uložit překlad" /></th>'.
     215          '</tr>'.
     216          '</table>';
    215217      } else $Output = ShowMessage('Nezadány požadované údaje.', MESSAGE_CRITICAL);
    216218    }
     
    220222  function ShowRedirection($GroupId, $Table, $TextID)
    221223  {
    222         // Address and redirecting
    223         $Output = '<br />Překládat: <a href="TranslationList.php?group='.$GroupId.'&amp;state=1&amp;user=0&entry=">Nepřeložené</a> ';
    224 
    225         $prev = FollowingTran($TextID, $Table, $GroupId, True);
    226         $next = FollowingTran($TextID, $Table, $GroupId);
    227         $Output .= '<br /><br />';
    228         $DbResult = $this->Database->query('SELECT `Redirecting` FROM `User` WHERE `ID`='.$this->System->User->Id);
    229         $redirecting = $DbResult->fetch_assoc();
    230 
    231         switch($redirecting['Redirecting'])
    232         {
    233                 case 1:
    234                         $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
    235                                         'setTimeout("parent.location.href=\''.htmlspecialchars_decode('TranslationList.php?group='.$GroupId.'&amp;state=1&amp;user=0').'\'", 1500)'.
    236                                         '</script>';
    237                         break;
    238                 case 2:
    239                         if($next <> '')
    240                                 $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
    241                                                 'setTimeout("parent.location.href=\''.htmlspecialchars_decode($next).'\'", 1500)'.
    242                                                 '</script>';
    243                                 break;
    244                 case 3:
    245                         if($prev <> '')
    246                                 $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
    247                                                 'setTimeout("parent.location.href=\''.htmlspecialchars_decode($prev).'\'", 1500)'.
    248                                                 '</script>';
    249                                 break;
    250         }
    251 
    252         $Output .= 'Z této stránky můžete být automaticky přesměrování. Nastavit kam chcete být přesměrování si můžete v <a href="'.
    253           $this->System->Link('/Options.php').'" title="Nastavení uživatele">Nastavení</a>';
     224    // Address and redirecting
     225    $Output = '<br />Překládat: <a href="TranslationList.php?group='.$GroupId.'&amp;state=1&amp;user=0&entry=">Nepřeložené</a> ';
     226
     227    $prev = FollowingTran($TextID, $Table, $GroupId, True);
     228    $next = FollowingTran($TextID, $Table, $GroupId);
     229    $Output .= '<br /><br />';
     230    $DbResult = $this->Database->query('SELECT `Redirecting` FROM `User` WHERE `ID`='.$this->System->User->Id);
     231    $redirecting = $DbResult->fetch_assoc();
     232
     233    switch($redirecting['Redirecting'])
     234    {
     235      case 1:
     236        $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
     237          'setTimeout("parent.location.href=\''.htmlspecialchars_decode('TranslationList.php?group='.$GroupId.'&amp;state=1&amp;user=0').'\'", 1500)'.
     238          '</script>';
     239        break;
     240      case 2:
     241        if($next <> '')
     242          $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
     243            'setTimeout("parent.location.href=\''.htmlspecialchars_decode($next).'\'", 1500)'.
     244            '</script>';
     245          break;
     246      case 3:
     247        if($prev <> '')
     248          $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
     249            'setTimeout("parent.location.href=\''.htmlspecialchars_decode($prev).'\'", 1500)'.
     250            '</script>';
     251          break;
     252    }
     253
     254    $Output .= 'Z této stránky můžete být automaticky přesměrování. Nastavit kam chcete být přesměrování si můžete v <a href="'.
     255      $this->System->Link('/Options.php').'" title="Nastavení uživatele">Nastavení</a>';
    254256    return($Output);
    255257  }
  • trunk/Modules/Translation/TranslationList.php

    r831 r833  
    185185          }
    186186      if($Filter['State'] == CompletionState::All) {
    187         $Filter['SQL'] .= $UserFilter.$VersionFilter;
     187        $Filter['SQL'] .= $UserFilter.$VersionFilter;
    188188      } else
    189189      if($Filter['State'] == CompletionState::NotTranslated) {
    190         $Filter['SQL'] .= $VersionFilter.' AND (`T`.`Language` = '.$this->System->Config['OriginalLanguage'].') '.
     190        $Filter['SQL'] .= $VersionFilter.' AND (`T`.`Language` = '.$this->System->Config['OriginalLanguage'].') '.
    191191          'AND NOT EXISTS(SELECT 1 FROM `'.$Table.'` AS `Sub` WHERE '.
    192192          '(`Sub`.`Language` <> '.$this->System->Config['OriginalLanguage'].') '.$LanguageFilterSub.$UserFilter.
     
    195195      } else
    196196      if($Filter['State'] == CompletionState::Translated) {
    197         $Filter['SQL'] .= $UserFilter.$LanguageFilter.$VersionFilter.' AND (`T`.`Complete` = 1)';
     197        $Filter['SQL'] .= $UserFilter.$LanguageFilter.$VersionFilter.' AND (`T`.`Complete` = 1)';
    198198      } else
    199199      if($Filter['State'] == CompletionState::NotFinished) {
    200         $Filter['SQL'] .= $UserFilter.$LanguageFilter.$VersionFilter.' AND (`T`.`Language` != '.$this->System->Config['OriginalLanguage'].
     200        $Filter['SQL'] .= $UserFilter.$LanguageFilter.$VersionFilter.' AND (`T`.`Language` != '.$this->System->Config['OriginalLanguage'].
    201201      ') AND (`T`.`Complete` = 0)';
    202202      } else
    203203      if($Filter['State'] == CompletionState::Original) {
    204         $Filter['SQL'] .= $VersionFilter.' AND (`T`.`Language` = '.$this->System->Config['OriginalLanguage'].')';
     204        $Filter['SQL'] .= $VersionFilter.' AND (`T`.`Language` = '.$this->System->Config['OriginalLanguage'].')';
    205205      } else
    206206      if($Filter['State'] == CompletionState::NotFinishedNotTranslated) {
    207         $Filter['SQL'] .= $UserFilter.$VersionFilter.$WithoutAlter.
     207        $Filter['SQL'] .= $UserFilter.$VersionFilter.$WithoutAlter.
    208208      ' AND (`T`.`Language` != '.$this->System->Config['OriginalLanguage'].
    209209      ') AND (`T`.`Complete` = 0)';
  • trunk/Modules/Translation/UserLevel.php

    r830 r833  
    3838
    3939      $IDtran = $System->Database->query('SELECT *, `T2`.`Language` AS `Language_Take`'.$TakeColumns.' FROM `'.$Group['TablePrefix'].'` AS `T` '.
    40         'LEFT JOIN `'.$Group['TablePrefix'].'` AS `T2` ON `T2`.`ID` = `T`.`Take` '.
    41         'WHERE (`T`.`User` = '.$UserId.') AND (`T`.`Complete` = 1) AND (`T`.`Take` IS NOT NULL) '.$GroupBy);
     40        'LEFT JOIN `'.$Group['TablePrefix'].'` AS `T2` ON `T2`.`ID` = `T`.`Take` '.
     41        'WHERE (`T`.`User` = '.$UserId.') AND (`T`.`Complete` = 1) AND (`T`.`Take` IS NOT NULL) '.$GroupBy);
    4242      while($Line = $IDtran->fetch_array())
    4343      {
Note: See TracChangeset for help on using the changeset viewer.