Changeset 285 for trunk/save.php


Ignore:
Timestamp:
Dec 11, 2009, 12:43:38 PM (15 years ago)
Author:
george
Message:
  • Opraveno: Správná inicializace čísla stránky tabulky.
  • Opraveno: Chyba indexování proměnných v modulu ukládání překladů při uložení po vypršení času přihlášení.
  • Opraveno: Chyba zobrazení popisu neexistující kategorie záznamů.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/save.php

    r278 r285  
    3131  if(!$Line)
    3232  {
    33         $Columns = '`Language` , `User` , `Complete` , `Take` , `VersionStart` , `VersionEnd`';
    34         $Values = $Language.','.$UserID.','.$complete.','.$TextID.','.$LineTake['VersionStart'].','.$LineTake['VersionEnd'];
    35         foreach($TranslationTree[$GroupId]['Items'] as $GroupItem)
    36         {
     33  $Columns = '`Language` , `User` , `Complete` , `Take` , `VersionStart` , `VersionEnd`';
     34  $Values = $Language.','.$UserID.','.$complete.','.$TextID.','.$LineTake['VersionStart'].','.$LineTake['VersionEnd'];
     35  foreach($TranslationTree[$GroupId]['Items'] as $GroupItem)
     36  {
    3737      if(array_key_exists($GroupItem['Column'], $_POST))
    38           {
    39                  if (($GroupItem['Column'] <> 'ShortCut') and ($GroupItem['Column'] <> 'Rank'))         {
    40                         $Columns .= ', `'.$GroupItem['Column'].'`';
    41                 $Values .= ', "'.@$_POST[$GroupItem['Column']].'"';
    42              }
    43           }
    44        
    45         //echo('INSERT INTO `'.$Table.'` ('.$Columns.') VALUES ('.$Values.')');
     38    {
     39     if (($GroupItem['Column'] <> 'ShortCut') and ($GroupItem['Column'] <> 'Rank'))   {
     40      $Columns .= ', `'.$GroupItem['Column'].'`';
     41        $Values .= ', "'.@$_POST[$GroupItem['Column']].'"';
     42       }
     43    }
     44 
     45  //echo('INSERT INTO `'.$Table.'` ('.$Columns.') VALUES ('.$Values.')');
    4646  //  $Database->SQLCommand('INSERT INTO `'.$Table.'` (`entry`, '.$Columns.') VALUES ('.$entry.','.$Values.')');
    47         //  $LastID = mysql_insert_id();
     47  //  $LastID = mysql_insert_id();
    4848
    49         //kontrolování stejných textů
    50        
    51        
    52         $Where = 'Language = 0';
    53         foreach($TranslationTree[$GroupId]['Items'] as $GroupItem)
    54         {
    55         if (($GroupItem['Column'] <> 'ShortCut') and ($GroupItem['Column'] <> 'Rank'))
     49  //kontrolování stejných textů
     50 
     51 
     52  $Where = 'Language = 0';
     53  foreach($TranslationTree[$GroupId]['Items'] as $GroupItem)
     54  {
     55  if (($GroupItem['Column'] <> 'ShortCut') and ($GroupItem['Column'] <> 'Rank'))
    5656      if(array_key_exists($GroupItem['Column'], $_POST))  {
    57                 $Where .= ' AND `'.$GroupItem['Column'].'` = "'.addslashes($LineAJ[$GroupItem['Column']]).'"';
    58           } else {
    59                 $Where .= ' AND `'.$GroupItem['Column'].'` = ""';
    60           }
    61         if ($GroupItem['Column'] == 'Rank') {
    62            if (array_key_exists('Rank',$_POST)) {
    63                 $Rank = substr($_POST['Rank'], 0 ,strpos($_POST['Rank'],' '));
    64                 if (strlen($Rank)<= 2)
    65            $Rank = substr($_POST['Rank'], strpos($_POST['Rank'],' ')+1);
    66            } else {
    67                 $Rank = 'Úroveň';
    68            }
    69         }
    70        
    71        
    72         $SameTranID = $Database->SQLCommand('SELECT * FROM '.$Table.' WHERE '.$Where);
    73         while($SameTranLine = mysql_fetch_assoc($SameTranID))
    74         {
    75                 $Line = mysql_fetch_array($Database->SQLCommand('SELECT * FROM '.$Table.' WHERE user='.$UserID.' AND entry = '.$SameTranLine['entry'].'
    76                 AND VersionStart = '.$LineTake['VersionStart'].' AND VersionEnd = '.$LineTake['VersionEnd']));
    77                 if(!$Line) {
    78          if ($GroupItem['Column'] <> 'ShortCut') {     
    79                 if (isset($Rank)) {
    80                              $Rank_number = substr($SameTranLine['Rank'], strpos($SameTranLine['Rank'],' ')+1);
    81                                 if ($Rank_number <> '') {
    82                                $Rank_cur = $Rank.' '.$Rank_number;
    83                                 } else {
    84                                $Rank_cur = $SameTranLine['Rank'];
    85                              }
    86                         $Database->SQLCommand('INSERT INTO `'.$Table.'` (`entry`, '.$Columns.', `Rank`) VALUES ('.$SameTranLine['entry'].','.$Values.',"'.$Rank_cur.'")');
    87                         } else {
    88                             $Database->SQLCommand('INSERT INTO `'.$Table.'` (`entry`, '.$Columns.') VALUES ('.$SameTranLine['entry'].','.$Values.')');
    89                         }
    90                 } else {
    91                 $Database->SQLCommand('INSERT INTO `'.$Table.'` (`entry`, '.$Columns.', `ShortCut`) VALUES ('.$SameTranLine['entry'].','.$Values.',"'.$SameTranLine['ShortCut'].'")');
    92                 }
    93                         $LastIDs[] = mysql_insert_id();
    94                 }
    95         }
    96        
    97         //konec kontrolování stejných textů
    98        
    99         echo('Překlad <a href="form.php?group='.$GroupId.'&amp;ID='.$TextID.'">'.$TextID.'</a> ('.$entry.') uložen!<br />');
    100         foreach($LastIDs as $LastID)
    101         {
    102                 if (count($LastIDs) > 1) echo 'Nalezen stejný překlad, systémově přeložen: <a href="form.php?group='.$GroupId.'&amp;ID='.$LastID.'">'.$LastID.'</a> Převzat z: <a href="form.php?group='.$GroupId.'&amp;ID='.$TextID.'">'.$TextID.'</a><br />';
     57    $Where .= ' AND `'.$GroupItem['Column'].'` = "'.addslashes($LineAJ[$GroupItem['Column']]).'"';
     58    } else {
     59      $Where .= ' AND `'.$GroupItem['Column'].'` = ""';
     60    }
     61  if ($GroupItem['Column'] == 'Rank') {
     62     if (array_key_exists('Rank',$_POST)) {
     63      $Rank = substr($_POST['Rank'], 0 ,strpos($_POST['Rank'],' '));
     64      if (strlen($Rank)<= 2)
     65         $Rank = substr($_POST['Rank'], strpos($_POST['Rank'],' ')+1);
     66     } else {
     67    $Rank = 'Úroveň';
     68     }
     69  }
     70 
     71 
     72  $SameTranID = $Database->SQLCommand('SELECT * FROM '.$Table.' WHERE '.$Where);
     73  while($SameTranLine = mysql_fetch_assoc($SameTranID))
     74  {
     75    $Line = mysql_fetch_array($Database->SQLCommand('SELECT * FROM '.$Table.' WHERE user='.$UserID.' AND entry = '.$SameTranLine['entry'].'
     76    AND VersionStart = '.$LineTake['VersionStart'].' AND VersionEnd = '.$LineTake['VersionEnd']));
     77      if(!$Line) {
     78         if ($GroupItem['Column'] <> 'ShortCut') { 
     79        if (isset($Rank)) {
     80           $Rank_number = substr($SameTranLine['Rank'], strpos($SameTranLine['Rank'],' ')+1);
     81        if ($Rank_number <> '') {
     82             $Rank_cur = $Rank.' '.$Rank_number;
     83        } else {
     84             $Rank_cur = $SameTranLine['Rank'];
     85           }
     86            $Database->SQLCommand('INSERT INTO `'.$Table.'` (`entry`, '.$Columns.', `Rank`) VALUES ('.$SameTranLine['entry'].','.$Values.',"'.$Rank_cur.'")');
     87      } else {
     88          $Database->SQLCommand('INSERT INTO `'.$Table.'` (`entry`, '.$Columns.') VALUES ('.$SameTranLine['entry'].','.$Values.')');
     89      }
     90    } else {
     91          $Database->SQLCommand('INSERT INTO `'.$Table.'` (`entry`, '.$Columns.', `ShortCut`) VALUES ('.$SameTranLine['entry'].','.$Values.',"'.$SameTranLine['ShortCut'].'")');
     92    }
     93      $LastIDs[] = mysql_insert_id();
     94    }
     95  }
     96 
     97  //konec kontrolování stejných textů
     98   
     99    echo('Překlad <a href="form.php?group='.$GroupId.'&amp;ID='.$TextID.'">'.$TextID.'</a> ('.$entry.') uložen!<br />');
     100  foreach($LastIDs as $LastID)
     101  {
     102    if (count($LastIDs) > 1) echo 'Nalezen stejný překlad, systémově přeložen: <a href="form.php?group='.$GroupId.'&amp;ID='.$LastID.'">'.$LastID.'</a> Převzat z: <a href="form.php?group='.$GroupId.'&amp;ID='.$TextID.'">'.$TextID.'</a><br />';
    103103      WriteLog('Text <a href="form.php?group='.$GroupId.'&amp;ID='.$LastID.'">'.$LastID.'</a> ze skupiny <a href="?group='.$GroupId.'&amp;action=filter">'.$TranslationTree[$GroupId]['Name'].'</a> uložen! Převzat z <a href="form.php?group='.$GroupId.'&amp;ID='.$TextID.'">'.$TextID.'</a>.', 1);
    104         }
     104  }
    105105  } else
    106106  {
    107107    $sql = 'UPDATE '.$Table.' SET `Complete` = '.$complete;
    108         foreach($TranslationTree[$GroupId]['Items'] as $GroupItem)
    109           if(array_key_exists($GroupItem['Column'], $_POST))
    110             $sql .= ', `'.$GroupItem['Column'].'`="'.$_POST[$GroupItem['Column']].'"';
    111         $sql .= ', `Language` = '.$Language.' WHERE ID = '.$TextID.' AND Language <> 0';
    112         //echo($sql);
     108    foreach($TranslationTree[$GroupId]['Items'] as $GroupItem)
     109    if(array_key_exists($GroupItem['Column'], $_POST))
     110      $sql .= ', `'.$GroupItem['Column'].'`="'.$_POST[$GroupItem['Column']].'"';
     111    $sql .= ', `Language` = '.$Language.' WHERE ID = '.$TextID.' AND Language <> 0';
     112  //echo($sql);
    113113    $Database->SQLCommand($sql);
    114114    //  echo $sql.'<br />';     
     
    116116    WriteLog('Změny v překladu <a href="form.php?group='.$GroupId.'&amp;ID='.$TextID.'">'.$TextID.'</a> ('.$entry.') uloženy!', 1);
    117117  }
    118                 //addres and redirecting
     118    //addres and redirecting
    119119    echo('<br />Překládat: <a href="TranslationList.php?group='.$GroupId.'&amp;action=notran">Nepřeložené</a> ');
    120120
     
    122122    $next = FollowingTran($TextID,$Table,$GroupId);
    123123    echo('<br /><br />');
    124         $redirecting = mysql_fetch_assoc($Database->SQLCommand('SELECT redirecting FROM user WHERE ID='.$UserID));
     124  $redirecting = mysql_fetch_assoc($Database->SQLCommand('SELECT redirecting FROM user WHERE ID='.$UserID));
    125125   
    126126    switch ($redirecting['redirecting']) {
    127             case 1:
     127      case 1:
    128128            echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'.
    129129          'setTimeout("parent.location.href=\''.htmlspecialchars_decode('TranslationList.php?group='.$GroupId.'&amp;action=notran').'\'", 1500)'.
    130130          '</script>');
    131131        break;
    132             case 2:
    133               if ($next <> '')
     132      case 2:
     133        if ($next <> '')
    134134            echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'.
    135135          'setTimeout("parent.location.href=\''.htmlspecialchars_decode($next).'\'", 1500)'.
    136136          '</script>');
    137137        break;
    138             case 3:
    139               if ($prev <> '')
     138      case 3:
     139        if ($prev <> '')
    140140            echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'.
    141141          'setTimeout("parent.location.href=\''.htmlspecialchars_decode($prev).'\'", 1500)'.
    142142          '</script>');
    143143        break;
    144         }
    145        
    146         echo ('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="'.$Config['Web']['BaseURL'].'Options.php" Title = "Nastavení uživatele">Nastavení</a>');
     144  }
     145 
     146  echo ('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="'.$Config['Web']['BaseURL'].'Options.php" Title = "Nastavení uživatele">Nastavení</a>');
    147147   
    148148  $Database->SQLCommand('UPDATE `user` SET `NeedUpdate` = 1 WHERE ID = '.$UserID); //informace o nutnosti načíst XP
    149149} else
    150150{
    151         if(array_key_exists('entry', $_POST))
     151  if(array_key_exists('entry', $_POST))
    152152  {
    153                 echo('Byli jste automaticky odhlášeni. Pro <strong>Uložení překladu</strong> se musíte přihlásit zde:<br /><br />');
     153    echo('Byli jste automaticky odhlášeni. Pro <strong>Uložení překladu</strong> se musíte přihlásit zde:<br /><br />');
    154154    echo('<form action="save.php?group='.$GroupId.'" method="post"><div>');
    155         echo('<input type="hidden" name="entry" value="'.$_POST['entry'].'" />'.
    156           '<input type="hidden" name="user" value="'.$_POST['user'].'" />'.
     155    echo('<input type="hidden" name="entry" value="'.$_POST['entry'].'" />'.
     156      '<input type="hidden" name="user" value="'.$_POST['user'].'" />'.
    157157      '<input type="hidden" name="ID" value="'.$_POST['ID'].'" />'.
    158158      '<input type="hidden" name="Language" value="'.$_POST['Language'].'" />');
    159159
    160                 foreach($TranslationTree[$GroupId]['Items'] as $Index => $TextItem)
    161                   echo('<input id="'.$TextItem['Column'].'" name="'.$TextItem['Column'].'" type="hidden" value="'.htmlspecialchars($_POST[$TextItem['Column']]).'" />');
    162                        
    163                 echo('  <table>
    164     <tr>
    165       <td>Jméno: <input type="text" name="LoginUser" size="13" /></td>
    166     </tr>
    167     <tr>
    168       <td>Heslo: <input type="password" name="LoginPass" size="13" /></td>
    169     </tr>
    170     <tr>
    171       <th><input type="submit" value="Přihlásit a uložit překlad" /></th>
    172     </tr>
    173   </table>');   
    174         } else echo('Na tuto stránku nelze vstoupit přímo.');
     160    foreach($TranslationTree[$GroupId]['Items'] as $Index => $TextItem)
     161    {
     162      if(array_key_exists($TextItem['Column'], $_POST)) $Value = $_POST[$TextItem['Column']]; else $Value = '';
     163      echo('<input id="'.$TextItem['Column'].'" name="'.$TextItem['Column'].'" type="hidden" value="'.htmlspecialchars($Value).'" />');
     164   
     165    echo('<table>'.
     166    '<tr>'.
     167    '<td>Jméno: <input type="text" name="LoginUser" size="13" /></td>'.
     168    '</tr><tr>'.
     169    '<td>Heslo: <input type="password" name="LoginPass" size="13" /></td>'.
     170    '</tr><tr>'.
     171    '<th><input type="submit" value="Přihlásit a uložit překlad" /></th>'.
     172    '</tr>'.
     173    '</table>'); 
     174  } else echo('Na tuto stránku nelze vstoupit přímo.');
    175175}
    176176         
Note: See TracChangeset for help on using the changeset viewer.