Ignore:
Timestamp:
Mar 6, 2023, 1:48:45 AM (14 months ago)
Author:
chronos
Message:
  • Fixed: Class types casting for better type checking.
  • Fixed: XML direct export.
  • Modified: User class instance moved from Core class to ModuleUser class.
File:
1 edited

Legend:

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

    r888 r893  
    1919  function ShowForm(): string
    2020  {
     21    $User = ModuleUser::Cast($this->System->GetModule('User'))->User;
    2122    $TranslationTree = $this->System->ModuleManager->Modules['Translation']->GetTranslationTree();
    2223
     
    4142      } else
    4243      {
    43         if ($this->System->Config['OriginalLanguage'] == $Line['Language']){
     44        if (Core::Cast($this->System)->Config['OriginalLanguage'] == $Line['Language']){
    4445          $LineAJ = $Line;
    4546
    46           if ($this->System->User->Language <> '') $Language = '`Language` = '.$this->System->User->Language;
    47           else $Language = '`Language` != '.$this->System->Config['OriginalLanguage'];
     47          if ($User->Language <> '') $Language = '`Language` = '.$User->Language;
     48          else $Language = '`Language` != '.Core::Cast($this->System)->Config['OriginalLanguage'];
    4849          $Columns = '';
    4950          foreach ($TranslationTree[$GroupId]['Items'] as $Index => $TextItem)
     
    5556          $where = ' WHERE '.'( `Tran`.'.$Language.' ) AND '.'(`Tran`.`Entry` = '.$Line['Entry'].') ORDER BY `Tran`.`ModifyTime` DESC';
    5657          $DbResult = $this->Database->query($sql.$join.$where);
    57           while ($LineSearch = $DbResult->fetch_assoc()) {
     58          while ($LineSearch = $DbResult->fetch_assoc())
     59          {
    5860            foreach ($TranslationTree[$GroupId]['Items'] as $Index => $TextItem)
     61            {
    5962              if ($TextItem['Visible'] == 1)
     63              {
    6064                if (($LineAJ[$TextItem['Column']] <> '') and
    6165                    ($LineSearch[$TextItem['Column']] <> '') and
    6266                    ($LineSearch['Orig_'.$TextItem['Column']] <> $LineSearch[$TextItem['Column']]) and
    6367                    ($LineAJ[$TextItem['Column']] == $Line[$TextItem['Column']])
    64                    )
    65                  {
    66                    $Line[$TextItem['Column']] = $LineSearch[$TextItem['Column']];
    67                  }
    68           }
    69 
    70         } else {
     68                  )
     69                {
     70                  $Line[$TextItem['Column']] = $LineSearch[$TextItem['Column']];
     71                }
     72              }
     73            }
     74          }
     75        } else
     76        {
    7177          $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE '.
    72           '(`Language` = '.$this->System->Config['OriginalLanguage'].') AND '.
     78          '(`Language` = '.Core::Cast($this->System)->Config['OriginalLanguage'].') AND '.
    7379          '(`Entry` = '.$Line['Entry'].') AND (`VersionEnd` = '.$Line['VersionEnd'].') LIMIT 1');
    7480          $LineAJ = $DbResult->fetch_assoc();
     
    7985        } else
    8086        {
    81 
    8287          if ($Line['User'] != '')
    8388          {
     
    128133            <input type="hidden" name="ID2" value="'.$TextID.'" />';
    129134
    130             if ($this->System->User->Licence(LICENCE_USER)) { // allow to compare only to user
     135            if ($User->Licence(LICENCE_USER)) { // allow to compare only to user
    131136              $Output .= '<select onchange="this.form.submit();" name="ID1">
    132137              <option value="-1">'.T('Select text for comparison').'</option>
     
    155160
    156161          // Special characters: $B - New line, $N - Name, $C - profession
    157           if ($this->System->User->Licence(LICENCE_USER))
     162          if ($User->Licence(LICENCE_USER))
    158163          {
    159164            $Output .= '<form action="'.$this->System->Link('/save.php?group='.$GroupId).'" method="post"><div>';
     
    175180
    176181          $Output .= '<input type="hidden" name="entry" value="'.$LineAJ['Entry'].'" />
    177           <input type="hidden" name="user" value="'.$this->System->User->Id.'" />
     182          <input type="hidden" name="user" value="'.$User->Id.'" />
    178183          <input type="hidden" name="ID" value="'.$TextID.'" />
    179184          <table class="BaseTable">
     
    188193          <td>';
    189194          if ($Line['Language'] <> 0) $Language = $Line['Language'];
    190           else if ($this->System->User->Id != 0)
    191           {
    192             $Language = $this->System->User->Language;
     195          else if ($User->Id != 0)
     196          {
     197            $Language = $User->Language;
    193198          } else $Language = 0;
    194           if ($this->System->User->Licence(LICENCE_USER)) $Output .= WriteLanguages($Language);
    195             else {
     199          if ($User->Licence(LICENCE_USER))
     200          {
     201            $Output .= WriteLanguages($Language);
     202          }
     203          else
     204          {
    196205            $DbResult3 = $this->Database->select('Language', '`Id`, `Name`', '(`Enabled` = 1) AND (`Id`='.$Language.')');
    197206            if ($DbResult3->num_rows > 0)
     
    200209              $Output .= T($Language['Name']);
    201210            }
    202             }
     211          }
    203212
    204213          $Output .= '</td></tr>';
     
    210219          $Output .=    '$(document).ready(function() {';
    211220          foreach ($TranslationTree[$GroupId]['Items'] as $Index => $TextItem)
     221          {
    212222            $Output .=   '$("#'.$TextItem['Column'].'").load("'.$this->System->Link('/LoadNames.php?ID='.$LineAJ['ID'].'&Column='.$TextItem['Column'].'&GroupId='.$GroupId).'");';
     223          }
    213224
    214225          $Output .= '});'.
    215226            '</script>';
    216227
    217           foreach ($TranslationTree[$GroupId]['Items'] as $Index => $TextItem)
     228          foreach ($TranslationTree[$GroupId]['Items'] as $Index => $TextItem)         
     229          {
    218230            if ($TextItem['Visible'] == 1)
    219231            {
     
    225237                $Output .= '<td id="'.$TextItem['Column'].'">'.str_replace("\n", '<br/>', htmlspecialchars($LineAJ[$TextItem['Column']])).'</td>
    226238                <td>';
    227                 if ($this->System->User->Licence(LICENCE_USER))
     239                if ($User->Licence(LICENCE_USER))
    228240                  $Output .= '<textarea rows="8" cols="40" onkeydown="ResizeTextArea(this)" class="textedit" id="'.$TextItem['Column'].'" name="'.$TextItem['Column'].'">';
    229241                $Output .=  htmlspecialchars($Line[$TextItem['Column']]);
    230                 if ($this->System->User->Licence(LICENCE_USER)) $Output .= '</textarea></td></tr>';
     242                if ($User->Licence(LICENCE_USER)) $Output .= '</textarea></td></tr>';
    231243              }
    232244            } else
     
    234246              $Output .= '<input id="'.$TextItem['Column'].'" name="'.$TextItem['Column'].'" type="hidden" value="'.htmlspecialchars($Line[$TextItem['Column']]).'" />';
    235247            }
    236             $Output .= '</table></div>';
    237             if ($this->System->User->Licence(LICENCE_USER)) {
    238               $Output .= '</form>';
    239 
    240               if (isset($this->System->Config['Web']['EnableGoogleTranslate']) and
    241                 $this->System->Config['Web']['EnableGoogleTranslate'])
    242               {
     248          }
     249
     250          $Output .= '</table></div>';
     251          if ($User->Licence(LICENCE_USER))
     252          {
     253            $Output .= '</form>';
     254
     255            if (isset(Core::Cast($this->System)->Config['Web']['EnableGoogleTranslate']) and
     256              Core::Cast($this->System)->Config['Web']['EnableGoogleTranslate'])
     257            {
    243258              $Output .= '<br/><table class="BaseTable">'.
    244259              '<tr><th>'.T('Google translator').':</th><th>'.T('Not translated').'</th><th>'.T('Translated').'</th>';
    245260              foreach ($TranslationTree[$GroupId]['Items'] as $Index => $TextItem)
     261              {
    246262                if ($TextItem['Visible'] == 1)
     263                {
    247264                  if ($LineAJ[$TextItem['Column']] <> '')
     265                  {
    248266                    $Output .= '<tr><td>'.$TextItem['Column'].'</td>'.
    249267                      '<td>'.$LineAJ[$TextItem['Column']].'</td>'.
    250                       '<td>'.GetTranslateGoogle($LineAJ[$TextItem['Column']]).'</td></tr>';
    251 
     268                      '<td>'.GetTranslateGoogle($this->System, $LineAJ[$TextItem['Column']]).'</td></tr>';
     269                  }
     270                }
     271              }
    252272              $Output .= '</table>';
    253               }
    254             }
     273            }
     274          }
    255275        }
    256276      }
     
    261281  function Delete()
    262282  {
     283    $User = ModuleUser::Cast($this->System->GetModule('User'))->User;
    263284    $TranslationTree = $this->System->ModuleManager->Modules['Translation']->GetTranslationTree();
    264285
    265     if ($this->System->User->Licence(LICENCE_MODERATOR))
     286    if ($User->Licence(LICENCE_MODERATOR))
    266287    {
    267288      $GroupId = LoadGroupIdParameter();
     
    269290      $Table = $TranslationTree[$GroupId]['TablePrefix'];
    270291      $TextID = $_GET['ID'];
    271       $this->Database->query('DELETE FROM `'.$Table.'` WHERE `ID` = '.$TextID.' AND `Language` <> '.$this->System->Config['OriginalLanguage']);
     292      $this->Database->query('DELETE FROM `'.$Table.'` WHERE `ID` = '.$TextID.' AND `Language` <> '.Core::Cast($this->System)->Config['OriginalLanguage']);
    272293      $Output = ShowMessage('Překlad byl smazán.');
    273294      $this->System->ModuleManager->Modules['Log']->WriteLog('Překlad byl smazán! <a href="'.$this->System->Link('/form.php?group='.$this->GroupId.'&amp;ID='.$TextID).'">'.$TextID.'</a>', LOG_TYPE_MODERATOR);
Note: See TracChangeset for help on using the changeset viewer.