Changeset 504 for trunk/import


Ignore:
Timestamp:
Feb 14, 2013, 7:51:59 PM (12 years ago)
Author:
chronos
Message:
  • Upraveno: Stránky jsou nyní generovány do výstupního řetězce, který je na konci skriptu funkci ShowPage jako parametr a ta zajistí zobrazení hlavičky i patičky. Nově tedy není výstup zobrazován přes echo na mnoha místech ale jen přes jedno místo. To umožnilo kontrolu či formátování výstupního HTML kódu před zasláním uživateli na výstup. Dále toto umožňuje vyhodnocení zobrazení hlavičky až po dokončení generování obsahu stránky. To se hodí např. při přihlašování a odhlašování, kdy změna přihlášeného uživatele se v hlavičce projeví ihned už při generování výsledné stránky.
Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk

    • Property svn:ignore
      •  

        old new  
        22aowow
        33nbproject
         4.settings
         5.project
         6.buildpath
  • trunk/import/cmd.php

    r366 r504  
    88include('update_version.php');
    99
    10 //ShowPage();
     10$Output = '';
    1111
    1212if(!Licence(LICENCE_ADMIN))
    1313{
    14   echo('Nemáte oprávnění');
    15  // ShowFooter();
     14  $Output = 'Nemáte oprávnění';
    1615}
    1716
     
    2928if(!array_key_exists('source', $_GET))
    3029{
    31   echo('
     30  $Output .= '
    3231 
    33   1. Pripojíme se pres SSH na server (wowpreklad.zdechov.net) napríklad pres prohram putty.exe nebo terminál v linuxu.
     32  1. Pripojíme se pres SSH na server (wowpreklad.zdechov.net) napríklad pres program putty.exe nebo terminál v linuxu.
    34332. Nejprve je potreba získat zdrojová data. Není zapotrebí mít všechny typy textu.
    3534  a) SQL databázi UDB seženeme na fóru: http://udbforums.kicks-ass.net/index.php?board=5.0 , sobor rozbalíme a uložíme do adresáre "wowpreklad/source/císlo_verze/sql/"
     
    4342 
    4443  Parametry:
    45   ');
    46   echo('source=dbc  ...............DBC soubory
    47   ');
    48   echo('source=sql_mangos  ........SQL MaNGOS
    49   ');
    50   echo('source=lua  ...............LUA soubory
    51   ');
    52   echo('source=update_version  ....aktualizace verze u překladů
     44  ';
     45  $Output .= 'source=dbc  ...............DBC soubory
     46  ';
     47  $Output .= 'source=sql_mangos  ........SQL MaNGOS
     48  ';
     49  $Output .= 'source=lua  ...............LUA soubory
     50  ';
     51  $Output .= 'source=update_version  ....aktualizace verze u překladů
    5352
    54 ');
    55   echo('aktuálně nastavená importovávaná verze: '.$Config['Web']['GameVersion'].'
    56 ');
     53';
     54  $Output .= 'aktuálně nastavená importovávaná verze: '.$Config['Web']['GameVersion'].'
     55';
    5756} else
    5857{
    59   echo('<div style="font-size: xx-small;">');
     58  $Output .= '<div style="font-size: xx-small;">';
    6059  switch($_GET['source'])
    6160  {
     
    6564        if(($Group['MangosTable'] != '') and ($Group['TablePrefix'] != '') and ($Group['MangosDatabase'] == 'mangos'))
    6665        {
    67       echo('  '.$TranslationTree[$Group['Id']]['Name'].' '); 
    68             ImportSQLMangos($Config['Web']['GameVersion'], $Group['Id']);
    69       echo ('
    70       ');
     66      $Output .= '  '.$TranslationTree[$Group['Id']]['Name'].' '); 
     67            ImportSQLMangos($Config['Web']['GameVersion'], $Group['Id'];
     68      $Output .= '
     69      ';
    7170        }
    7271    }   
     
    7776        if(($Group['DBCFileName'] != '') and ($Group['TablePrefix'] != ''))
    7877        {
    79       echo('  '.$TranslationTree[$Group['Id']]['Name'].' '); 
    80             ImportDBC($Config['Web']['GameVersion'], $Group['Id']);
    81       echo ('
    82       ');
     78      $Output .= '  '.$TranslationTree[$Group['Id']]['Name'].' '); 
     79            ImportDBC($Config['Web']['GameVersion'], $Group['Id'];
     80      $Output .= '
     81      ';
    8382        }
    8483    }   
     
    9291      break;
    9392    case 'xml':
    94       // echo('<textarea rows="34" cols="104">');
     93      // $Output .= '<textarea rows="34" cols="104">';
    9594      include('generatecodeXML.php');
    96       // echo('</textarea>');
     95      // $Output .= '</textarea>';
    9796      break;   
    9897  }
    9998  WriteLog('Plnění databáze z příkazové řádky', LOG_TYPE_MODERATOR);
    100   echo('</div>');
     99  $Output .= '</div>';
    101100}
    102101
    103  
     102echo($Output); 
    104103//ShowFooter();     
    105104
  • trunk/import/import.php

    r488 r504  
    9494    global $TranslationTree, $PatchVersion;
    9595       
    96     echo('Načítání textů z LUA souboru...');
     96    $Output = 'Načítání textů z LUA souboru...';
    9797    if(($this->Group['LuaFileName'] != '') and ($this->Group['TablePrefix'] != ''))
    9898    {
    99         echo('<br />'.$this->Group['Name'].'<br />');
     99        $Output .= '<br />'.$this->Group['Name'].'<br />';
    100100        if($this->Group['LastVersion'] < $this->Version['BuildNumber'] + 1)
    101101        {
     
    134134            $Count++;
    135135          }
    136           echo('<br />Celkem: '.$Count.'  Nových: '.$this->NewItemCount.'<br />');
     136          $Output .= '<br />Celkem: '.$Count.'  Nových: '.$this->NewItemCount.'<br />';
    137137          $this->System->Database->query('UPDATE `Group` SET `LastVersion` = "'.$this->Version['BuildNumber'].'", `LastImport` = NOW() WHERE `Id`='.$this->Group['Id']);
    138         } else echo('Již importován pro verzi '.$this->Version['Version']);
    139       } else echo('Není definováno jméno zdrojového souboru');
    140     echo('<strong>Dokončeno.</strong>');
     138        } else $Output .= ShowMessage('Již importován pro verzi '.$this->Version['Version'], MESSAGE_CRITICAL);
     139      } else $Output .= ShowMessage('Není definováno jméno zdrojového souboru', MESSAGE_CRITICAL);
     140    $Output .= ShowMessage('Dokončeno.');
    141141  }
    142142 
     
    145145    global $TranslationTree, $PatchVersion, $Config;
    146146 
    147     echo('<br /><br />Začínám se synchronizací VersionEnd u přeložených textů<br />');
     147    $Output = '<br /><br />Začínám se synchronizací VersionEnd u přeložených textů<br />';
    148148    foreach($TranslationTree as $Group) 
    149149    {
    150       echo('<br />'.$Group['Name'].' ');     
     150      $Output .= '<br />'.$Group['Name'].' ';     
    151151      $DbResult = $this->System->Database->query('SELECT `gs_tran`.`ID`, `gs_tran`.`VersionEnd` AS `VersionEnd_tran`, `gs_orig`.`VersionEnd` AS `VersionEnd_orig` FROM `'.$Group['TablePrefix'].'` AS `gs_tran` JOIN `'.$Group['TablePrefix'].'` AS `gs_orig` ON `gs_orig`.`ID` = `gs_tran`.`Take` WHERE `gs_tran`.`VersionEnd` <> `gs_orig`.`VersionEnd`');
    152152      while($DbRow = $DbResult->fetch_assoc())
    153153      {
    154154        $this->System->Database->query('UPDATE `'.$Group['TablePrefix'].'` SET `VersionEnd` = '.$DbRow['VersionEnd_orig'].' WHERE `ID` = '.$DbRow['ID']);
    155         echo('. ');
     155        $Output .= '. ';
    156156      } 
    157       echo('<strong>Dokončeno.</strong>');
    158     }
     157      $Output .= '<strong>Dokončeno.</strong>';
     158    }
     159    return($Output);
    159160  }
    160161 
     
    210211    global $System, $TranslationTree, $Config;
    211212 
    212     echo('Načítání textů z DBC souboru...');
     213    $Output = 'Načítání textů z DBC souboru...';
    213214    if(($this->Group['DBCFileName'] != '') and ($this->Group['TablePrefix'] != ''))
    214215    {
    215       echo('<br />'.$this->Group['Name'].'<br />');
     216      $Output .= '<br />'.$this->Group['Name'].'<br />';
    216217
    217218      // Load string column index list
     
    250251        $Count++;
    251252      }   
    252       echo('<br />Celkem: '.$Count.'  Nových: '.$this->NewItemCount.'<br />');
     253      $Output .= '<br />Celkem: '.$Count.'  Nových: '.$this->NewItemCount.'<br />';
    253254      $System->Database->query('UPDATE `Group` SET `LastVersion` = "'.$this->Version['BuildNumber'].'", `LastImport` = NOW() WHERE `Id`='.$this->Group['Id']);
    254255    }
    255     echo('<strong>Dokončeno.</strong>');
     256    $Output .= '<strong>Dokončeno.</strong>';
     257    return($Output);
    256258  }
    257259
     
    262264    $this->Group = $TranslationTree[$GroupId];
    263265   
    264     if($this->Group['SourceType'] == 'dbc') $this->ImportDBC();
    265     else if($this->Group['SourceType'] == 'sql') $this->ImportSQL();
    266     else if($this->Group['SourceType'] == 'lua') $this->ImportLUA();
    267     else echo('Neznámý typ zdroje pro import');
    268     $this->UpdateTranslated();
     266    if($this->Group['SourceType'] == 'dbc') $Output = $this->ImportDBC();
     267    else if($this->Group['SourceType'] == 'sql') $Output = $this->ImportSQL();
     268    else if($this->Group['SourceType'] == 'lua') $Output = $this->ImportLUA();
     269    else $Output = ShowMessage('Neznámý typ zdroje pro import', MESSAGE_CRITICAL);
     270    $Output .= $this->UpdateTranslated();
     271    return($Output);
    269272  }
    270273 
     
    273276    global $TranslationTree, $PatchVersion;
    274277 
     278    $Output= '';
    275279    $File = new FileStream();
    276280    $File->OpenFile('../source/'.$this->Version['Version'].'/sql/'.$this->Group['MangosTable'].'.sql');
     
    374378      }
    375379    }
    376     echo('<br />Celkem: '.$Count.'  Nových: '.$this->NewItemCount.'<br />');
    377   $this->System->Database->query('UPDATE `Group` SET `LastVersion` = "'.$this->Version['BuildNumber'].'", `LastImport` = NOW() WHERE `Id`='.$this->Group['Id']);
     380    $Output = '<br />Celkem: '.$Count.'  Nových: '.$this->NewItemCount.'<br />';
     381    $this->System->Database->query('UPDATE `Group` SET `LastVersion` = "'.$this->Version['BuildNumber'].'", `LastImport` = NOW() WHERE `Id`='.$this->Group['Id']);
     382    return($Output);
    378383  }
    379384}
  • trunk/import/index.php

    r466 r504  
    55include_once('import.php');
    66
    7 ShowPage();
    8 
     7$Output = '';
    98if(!$User->Licence(LICENCE_ADMIN))
    109{
    11   ShowMessage('Nemáte oprávnění.', MESSAGE_CRITICAL);
    12   ShowFooter();
    13   die();
     10  $Output .= ShowMessage('Nemáte oprávnění.', MESSAGE_CRITICAL);
    1411}
    1512
    1613function ShowInstructions()
    1714{
    18   echo('<div>
     15  $Output = '<div>
    1916  <h5>Návod:</h5>
    20   <ol><li>Pripojíme se pres SSH na server (wowpreklad.zdechov.net) napríklad pres prohram putty.exe nebo terminál v linuxu.</li>
    21 <li>Nejprve je potreba získat zdrojová data. Není zapotrebí mít všechny typy textu.
     17  <ol><li>Připojíme se přes SSH na server (wowpreklad.zdechov.net) například přes program putty.exe nebo terminál v linuxu.</li>
     18<li>Nejprve je potřeba získat zdrojová data. Není zapotřebí mít všechny typy textu.
    2219
    2320  <ol style="list-style-type: lower-alpha">
    24   <li>SQL databázi UDB seženeme na fóru: http://udbforums.kicks-ass.net/index.php?board=5.0 , sobor rozbalíme a uložíme do adresáre "wowpreklad/source/císlo_verze/sql/"</li>
    25   <li>DBC soubory exportujeme prímo ze hry z souboru "World of Warcraft\Data\enGB\patch-enGB-2.MPQ" nebo z souboru s vyším císlem na konci. Export se provádí napríklad pomocí programu "MPQEditor.exe", který ke stažení v adresári "wowpreklad/download". DBC soubory jsou v MPQ souboru uloženy ve složce "DBFilesClient". Tyto soubory zkopírujte do složky "wowpreklad/source/císlo_verze/dbc/"</li>
    26   <li>LUA soubory exportujeme prímo ze hry z souboru "World of Warcraft\Data\enGB\patch-enGB-2.MPQ" nebo z souboru s vyším císlem na konci. Export se provádí napríklad pomocí programu "MPQEditor.exe", který ke stažení v adresári "wowpreklad/download". LUA soubory jsou v MPQ souboru uloženy ve složce "Interface\FrameXML" a složce "Interface\GlueXML". Soubory, které porebujeme se jmenují "GlobalString.lua" a "GlueString.lua". Tyto soubory zkopírujte do složky "wowpreklad/source/císlo_verze/lua/"</li></ol></li>
    27 <li>Do databáze vložíme data o verzi, kterou se hodláme importovat do tabulky wow_client_verse. Pokud budeme importovat dbc soubory je nutné vložit zde strukturu dbc souboru. To lze provést napríklad pomocí programu "CBCUtil", který je také ke stažení v složce download. Tento program vytvorí soubory spustitelné v OpenOffice. Kde první rádek v tabulce je struktura dbc souboru. Typ "str" se zaznací jako "s", každý jiný typ se oznací písmenem "u". Struktura pak vypadá napríklad "usuuuuuuuuuuuu". Krome toho je zapotrebí do databáze poznacit císelné pozice textu, prní položka je 0. Z predchozího príkladu by pozice sloupce s textem byla 1.</li>
    28 <li>V nastavení "wowpreklad/includes/config.php" nastavíme nejvyžší verzi na verzi, kterou hodláme importovat.</li>
    29 <li>Až máme všechno pripraveno spustíme v konzoli script príkazem "php wowpreklad/import/cmd.php" kde jsou popsané možnosti paremetu s kterýma se tento script spoucí pro ruzné importy.</li>
    30 <li>Po provedení importu je potreba nekolikrát spustit script na aktualizaci verze u prekladu. Je potreba ho prováde opakovane dokud nezmizí tecky oznacující že byly provedeny zmeny.</li>
    31 </ol>');
     21  <li>SQL databázi UDB seženeme na fóru: http://udbforums.kicks-ass.net/index.php?board=5.0 , soubor rozbalíme a uložíme do adresáře "wowpreklad/source/cislo_verze/sql/"</li>
     22  <li>DBC soubory exportujeme přímo ze hry z souboru "World of Warcraft\Data\enGB\patch-enGB-2.MPQ" nebo z souboru s vyšším číslem na konci. Export se provádí například pomocí programu "MPQEditor.exe", který je ke stažení v adresáři "wowpreklad/download". DBC soubory jsou v MPQ souboru uloženy ve složce "DBFilesClient". Tyto soubory zkopírujte do složky "wowpreklad/source/císlo_verze/dbc/"</li>
     23  <li>LUA soubory exportujeme přímo ze hry ze souboru "World of Warcraft\Data\enGB\patch-enGB-2.MPQ" nebo ze souboru s vyšším číslem na konci. Export se provádí například pomocí programu "MPQEditor.exe", který je ke stažení v adresáři "wowpreklad/download". LUA soubory jsou v MPQ souboru uloženy ve složce "Interface\FrameXML" a složce "Interface\GlueXML". Soubory, které potřebujeme se jmenují "GlobalString.lua" a "GlueString.lua". Tyto soubory zkopírujte do složky "wowpreklad/source/císlo_verze/lua/"</li></ol></li>
     24<li>Do databáze vložíme data o verzi, kterou se hodláme importovat do tabulky wow_client_verse. Pokud budeme importovat dbc soubory je nutné vložit zde strukturu dbc souboru. To lze provést například pomocí programu "CBCUtil", který je také ke stažení v složce download. Tento program vytvoří soubory spustitelné v LibreOffice. Kde první řádek v tabulce je struktura dbc souboru. Typ "str" se zaznačí jako "s", každý jiný typ se označí písmenem "u". Struktura pak vypadá například "usuuuuuuuuuuuu". Kromě toho je zapotřebí do databáze poznačit číselné pozice textu, první položka je 0. Z předchozího příkladu by pozice sloupce s textem byla 1.</li>
     25<li>V nastavení "wowpreklad/includes/config.php" nastavíme nejvyšší verzi na verzi, kterou hodláme importovat.</li>
     26<li>Až máme všechno připraveno spustíme v konzoli script příkazem "php wowpreklad/import/cmd.php", kde jsou popsané možnosti paremetru, se kterýma se tento skript spouští pro ruzné importy.</li>
     27<li>Po provedení importu je potřeba několikrát spustit skript na aktualizaci verze u překladu. Je potřeba ho provádět opakovaně dokud nezmizí tečky označující, že byly provedeny změny.</li>
     28</ol>';
     29  return($Output);
    3230}
    3331
     
    3836  if(array_key_exists('id', $_GET))
    3937  {
    40     echo('<div style="font-size: xx-small;">');
     38    $Output = '<div style="font-size: xx-small;">';
    4139   
    4240    $GroupId = (int)$_GET['id'];
    4341    $Import = new Import($System);
    4442    $Import->SetVersion($System->Config['Web']['GameVersion']);
    45     $Import->ImportGroup($GroupId);
     43    $Output .= $Import->ImportGroup($GroupId);
    4644 
    4745    WriteLog('Plnění databáze', LOG_TYPE_MODERATOR);
    48     echo('</div>');
    49   } else ShowMessage('Nebylo zadáno id skupiny.', MESSAGE_CRITICAL);
     46    $Output .= '</div>';
     47  } else $Output = ShowMessage('Nebylo zadáno id skupiny.', MESSAGE_CRITICAL);
     48  return($Output);
    5049}
    5150
     
    5453  global $TranslationTree, $System;
    5554 
    56   echo('</div><div><strong>Import zdrojů:</strong></div>');
    57  
    58   echo('<div><a href="?action=instructions">Instrukce pro přípravu zdrojových souborů</a></div>');
    59   echo('<div><a href="?action=update_translated">Zaktualizovat verze přeložených</a></div><br/>');
    60   echo('Verze klienta použitá pro import: <strong>'.$System->Config['Web']['GameVersion'].'</strong>');
     55  $Output = '</div><div><strong>Import zdrojů:</strong></div>'. 
     56    '<div><a href="?action=instructions">Instrukce pro přípravu zdrojových souborů</a></div>'.
     57    '<div><a href="?action=update_translated">Zaktualizovat verze přeložených</a></div><br/>'.
     58    'Verze klienta použitá pro import: <strong>'.$System->Config['Web']['GameVersion'].'</strong>';
    6159  $DbResult = $System->Database->query('SELECT COUNT(*) FROM `Group`');
    6260  $DbRow = $DbResult->fetch_row();
    6361  $PageList = GetPageList($DbRow[0]); 
    64   echo('<h3>Seznam překladových skupin</h3>');
    65   echo($PageList['Output']);
     62  $Output .= '<h3>Seznam překladových skupin</h3>';
     63  $Output .= $PageList['Output'];
    6664 
    67   echo('<table class="BaseTable">');
     65  $Output .= '<table class="BaseTable">';
    6866  $TableColumns = array(
    6967    array('Name' => 'Name', 'Title' => 'Jméno'),
     
    7674
    7775  $Order = GetOrderTableHeader($TableColumns, 'Name', 0);
    78   echo($Order['Output']);
     76  $Output .= $Order['Output'];
    7977
    8078  $DbResult = $System->Database->query('SELECT * FROM `Group`'.$Order['SQL'].$PageList['SQLLimit']);
    8179  while($Group = $DbResult->fetch_assoc())
    8280  {
    83     echo('<tr><td>'.$Group['Name'].'</td><td>'.$Group['SourceType'].'</td><td>');
    84     if($Group['MangosTable'] != '') echo($Group['MangosTable'].'.sql ');
    85     if($Group['DBCFileName'] != '') echo($Group['DBCFileName'].'.dbc ');
    86     if($Group['LuaFileName'] != '') echo($Group['LuaFileName'].'.lua ');
    87     echo('</td><td><a title="Změny po posledním importu u vybrané překladové skupiny" href="log.php?group='.$Group['Id'].'&amp;type=11">'.HumanDate($Group['LastImport']).'</a></td><td>'.GetVersionWOW($Group['LastVersion']).'</td><td><a href="?action=importgroup&amp;id='.$Group['Id'].'">Importovat</a></td></tr>');
     81    $Output .= '<tr><td>'.$Group['Name'].'</td><td>'.$Group['SourceType'].'</td><td>';
     82    if($Group['MangosTable'] != '') $Output .= $Group['MangosTable'].'.sql ';
     83    if($Group['DBCFileName'] != '') $Output .= $Group['DBCFileName'].'.dbc ';
     84    if($Group['LuaFileName'] != '') $Output .= $Group['LuaFileName'].'.lua ';
     85    $Output .= '</td><td><a title="Změny po posledním importu u vybrané překladové skupiny" href="../log.php?group='.$Group['Id'].'&amp;type=11">'.HumanDate($Group['LastImport']).'</a></td><td>'.GetVersionWOW($Group['LastVersion']).'</td><td><a href="?action=importgroup&amp;id='.$Group['Id'].'">Importovat</a></td></tr>';
    8886  }
    89   echo('</table>');
     87  $Output .= '</table>';
     88  return($Output);
    9089}
    9190
     
    9493  global $System;
    9594 
    96   echo('<div style="font-size: xx-small;">');
     95  $Output = '<div style="font-size: xx-small;">';
    9796  $Import = new Import($System);
    98   $Import->UpdateTranslated();
    99   echo('</div>');
     97  $Output .= $Import->UpdateTranslated();
     98  $Output .= '</div>';
     99  return($Output);
    100100}
    101101
    102102if(array_key_exists('action', $_GET))
    103103{
    104   if($_GET['action'] == 'instructions') ShowInstructions();
    105   else if($_GET['action'] == 'importgroup') ShowImportGroup();
    106   else if($_GET['action'] == 'update_translated') UpdateTranslated();
    107   else ShowMenu();                                           
    108 } else ShowMenu();
     104  if($_GET['action'] == 'instructions') $Output .= ShowInstructions();
     105  else if($_GET['action'] == 'importgroup') $Output .= ShowImportGroup();
     106  else if($_GET['action'] == 'update_translated') $Output .= UpdateTranslated();
     107  else $Output .= ShowMenu();                                           
     108} else $Output .= ShowMenu();
    109109
    110 ShowFooter();     
     110ShowPage($Output);
    111111
    112112?>
Note: See TracChangeset for help on using the changeset viewer.