Changeset 674


Ignore:
Timestamp:
Dec 29, 2013, 8:49:21 PM (11 years ago)
Author:
maron
Message:
  • Added: script for merge Texts
  • Fixed: script for repair version end
  • Fixed: progress file
Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Modules/Export/Export.php

    r672 r674  
    256256
    257257  function AddProgress($add = 2) {
     258    if (file_exists($this->TempDir.'progress')) {
    258259      $File = new FileStream();
    259260      $File->OpenFile($this->TempDir.'progress');
    260261      $Line = $File->ReadLine(); 
     262   
    261263      $File = new FileStream();
    262264      $File->CreateFile($this->TempDir.'progress');
    263265      $Line+=$add;
    264266      $File->WriteLine($Line);
     267    }
    265268  }
    266269
     
    362365          if($Progress != $OldProgress)
    363366          {
     367            if ($Group['Id'] == 13) $this->AddProgress(0.01);
    364368            $Output .= $Progress."%\r";
    365369            echo($Output);
     
    401405           //   $CanExport = false;
    402406        //    $DbRow[$Column['Column']] = str_replace ( '$ ','$',$DbRow[$Column['Column']]);
    403      //       echo $DbRow[$Column['Column']].'  -  '.$DbRow['En'.$Column['Column']].'
    404 //';
     407            $DbRow[$Column['Column']] = $DbRow['En'.$Column['Column']];
     408
    405409            if (!$this->HaveVarible($DbRow['En'.$Column['Column']],$DbRow[$Column['Column']])) {
    406410              if ($CanExport) $Output .= ', NE='.$DbRow['ID'];
  • trunk/Modules/Export/ExportOutput.php

    r673 r674  
    184184{
    185185  global $System;
     186
     187  $Export = new Export($System);
     188  $Export->Id = $ExportId;
     189  $Export->Init();
    186190 
    187191  $Output = '';
     
    190194    $System->Database->query('UPDATE ExportTask SET TimeStart = NOW(), TimeFinish = NULL WHERE Export = '.$ExportId);
    191195    $Output .= ShowMessage('Soubor zařazen znovu ke zpracování do fronty.');
     196    if (file_exists($Export->TempDir.'progress')) unlink($Export->TempDir.'progress');
    192197  }
    193198
     
    195200  $Output .= 'U DBC souborů export textů funguje jinak, protože generování je náročné, jsou požadavky zařazovány do fronty a postupně zpracovávány.<br />DBC soubory je nutné zabalit do souboru patch-enGB-5.MPQ uvnitř složky "DBFilesClient" a hru spouštět přes upravený spouštěcí soubor. Zabalit je můžete pomocí programu <a href="../download/mpqediten32.zip">Ladik\'s MPQ Editor</a>. Stav vygenerování můžete sledovat na této stránce.<br /><br />';
    196201   
    197   $Export = new Export($System);
    198   $Export->Id = $ExportId;
    199   $Export->Init();
    200202  $DbResult = $System->Database->query('SELECT * FROM ExportTask WHERE Export = '.$ExportId);
    201203  if($DbResult->num_rows == 0)
     
    203205    $System->Database->query('INSERT INTO ExportTask (`Export` ,`TimeStart` ) VALUES ('.$ExportId.', NOW())');
    204206    $this->System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování dbc souboru', LOG_TYPE_DOWNLOAD);
    205     if (file_exists($Export->TempDir.'progress')) unlink($Export->TempDir.'progress');
    206207  } 
    207208 
     
    229230                                                 '</script>';
    230231    $Output .= ' <strong>Dokončeno procent: '.ProgressBar(300, $Line).'</strong>';
    231     $Output .= '<br/><br/><strong>Soubor čeká na zpracování ve frontě.</strong><br/>';
     232    if ($Line == 0) $Output .= '<br/><br/><strong>Soubor čeká na zpracování ve frontě.</strong><br/>';
    232233  }
    233234  return($Output);
     
    237238  global $System;
    238239 
     240  $Export = new Export($System);
     241  $Export->Id = $ExportId;
     242  $Export->Init();
     243  $Export->LoadFilters();
     244
    239245  $Output = '';
    240246  if(array_key_exists('Regenerate', $_POST))
     
    257263  $DbResult = $System->Database->query('SELECT * FROM `ExportTask` WHERE `Export` = '.$ExportId);
    258264  $ExportTask = $DbResult->fetch_assoc();
    259   $Export = new Export($System);
    260   $Export->Id = $ExportId;
    261   $Export->Init();
    262   $Export->LoadFilters();
    263265  if($ExportTask['TimeFinish'] > $ExportTask['TimeStart'])
    264266  {
     
    278280                                                 '</script>';
    279281    $Output .= ' <strong>Dokončeno procent: '.ProgressBar(300, $Line).'</strong>';
    280     $Output .= '<br/><br/><strong>Soubor čeká na zpracování ve frontě.</strong><br/>';
     282    if ($Line == 0) $Output .= '<br/><br/><strong>Soubor čeká na zpracování ve frontě.</strong><br/>';
    281283  }
    282284  return($Output);
  • trunk/admin/index.php

    r673 r674  
    3131  '<small>Nastaví špatné version end a Take na originální text, které vzniklo v důsledku importu a špatně indexovaného indexu Take</small><br/><br/>'.   
    3232  '<a href="'.$System->Link('/admin/?action=dbcstructure').'">Připravit dbc strukturu</a><br/>'.
    33   '<small>Otevře dbc soubory převedené do textové formy pro přípravu struktury pro import</small><br/><br/>';   
     33  '<small>Otevře dbc soubory převedené do textové formy pro přípravu struktury pro import</small><br/><br/>'.   
     34  '<a href="'.$System->Link('/admin/?action=merge').'">Sjednocení textů</a><br/>'.
     35  '<small>Sjednotí stejné originální texty v databázi</small><br/><br/>';   
    3436  return($Output);
    3537}
     
    101103{
    102104  global $System,$TranslationTree;
    103  
    104   foreach($TranslationTree as $Group)  {
     105  $Output = '';
     106 // foreach($TranslationTree as $Group) 
     107  $Group = $TranslationTree[1];
     108    {
    105109   
    106110    $sql = 'SELECT `T`.`ID`,`T`.`Take`,`sub1`.`ID` as `origID`,T.`VersionStart`,T.`VersionEnd`,`sub1`.`VersionStart` as OrigStart,sub1.`VersionEnd` as `OrigEnd` FROM `'.$Group['TablePrefix'] .'` as `T` '.
    107111      ' JOIN `'.$Group['TablePrefix'].'` as `sub1` ON `sub1`.`Language` = 0 AND `T`.`Entry` = `sub1`.`Entry` AND `T`.`VersionStart` = `sub1`.`VersionStart` '.
    108       ' WHERE `T`.`Take` != `sub1`.`Take`'.
     112      ' WHERE `T`.`Take` != `sub1`.`ID` AND `T`.`Language` != 0'.
    109113    //  ' WHERE `T`.`Language` != 0 AND `T`.`VersionEnd` != `sub1`.`VersionEnd` AND `T`.`Take` NOT IN'.
    110114    //  '(Select `ID` FROM `'.$Group['TablePrefix'].'` as `sub2` WHERE `sub2`.`Language` = 0 AND `T`.`Entry` = `sub2`.`Entry` AND `T`.`VersionStart` = `sub2`.`VersionStart`)'.
     
    120124    echo '<br / >Verze '.$Group['TablePrefix'].' opraveny!';
    121125  }
    122   return($Output);
     126  return('Hotovo!');
     127}   
     128
     129function StripText($Text) {
     130  $Text = strtolower($Text);
     131  $Text = str_replace(' ', '', $Text);
     132  return ($Text);
     133
     134
     135function MergeSameText()
     136{
     137  global $System,$TranslationTree;
     138  $Output = '';
     139//  foreach($TranslationTree as $Group) 
     140  $Group = $TranslationTree[1];
     141  {
     142   
     143    $sql = 'SELECT * FROM `'.$Group['TablePrefix'] .'` as `T` '.
     144    //  ' JOIN `'.$Group['TablePrefix'].'` as `sub1` ON `sub1`.`Language` = 0 AND `T`.`Entry` = `sub1`.`Entry` AND `T`.`VersionStart` < `sub1`.`VersionStart` '.
     145      ' WHERE `T`.`Language` = 0 '.
     146      ' ORDER BY `T`.`VersionStart`';  //LIMIT 1000
     147      //echo $sql;
     148                $DbResult = $System->Database->query($sql);
     149    echo ': <br />'.$Group['TablePrefix'].': ';
     150                while($line = $DbResult->fetch_assoc())
     151                {
     152      $sql = 'SELECT * FROM `'.$Group['TablePrefix'] .'` as `T` '.
     153      ' WHERE  `T`.`Language` = 0 AND `T`.`VersionStart` > '.$line['VersionEnd'].' AND `T`.`Entry` = '.$line['Entry'].
     154      ' ORDER BY `T`.`VersionStart` LIMIT 1';  //LIMIT 1000 
     155   //   echo $sql;
     156                  $DbResult2 = $System->Database->query($sql);
     157                  if($DbResult2->num_rows > 0) {
     158        $line2 = $DbResult2->fetch_assoc();
     159     
     160        $Same = true;         
     161        foreach($TranslationTree[$Group['Id']]['Items'] as $Column) {
     162          if ($this->StripText($line[$Column['Column']]) <> $this->StripText($line2[$Column['Column']]))
     163            $Same = false;
     164        }
     165        if ($Same) {
     166           echo $line['ID'].'='.$line2['ID'].' (';
     167        //               $System->Database->query('UPDATE `'.$Group['TablePrefix'].'` SET `Take` = NULL WHERE ID='.$line2['ID']);
     168
     169          $sql = 'SELECT * FROM `'.$Group['TablePrefix'] .'` as `T` '.
     170          ' WHERE `T`.`Entry` = '.$line['Entry'].' AND `T`.`Take` = '.$line2['ID']; 
     171                      $DbResult3 = $System->Database->query($sql);
     172                    if($DbResult3->num_rows > 0) {
     173             $line3 = $DbResult3->fetch_assoc();
     174             echo $line3['ID'].' ';
     175                         $System->Database->query('UPDATE `'.$Group['TablePrefix'].'` SET `VersionEnd` = '.$line2['VersionEnd'].', `VersionStart` = '.$line['VersionStart'].', `Take` = '.$line['ID'].' WHERE ID='.$line3['ID']);
     176          }
     177
     178                         $System->Database->query('DELETE FROM`'.$Group['TablePrefix'].'` WHERE ID='.$line2['ID']);
     179                         $System->Database->query('UPDATE `'.$Group['TablePrefix'].'` SET `VersionEnd` = '.$line2['VersionEnd'].' WHERE ID='.$line['ID']);
     180          echo '), ';
     181        }
     182      }   
     183                }
     184    echo 'Texty '.$Group['TablePrefix'].' sjednoceny!';
     185  }
     186  return('Hotovo!');
    123187}     
    124188
     
    220284        else if($_GET['action'] == 'repairversion') $Output .= $this->RepairVersionEnd();
    221285        else if($_GET['action'] == 'dbcstructure') $Output .= $this->DbcStructure();
     286        else if($_GET['action'] == 'merge') $Output .= $this->MergeSameText();
    222287        else $Output .= $this->ShowMenu();
    223288      } else $Output .= $this->ShowMenu(); 
  • trunk/includes/Version.php

    r673 r674  
    66// and system will need database update.
    77
    8 $Revision = 673; // Subversion revision
     8$Revision = 674; // Subversion revision
    99$DatabaseRevision = 666; // Database structure revision
    1010$ReleaseTime = '2013-12-29';
Note: See TracChangeset for help on using the changeset viewer.