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/Save.php

    r800 r816  
    55  function Show()
    66  {
    7         global $TranslationTree, $Message, $MessageType;
    8        
    9         $Output = '';
    10         $CompleteText = array('nedokončený', 'dokončený');
    11        
    12         unset($Message);
    13         $this->System->ModuleManager->Modules['FrontPage']->HandleLoginForm();
    14         if(isset($Message)) $Output .= ShowMessage($Message, $MessageType);
    15        
    16         $GroupId = LoadGroupIdParameter();
    17         $Group = $TranslationTree[$GroupId];
    18         $Table = $Group['TablePrefix'];
    19         if($this->System->User->Licence(LICENCE_USER))
    20         {
    21                 if(array_key_exists('ID', $_POST) and is_numeric($_POST['ID']))
    22                 {
    23                         $Entry = $_POST['entry'] * 1;
    24                         $TextID = $_POST['ID'] * 1;
    25                         $Language = $_POST['Language'] * 1;
    26                         if(array_key_exists('End', $_POST)) $Complete = 1;
    27                           else $Complete = 0;
    28        
    29                         // Get source text record from database by ID
    30                         $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE `ID`='.$TextID);
    31                         if($DbResult->num_rows > 0)
    32                         {
    33                                 $SourceText = $DbResult->fetch_assoc();
    34        
    35                                 // Get data for english original
    36                                 $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`Entry`='.$SourceText['Entry'].') '.
    37                                         'AND (`Language` = '.$this->System->Config['OriginalLanguage'].') AND (`VersionStart` = '.$SourceText['VersionStart'].') '.
    38                                         'AND (`VersionEnd` = '.$SourceText['VersionEnd'].')');
    39                                 if($DbResult->num_rows > 0)
    40                                 {
    41                                         $EnglishText = $DbResult->fetch_assoc();
    42        
    43                                         // Get all similar english texts
    44                                         $Filter = '';
    45                                         foreach($Group['Items'] as $GroupItem)
    46                                                 if(($GroupItem['Visible'] == 1) and ($EnglishText[$GroupItem['Column']] != ''))
    47                                                 $Filter .= ' OR (`'.$GroupItem['Column'].'` = "'.addslashes($EnglishText[$GroupItem['Column']]).'")';
    48                                         if(substr($Filter, 0, 3) == ' OR') $Filter = ' AND ('.substr($Filter, 3).')';
    49        
    50                                         $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`Language` = '.$this->System->Config['OriginalLanguage'].')'.$Filter);
    51                                         while($EnglishFound = $DbResult->fetch_assoc())
    52                                         {
    53                                                 // Get user translation paired to found english item entry
    54                                                 //TODO: and need update sql
    55                                                 //SELECT T.ID,T.Take,sub1.ID,T.`VersionStart`,T.`VersionEnd`,sub1.`VersionStart` as OrigStart,sub1.`VersionEnd` as OrigEnd FROM `TextSpell` as T
    56 //JOIN `TextSpell` as sub1 ON sub1.Language = 0 AND T.`Entry` = sub1.`Entry` AND T.`VersionStart` = sub1.`VersionStart` 
     7    global $TranslationTree, $Message, $MessageType;
     8
     9    $Output = '';
     10    $CompleteText = array('nedokončený', 'dokončený');
     11
     12    unset($Message);
     13    $this->System->ModuleManager->Modules['FrontPage']->HandleLoginForm();
     14    if(isset($Message)) $Output .= ShowMessage($Message, $MessageType);
     15
     16    $GroupId = LoadGroupIdParameter();
     17    $Group = $TranslationTree[$GroupId];
     18    $Table = $Group['TablePrefix'];
     19    if($this->System->User->Licence(LICENCE_USER))
     20    {
     21      if(array_key_exists('ID', $_POST) and is_numeric($_POST['ID']))
     22      {
     23        $Entry = $_POST['entry'] * 1;
     24        $TextID = $_POST['ID'] * 1;
     25        $Language = $_POST['Language'] * 1;
     26        if(array_key_exists('End', $_POST)) $Complete = 1;
     27          else $Complete = 0;
     28
     29        // Get source text record from database by ID
     30        $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE `ID`='.$TextID);
     31        if($DbResult->num_rows > 0)
     32        {
     33          $SourceText = $DbResult->fetch_assoc();
     34
     35          // Get data for english original
     36          $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`Entry`='.$SourceText['Entry'].') '.
     37            'AND (`Language` = '.$this->System->Config['OriginalLanguage'].') AND (`VersionStart` = '.$SourceText['VersionStart'].') '.
     38            'AND (`VersionEnd` = '.$SourceText['VersionEnd'].')');
     39          if($DbResult->num_rows > 0)
     40          {
     41            $EnglishText = $DbResult->fetch_assoc();
     42
     43            // Get all similar english texts
     44            $Filter = '';
     45            foreach($Group['Items'] as $GroupItem)
     46              if(($GroupItem['Visible'] == 1) and ($EnglishText[$GroupItem['Column']] != ''))
     47              $Filter .= ' OR (`'.$GroupItem['Column'].'` = "'.addslashes($EnglishText[$GroupItem['Column']]).'")';
     48            if(substr($Filter, 0, 3) == ' OR') $Filter = ' AND ('.substr($Filter, 3).')';
     49
     50            $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`Language` = '.$this->System->Config['OriginalLanguage'].')'.$Filter);
     51            while($EnglishFound = $DbResult->fetch_assoc())
     52            {
     53              // Get user translation paired to found english item entry
     54              //TODO: and need update sql
     55              //SELECT T.ID,T.Take,sub1.ID,T.`VersionStart`,T.`VersionEnd`,sub1.`VersionStart` as OrigStart,sub1.`VersionEnd` as OrigEnd FROM `TextSpell` as T
     56//JOIN `TextSpell` as sub1 ON sub1.Language = 0 AND T.`Entry` = sub1.`Entry` AND T.`VersionStart` = sub1.`VersionStart`
    5757 //WHERE T.Language != 0 AND T.`VersionEnd` != sub1.`VersionEnd`
    58                                                 $DbResult2 = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`User` = '.$this->System->User->Id.
    59                                                                 ') AND (`Entry` = '.$EnglishFound['Entry'].') AND (`VersionStart` = '.$EnglishFound['VersionStart'].
    60                                                                 ') AND (`VersionEnd` = '.$EnglishFound['VersionEnd'].')');
    61                                                 if($DbResult2->num_rows > 0)
    62                                                 {
    63                                                         // Update existed user translation
    64                                                         $ExistedText = $DbResult2->fetch_assoc();
    65                                                         $Values = '`Language` = '.$Language;
    66        
    67                                                         $UpdateModifyTime = false;
    68                                                         $Completable = true;
    69                                                         $CompleteParts = $ExistedText['CompleteParts'];
    70                                                         foreach($Group['Items'] as $GroupItem)
    71                                                         {
    72                                                                 if($GroupItem['Visible'] == 1)
    73                                                                 {
    74                                                                         if($SourceText[$GroupItem['Column']] != $ExistedText[$GroupItem['Column']])
    75                                                                                 $UpdateModifyTime = true;
    76        
    77                                                                         if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']])
    78                                                                         {
    79                                                                                 if(array_key_exists($GroupItem['Column'], $_POST))
    80                                                                                 {
    81                                                                                         $Values .= ', `'.$GroupItem['Column'].'` = "'.$_POST[$GroupItem['Column']].'"';
    82                                                                                         $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
    83                                                                                 }
    84                                                                         }
    85                                                                         if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and
    86                                                                           ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false;
    87                                                                 }
    88                                                         }
    89                                                         if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed
    90                                                         else $NewComplete = 0;
    91                                                         if($SourceText['ID'] == $ExistedText['ID'])
    92                                                         {
    93                                                                 $NewComplete = $Complete; // Our original user text, set complete according user choice
    94                                                                 if($Complete == 1)
    95                                                                 {
    96                                                                         foreach($Group['Items'] as $GroupItem)
    97                                                                                 if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
    98                                                                 }
    99                                                         }
    100                                                         $Values .= ', `Complete`='.$NewComplete.', `CompleteParts` = '.$CompleteParts;
    101        
    102                                                         if($UpdateModifyTime) $Values .= ', `ModifyTime` = NOW()';
    103        
    104                                                         // Update user translation
    105                                                         $this->Database->query('UPDATE `'.$Table.'` SET '.$Values.' WHERE `ID` = '.$ExistedText['ID']);
    106        
    107                                                         $Output .= 'Změny v překladu <a href="'.$this->System->Link('/form.php?group='.
    108                                                           $GroupId.'&amp;ID='.$ExistedText['ID']).'">'.$ExistedText['ID'].'</a> ('.
    109                                                           $ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.<br />';
    110                                                         $this->System->ModuleManager->Modules['Log']->WriteLog('Změny v překladu <a href="'.
    111                                                           $this->System->Link('/form.php?group='.$GroupId.'&amp;ID='.$ExistedText['ID']).'">'.
    112                                                           $ExistedText['ID'].'</a> ('.$ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.', LOG_TYPE_TRANSLATION);
    113                                                 } else
    114                                                 {
    115                                                         // Insert new user translation
    116                                                         $Columns = '`Entry`, `VersionStart`, `VersionEnd`, `Language`, `User`, `Take`, `ModifyTime`';
    117                                                         $Values = $EnglishFound['Entry'].', '.$EnglishFound['VersionStart'].', '.
    118                                                           $EnglishFound['VersionEnd'].', '.$Language.', '.$this->System->User->Id.', '.$EnglishFound['ID'].', NOW()';
    119        
    120                                                         $CompleteParts = 0;
    121                                                         $Completable = true;
     58              $DbResult2 = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`User` = '.$this->System->User->Id.
     59                  ') AND (`Entry` = '.$EnglishFound['Entry'].') AND (`VersionStart` = '.$EnglishFound['VersionStart'].
     60                  ') AND (`VersionEnd` = '.$EnglishFound['VersionEnd'].')');
     61              if($DbResult2->num_rows > 0)
     62              {
     63                // Update existed user translation
     64                $ExistedText = $DbResult2->fetch_assoc();
     65                $Values = '`Language` = '.$Language;
     66
     67                $UpdateModifyTime = false;
     68                $Completable = true;
     69                $CompleteParts = $ExistedText['CompleteParts'];
     70                foreach($Group['Items'] as $GroupItem)
     71                {
     72                  if($GroupItem['Visible'] == 1)
     73                  {
     74                    if($SourceText[$GroupItem['Column']] != $ExistedText[$GroupItem['Column']])
     75                      $UpdateModifyTime = true;
     76
     77                    if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']])
     78                    {
     79                      if(array_key_exists($GroupItem['Column'], $_POST))
     80                      {
     81                        $Values .= ', `'.$GroupItem['Column'].'` = "'.$_POST[$GroupItem['Column']].'"';
     82                        $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
     83                      }
     84                    }
     85                    if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and
     86                      ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false;
     87                  }
     88                }
     89                if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed
     90                else $NewComplete = 0;
     91                if($SourceText['ID'] == $ExistedText['ID'])
     92                {
     93                  $NewComplete = $Complete; // Our original user text, set complete according user choice
     94                  if($Complete == 1)
     95                  {
     96                    foreach($Group['Items'] as $GroupItem)
     97                      if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
     98                  }
     99                }
     100                $Values .= ', `Complete`='.$NewComplete.', `CompleteParts` = '.$CompleteParts;
     101
     102                if($UpdateModifyTime) $Values .= ', `ModifyTime` = NOW()';
     103
     104                // Update user translation
     105                $this->Database->query('UPDATE `'.$Table.'` SET '.$Values.' WHERE `ID` = '.$ExistedText['ID']);
     106
     107                $Output .= 'Změny v překladu <a href="'.$this->System->Link('/form.php?group='.
     108                  $GroupId.'&amp;ID='.$ExistedText['ID']).'">'.$ExistedText['ID'].'</a> ('.
     109                  $ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.<br />';
     110                $this->System->ModuleManager->Modules['Log']->WriteLog('Změny v překladu <a href="'.
     111                  $this->System->Link('/form.php?group='.$GroupId.'&amp;ID='.$ExistedText['ID']).'">'.
     112                  $ExistedText['ID'].'</a> ('.$ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.', LOG_TYPE_TRANSLATION);
     113              } else
     114              {
     115                // Insert new user translation
     116                $Columns = '`Entry`, `VersionStart`, `VersionEnd`, `Language`, `User`, `Take`, `ModifyTime`';
     117                $Values = $EnglishFound['Entry'].', '.$EnglishFound['VersionStart'].', '.
     118                  $EnglishFound['VersionEnd'].', '.$Language.', '.$this->System->User->Id.', '.$EnglishFound['ID'].', NOW()';
     119
     120                $CompleteParts = 0;
     121                $Completable = true;
    122122                $OnlyRank = true;
    123                                                         foreach($Group['Items'] as $GroupItem)
    124                                                         {
    125                                                                 $Columns .= ', `'.$GroupItem['Column'].'`';
    126                                                                 if($GroupItem['Visible'] == 1)
    127                                                                 {
    128                                                                         if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']])
    129                                                                         {
    130                                                                                 // Read form user data
    131                                                                                 if(array_key_exists($GroupItem['Column'], $_POST))
    132                                                                                 {
    133                         if (44 <> $GroupItem['Id']) $OnlyRank = false; 
    134                                                                                         $Values .= ', "'.$_POST[$GroupItem['Column']].'"';
    135                                                                                         $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
    136                                                                                 } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"';
    137                                                                         } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"';
    138                                                                         if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false;
    139                                                                 } else
    140                                                                 {
    141                                                                         // Read from english text
    142                                                                         $Values .= ', "'.$EnglishFound[$GroupItem['Column']].'"';
    143                                                                 }
    144                                                         }
    145                                                         if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed
    146                                                         else $NewComplete = 0;
    147                                                         if($SourceText['ID'] == $EnglishFound['ID'])
    148                                                         {
    149                                                                 $NewComplete = $Complete; // Our original user text, set complete according user choice
    150                                                                 if($Complete == 1)
    151                                                                 {
    152                                                                         foreach($Group['Items'] as $GroupItem)
    153                                                                                 if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
    154                                                                 }
    155                                                         }
    156                                                         $Columns .= ', `Complete`, `CompleteParts`';
    157                                                         $Values .= ', '.$NewComplete.', '.$CompleteParts;
    158        
    159                 if (!$OnlyRank) 
    160                 {
    161                                                           $this->Database->query('INSERT INTO `'.$Table.'` ('.$Columns.') VALUES ('.$Values.')');
    162                                                           $LastID = $this->Database->insert_id;
    163        
    164                                                           $Output .= 'Text <a href="'.$this->System->Link('/form.php?group='.
    165                                                           $GroupId.'&amp;ID='.$LastID).'">'.$LastID.'</a> ze skupiny <a href="TranslationList.php?group='.
    166                                                       $GroupId.'&amp;user=0&amp;action=filter">'.$TranslationTree[$GroupId]['Name'].'</a> uložen jako '.
    167                                                             $CompleteText[$NewComplete].'. Převzat z <a href="form.php?group='.$GroupId.'&amp;ID='.$TextID.'">'.$TextID.'</a>.<br/>';
    168                                                           $this->System->ModuleManager->Modules['Log']->WriteLog('Text <a href="'.
    169                                                             $this->System->Link('/form.php?group='.$GroupId.'&amp;ID='.$LastID).'">'.
    170                                                             $LastID.'</a> ze skupiny <a href="TranslationList.php?group='.
    171                                                             $GroupId.'&amp;user=0&amp;text=&amp;entry=&amp;action=filter">'.
    172                                                             $TranslationTree[$GroupId]['Name'].'</a> uložen jako '.$CompleteText[$NewComplete].
    173                                                             '. Převzat z <a href="form.php?group='.$GroupId.'&amp;ID='.$TextID.'">'.$TextID.'</a>.', LOG_TYPE_TRANSLATION);
    174                 }
    175                                                 }
    176                                         }
    177                                 } else $Output .= ShowMessage('Anglický originál k překladu nenalezen.', MESSAGE_CRITICAL);
    178                         } else $Output .= ShowMessage('Zadaná položka nenalezena.', MESSAGE_CRITICAL);
    179                          
    180                          
    181                         // Address and redirecting
    182                         $Output .= '<br />Překládat: <a href="TranslationList.php?group='.$GroupId.'&amp;state=1&amp;user=0&entry=">Nepřeložené</a> ';
    183        
    184                         $prev = FollowingTran($TextID, $Table, $GroupId, True);
    185                         $next = FollowingTran($TextID, $Table, $GroupId);
    186                         $Output .= '<br /><br />';
    187                         $DbResult = $this->Database->query('SELECT `Redirecting` FROM `User` WHERE `ID`='.$this->System->User->Id);
    188                         $redirecting = $DbResult->fetch_assoc();
    189        
    190                         switch($redirecting['Redirecting'])
    191                         {
    192                                 case 1:
    193                                         $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
    194                                                         'setTimeout("parent.location.href=\''.htmlspecialchars_decode('TranslationList.php?group='.$GroupId.'&amp;state=1&amp;user=0').'\'", 1500)'.
    195                                                         '</script>';
    196                                         break;
    197                                 case 2:
    198                                         if($next <> '')
    199                                                 $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
    200                                                 'setTimeout("parent.location.href=\''.htmlspecialchars_decode($next).'\'", 1500)'.
    201                                                 '</script>';
    202                                         break;
    203                                 case 3:
    204                                         if($prev <> '')
    205                                                 $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
    206                                                 'setTimeout("parent.location.href=\''.htmlspecialchars_decode($prev).'\'", 1500)'.
    207                                                 '</script>';
    208                                         break;
    209                         }
    210        
    211                         $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="'.
    212                           $this->System->Link('/Options.php').'" title="Nastavení uživatele">Nastavení</a>';
    213        
    214                         // Update flag for experience info load
    215                         $this->Database->query('UPDATE `User` SET `NeedUpdate` = 1 WHERE `ID` = '.$this->System->User->Id);
    216                 } else $Output .= ShowMessage('Položka nenalezena', MESSAGE_CRITICAL);
    217         } else
    218         {
    219                 if(array_key_exists('ID', $_POST) and array_key_exists('entry', $_POST) and array_key_exists('Language', $_POST) and array_key_exists('user', $_POST))
    220                 {
    221                         $Output .= 'Byli jste automaticky odhlášeni. Pro <strong>Uložení překladu</strong> se musíte přihlásit zde:<br /><br />'.
    222                                         '<form action="save.php?action=login&amp;group='.$GroupId.'" method="post"><div>'.
    223                                         '<input type="hidden" name="entry" value="'.$_POST['entry'].'" />'.
    224                                         '<input type="hidden" name="user" value="'.$_POST['user'].'" />'.
    225                                         '<input type="hidden" name="ID" value="'.$_POST['ID'].'" />'.
    226                                         '<input type="hidden" name="Language" value="'.$_POST['Language'].'" />';
    227        
    228                         foreach($TranslationTree[$GroupId]['Items'] as $Index => $TextItem)
    229                         {
    230                                 if(array_key_exists($TextItem['Column'], $_POST)) $Value = $_POST[$TextItem['Column']]; else $Value = '';
    231                                 $Output .= '<input id="'.$TextItem['Column'].'" name="'.$TextItem['Column'].'" type="hidden" value="'.htmlspecialchars($Value).'" />';
    232                         }
    233                         $Output .= '<table>'.
    234                                         '<tr>'.
    235                                         '<td>Jméno: <input type="text" name="LoginUser" size="13" /></td>'.
    236                                         '</tr><tr>'.
    237                                         '<td>Heslo: <input type="password" name="LoginPass" size="13" /></td>'.
    238                                         '</tr><tr>'.
    239                                         '<th><input type="submit" value="Přihlásit a uložit překlad" /></th>'.
    240                                         '</tr>'.
    241                                         '</table>';
    242                 } else $Output = ShowMessage('Nezadány požadované údaje.', MESSAGE_CRITICAL);
    243         }       
    244     return($Output);         
     123                foreach($Group['Items'] as $GroupItem)
     124                {
     125                  $Columns .= ', `'.$GroupItem['Column'].'`';
     126                  if($GroupItem['Visible'] == 1)
     127                  {
     128                    if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']])
     129                    {
     130                      // Read form user data
     131                      if(array_key_exists($GroupItem['Column'], $_POST))
     132                      {
     133                        if (44 <> $GroupItem['Id']) $OnlyRank = false;
     134                        $Values .= ', "'.$_POST[$GroupItem['Column']].'"';
     135                        $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
     136                      } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"';
     137                    } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"';
     138                    if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false;
     139                  } else
     140                  {
     141                    // Read from english text
     142                    $Values .= ', "'.$EnglishFound[$GroupItem['Column']].'"';
     143                  }
     144                }
     145                if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed
     146                else $NewComplete = 0;
     147                if($SourceText['ID'] == $EnglishFound['ID'])
     148                {
     149                  $NewComplete = $Complete; // Our original user text, set complete according user choice
     150                  if($Complete == 1)
     151                  {
     152                    foreach($Group['Items'] as $GroupItem)
     153                      if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1));
     154                  }
     155                }
     156                $Columns .= ', `Complete`, `CompleteParts`';
     157                $Values .= ', '.$NewComplete.', '.$CompleteParts;
     158
     159                if (!$OnlyRank)
     160                {
     161                  $this->Database->query('INSERT INTO `'.$Table.'` ('.$Columns.') VALUES ('.$Values.')');
     162                  $LastID = $this->Database->insert_id;
     163
     164                  $Output .= 'Text <a href="'.$this->System->Link('/form.php?group='.
     165                    $GroupId.'&amp;ID='.$LastID).'">'.$LastID.'</a> ze skupiny <a href="TranslationList.php?group='.
     166                    $GroupId.'&amp;user=0&amp;action=filter">'.$TranslationTree[$GroupId]['Name'].'</a> uložen jako '.
     167                    $CompleteText[$NewComplete].'. Převzat z <a href="form.php?group='.$GroupId.'&amp;ID='.$TextID.'">'.$TextID.'</a>.<br/>';
     168                  $this->System->ModuleManager->Modules['Log']->WriteLog('Text <a href="'.
     169                    $this->System->Link('/form.php?group='.$GroupId.'&amp;ID='.$LastID).'">'.
     170                    $LastID.'</a> ze skupiny <a href="TranslationList.php?group='.
     171                    $GroupId.'&amp;user=0&amp;text=&amp;entry=&amp;action=filter">'.
     172                    $TranslationTree[$GroupId]['Name'].'</a> uložen jako '.$CompleteText[$NewComplete].
     173                    '. Převzat z <a href="form.php?group='.$GroupId.'&amp;ID='.$TextID.'">'.$TextID.'</a>.', LOG_TYPE_TRANSLATION);
     174                }
     175              }
     176            }
     177          } else $Output .= ShowMessage('Anglický originál k překladu nenalezen.', MESSAGE_CRITICAL);
     178        } else $Output .= ShowMessage('Zadaná položka nenalezena.', MESSAGE_CRITICAL);
     179
     180
     181        // Address and redirecting
     182        $Output .= '<br />Překládat: <a href="TranslationList.php?group='.$GroupId.'&amp;state=1&amp;user=0&entry=">Nepřeložené</a> ';
     183
     184        $prev = FollowingTran($TextID, $Table, $GroupId, True);
     185        $next = FollowingTran($TextID, $Table, $GroupId);
     186        $Output .= '<br /><br />';
     187        $DbResult = $this->Database->query('SELECT `Redirecting` FROM `User` WHERE `ID`='.$this->System->User->Id);
     188        $redirecting = $DbResult->fetch_assoc();
     189
     190        switch($redirecting['Redirecting'])
     191        {
     192          case 1:
     193            $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
     194                'setTimeout("parent.location.href=\''.htmlspecialchars_decode('TranslationList.php?group='.$GroupId.'&amp;state=1&amp;user=0').'\'", 1500)'.
     195                '</script>';
     196            break;
     197          case 2:
     198            if($next <> '')
     199              $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
     200              'setTimeout("parent.location.href=\''.htmlspecialchars_decode($next).'\'", 1500)'.
     201              '</script>';
     202            break;
     203          case 3:
     204            if($prev <> '')
     205              $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'.
     206              'setTimeout("parent.location.href=\''.htmlspecialchars_decode($prev).'\'", 1500)'.
     207              '</script>';
     208            break;
     209        }
     210
     211        $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="'.
     212          $this->System->Link('/Options.php').'" title="Nastavení uživatele">Nastavení</a>';
     213
     214        // Update flag for experience info load
     215        $this->Database->query('UPDATE `User` SET `NeedUpdate` = 1 WHERE `ID` = '.$this->System->User->Id);
     216      } else $Output .= ShowMessage('Položka nenalezena', MESSAGE_CRITICAL);
     217    } else
     218    {
     219      if(array_key_exists('ID', $_POST) and array_key_exists('entry', $_POST) and array_key_exists('Language', $_POST) and array_key_exists('user', $_POST))
     220      {
     221        $Output .= 'Byli jste automaticky odhlášeni. Pro <strong>Uložení překladu</strong> se musíte přihlásit zde:<br /><br />'.
     222            '<form action="save.php?action=login&amp;group='.$GroupId.'" method="post"><div>'.
     223            '<input type="hidden" name="entry" value="'.$_POST['entry'].'" />'.
     224            '<input type="hidden" name="user" value="'.$_POST['user'].'" />'.
     225            '<input type="hidden" name="ID" value="'.$_POST['ID'].'" />'.
     226            '<input type="hidden" name="Language" value="'.$_POST['Language'].'" />';
     227
     228        foreach($TranslationTree[$GroupId]['Items'] as $Index => $TextItem)
     229        {
     230          if(array_key_exists($TextItem['Column'], $_POST)) $Value = $_POST[$TextItem['Column']]; else $Value = '';
     231          $Output .= '<input id="'.$TextItem['Column'].'" name="'.$TextItem['Column'].'" type="hidden" value="'.htmlspecialchars($Value).'" />';
     232        }
     233        $Output .= '<table>'.
     234            '<tr>'.
     235            '<td>Jméno: <input type="text" name="LoginUser" size="13" /></td>'.
     236            '</tr><tr>'.
     237            '<td>Heslo: <input type="password" name="LoginPass" size="13" /></td>'.
     238            '</tr><tr>'.
     239            '<th><input type="submit" value="Přihlásit a uložit překlad" /></th>'.
     240            '</tr>'.
     241            '</table>';
     242      } else $Output = ShowMessage('Nezadány požadované údaje.', MESSAGE_CRITICAL);
     243    }
     244    return($Output);
    245245  }
    246246}
Note: See TracChangeset for help on using the changeset viewer.