addFile(file_get_contents($Path.$FileName), $ZipPath.$FileName); } } } function OutputAoWoWToFile($ExportId) { global $System; $Output = ''; $Export = new Export($System); $Export->Id = $ExportId; $Export->Init(); if (function_exists('gzcompress')) { $SaveFilename = $Export->TempDir.'CzAoWoW_SQL.zip'; $SQLFilename = 'CzAoWoW_SQL.sql'; $BufferZip = $Export->ExportToAoWoWSQL(); $ZipFile = new zipfile(); $ZipFile->addFile($BufferZip, $SQLFilename); $Buffer = $ZipFile->file(); file_put_contents($SaveFilename, $Buffer); } else $Output .= ShowMessage('Funkce pro tvorbu Zip souboru není podporována.', MESSAGE_CRITICAL); //$Output .= ''; $Output .= 'Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '. ''.$SQLFilename.'
'. 'Pokud se vám zdá, že filtr na export nefunguje, vymažte si vyrovnávací paměť prohlížeče a zkuste stáhnout soubor znovu.'; return $Output; } function OutputAoWoWToHTML($ExportId) { global $System; $Export = new Export($System); $Export->Id = $ExportId; $Output = 'Vygenerovaný SQL kód:
'.
     htmlspecialchars($Export->ExportToAoWoWSQL()).
    '
'; return $Output ; } function OutputMangosSQLToFile($ExportId) { global $System; $Output = ''; $Export = new Export($System); $Export->Id = $ExportId; $Export->Init(); if (function_exists('gzcompress')) { $SaveFilename = $Export->TempDir.'CzWoW_SQL.zip'; $SQLFilename = 'CzWoW_SQL.sql'; $BufferZip = $Export->ExportToMangosSQL(); $ZipFile = new zipfile(); $ZipFile->addFile($BufferZip, $SQLFilename); $Buffer = $ZipFile->file(); file_put_contents($SaveFilename, $Buffer); } else $Output .= ShowMessage('Funkce pro tvorbu Zip souboru není podporována.', MESSAGE_CRITICAL); //$Output .= ''; $Output .= 'Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '. ''.$SQLFilename.'
'. 'Pokud se vám zdá, že filtr na export nefunguje, vymažte si vyrovnávací paměť prohlížeče a zkuste stáhnout soubor znovu.'; return $Output; } function OutputMangosSQLToHTML($ExportId) { global $System; $Export = new Export($System); $Export->Id = $ExportId; $Export->Init(); $Output = 'Vygenerovaný SQL kód:
'.
    htmlspecialchars($Export->ExportToMangosSQL()).
    '
'; return $Output; } function OutputAddon($ExportId) { global $System; if (function_exists('gzcompress')) { $Addon = new ExportAddon($System); $Addon->Id = $ExportId; $Addon->Init(); $Output = $Addon->MakeAddon(); $Output .= 'Generování addonu...
'; $SaveFilename = $Addon->TempDir.'CzWoW_Addon-'.$Addon->ClientVersion['Version'].'.zip'; $Zip = new zipfile(); CreateZipFromDir($Zip, $Addon->TempDir.'CzWoW/', 'CzWoW/'); $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/OptionsFrame.xml'), 'CzWoW/OptionsFrame.xml'); $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/CzWoW.xml'), 'CzWoW/CzWoW.xml'); $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/CzWoW.toc'), 'CzWoW/CzWoW.toc'); $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/CzWoW.lua'), 'CzWoW/CzWoW.lua'); $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/GameMenuFrame.xml'), 'CzWoW/GameMenuFrame.xml'); $Zip->addFile(file_get_contents(dirname(__FILE__).'/files/'.$Addon->ClientVersion['Version'].'/CzWoW/Localization.lua'), 'CzWoW/Localization.lua'); $Buffer = $Zip->file(); file_put_contents($SaveFilename, $Buffer); $Output .= 'Hotovo

'; } else $Output = ShowMessage('Funkce pro tvorbu Zip souboru není podporována.', MESSAGE_CRITICAL); //$Output .= ''; $Output .= 'Soubor ke stažení: '. 'CzWoW_Addon-'.$Addon->ClientVersion['Version'].'.zip
'. 'Pokud se vám zdá, že filtr na export nefunguje, vymažte si vyrovnávací paměť prohlížeče a zkuste stáhnout soubor znovu.'; $Output .= '
Použití ve hře
Menu addonu ve hře vyvoláte povelem /czwow.'; return $Output; } function OutputXMLToFile($ExportId) { global $System; $Output = ''; $Export = new Export($System); $Export->Id = $ExportId; $Export->Init(); if (function_exists('gzcompress')) { $SaveFilename = $Export->TempDir.'CzWoW_XML.zip'; $SQLFilename = 'CzWoW_XML.sql'; $BufferZip = $Export->ExportToXML(); $ZipFile = new zipfile(); $ZipFile->addFile($BufferZip, $SQLFilename); $Buffer = $ZipFile->file(); file_put_contents($SaveFilename, $Buffer); } else $Output .= ShowMessage('Funkce pro tvorbu Zip souboru není podporována.', MESSAGE_CRITICAL); //$Output .= ''; $Output .= 'Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '. 'CzWoW_SQL.zip
'. 'Pokud se vám zdá, že filtr na export nefunguje, vymažte si vyrovnávací paměť prohlížeče a zkuste stáhnout soubor znovu.'; return $Output; } function OutputXMLToHTML($ExportId) { global $System; $Export = new Export($System); $Export->Id = $ExportId; $Export->Init(); $Output = 'Vygenerované XML:
'.
    htmlspecialchars($Export->ExportToXML()).
    '
'; return $Output; } function OutputDBCToFile($ExportId) { global $System; $Export = new Export($System); $Export->Id = $ExportId; $Export->Init(); $Output = ''; $DbResult = $System->Database->query('SELECT `Id` FROM `ExportTask` WHERE (`Export` = '.$ExportId. ') AND ((`TimeFinish` < `TimeStart`) OR (`TimeFinish` IS NULL))'); if ($DbResult->num_rows == 0) { if (array_key_exists('Regenerate', $_POST)) { $System->Database->query('UPDATE `ExportTask` SET `TimeQueued` = NOW(), `Progress`=0 , `TimeStart` = NULL, `TimeFinish` = NULL WHERE `Export` = '.$ExportId); $Output .= ShowMessage('Soubor zařazen znovu ke zpracování do fronty.'); $System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování dbc souboru', LOG_TYPE_DOWNLOAD); } else { $Output .= '
'. '

'; } } $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.
'. '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 '. 'Ladik\'s MPQ Editor. Stav vygenerování '. 'můžete sledovat na této stránce.

'; $DbResult = $System->Database->query('SELECT * FROM `ExportTask` WHERE `Export` = '.$ExportId); if ($DbResult->num_rows == 0) { $System->Database->query('INSERT INTO `ExportTask` (`Export` ,`TimeQueued`, `Progress` ) VALUES ('.$ExportId.', NOW(), 0)'); $System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování DBC souboru', LOG_TYPE_DOWNLOAD); $System->Database->query('UPDATE `ExportTask` SET `Progress`=0 WHERE `Export`='.$Export->Id); } $DbResult = $System->Database->query('SELECT `TimeFinish` FROM `ExportTask` WHERE `Export` = '.$ExportId); $ExportTask = $DbResult->fetch_assoc(); if ($ExportTask['TimeFinish'] <> '') { $Output .= 'Souhrný balík: CzWoW_DBC.zip
'; $DbResult = $System->Database->query('SELECT `Group`.* FROM `ExportGroup` JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$Export->Id.' AND `Group`.`DBCFileName` != ""'); while ($Group = $DbResult->fetch_assoc()) { if (file_exists($Export->TempDir.'dbc/'.$Group['DBCFileName'].'.dbc')) $Output .= ''.$Group['DBCFileName'].'.dbc
'; } } else { $Output .= ShowProgress($Export); } return $Output; } function ShowProgress($Export) { global $System; $Output = ''; $Output .= 'Fronta zpracování exportů. Zobrazuje procenta dokončení:

'; $Output .= ''. ''; $Output .= '
'.$System->ModuleManager->Modules['Export']->GetTaskProgress($_GET['ExportId'] * 1). '

'; // Check if process task is running $Timeout = 60 * 60 * 2; // two hours $DbResult = $System->Database->query('SELECT * FROM `ExportTask` '. 'LEFT JOIN `Export` ON `Export`.`Id` = `ExportTask`.`Export` '. 'WHERE ((`Export`.`OutputType` = 9) OR (`Export`.`OutputType` = 10)) AND '. '(`TimeFinish` IS NULL) AND (`TimeQueued` < (NOW() - '.$Timeout.'))'); if ($DbResult->num_rows > 0) { $System->ModuleManager->Modules['Log']->WriteLog('ProcesTask nepracuje přes 2 hodiny, pravděpodobně nepracuje!', LOG_TYPE_ERROR); } return $Output; } function OutputEXEToFile($ExportId) { global $System; $Export = new Export($System); $Export->Id = $ExportId; $Export->Init(); $Export->LoadFilters(); $Output = ''; // Allow to regenerate output if it was previously finished $DbResult = $System->Database->query('SELECT `Id` FROM `ExportTask` WHERE (`Export` = '.$ExportId. ') AND ((`TimeFinish` < `TimeStart`) OR (`TimeFinish` IS NULL))'); if ($DbResult->num_rows == 0) { if (array_key_exists('Regenerate', $_POST)) { $System->Database->query('UPDATE `ExportTask` SET `TimeQueued` = NOW(), `Progress`=0, `TimeStart` = NULL, `TimeFinish` = NULL WHERE `Export` = '.$ExportId); $Output .= ShowMessage('Soubor zařazen znovu ke zpracování do fronty.'); $System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování exe souboru', LOG_TYPE_DOWNLOAD); } else { $Output .= '
'. '

'; } } $Output .= 'U souhrné instalace češtiny funguje export textů jinak, protože generování je náročné, jsou požadavky zařazovány do fronty a postupně zpracovávány.

'; // Start task for the first time if export task was not yet started $DbResult = $System->Database->query('SELECT * FROM `ExportTask` WHERE `Export` = '.$ExportId); if ($DbResult->num_rows == 0) { $System->Database->query('INSERT INTO `ExportTask` (`Export`, `TimeStart` ) VALUES ('.$ExportId.', NOW())'); $System->ModuleManager->Modules['Log']->WriteLog('Zadání úlohy pro vygenerování DBC souboru', LOG_TYPE_DOWNLOAD); } $DbResult = $System->Database->query('SELECT `TimeFinish` FROM `ExportTask` WHERE `Export` = '.$ExportId); $ExportTask = $DbResult->fetch_assoc(); if ($ExportTask['TimeFinish'] <> '') { $FileName = 'Instalace_CzechWoW_'.$Export->ClientVersion['Version'].'.exe'; $Output .= 'Souhrný EXE balík: '.$FileName.'
'; } else { $Output .= ShowProgress($Export); } return $Output; } function OutputLua($ExportId) { global $System; $Export = new Export($System); $Export->Id = $ExportId; $Export->Init(); if (function_exists('gzcompress')) { $Output = 'Generování lua souborů...
'; $Export->ExportToLua(); $SaveFilename = $Export->TempDir.'CzWoW_Lua.zip'; $ZipFile = new zipfile(); CreateZipFromDir($ZipFile, $Export->TempDir.'lua/', ''); $Buffer = $ZipFile->file(); file_put_contents($SaveFilename, $Buffer); $Output .= 'Hotovo

'; } else $Output = ShowMessage('Funkce pro tvorbu Zip souboru není podporována.', MESSAGE_CRITICAL); //$Output .= ''; $Output .= 'Soubory:
'. 'Souhrný archív CzWoW_Lua.zip
'; $DbResult = $System->Database->query('SELECT `Group`.* FROM `ExportGroup` JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$Export->Id.' AND `Group`.`LuaFileName` != ""'); while ($Group = $DbResult->fetch_assoc()) { $Output .= ''.$Group['LuaFileName'].'.lua
'; } $Output .= '

Použití ve hře
Ze souborů vytvořte MPQ archív a nahrajte ho do hry do podsložky jako Data/enUS/patch-enUS-5.MPQ nebo Data/enUS/patch-enGB-5.MPQ. Pro starší verze hry než 3.2.0 je nutné spouštět hru pomocí programu WoWMe.exe (WoW Model Editor Fix).'; return $Output; } function ExportOutput($ExportId, $Type) { if ($Type == 1) $Output = OutputMangosSQLToHTML($ExportId); else if ($Type == 2) $Output = OutputMangosSQLToFile($ExportId); else if ($Type == 3) $Output = OutputAoWoWToHTML($ExportId); else if ($Type == 4) $Output = OutputAoWoWToFile($ExportId); else if ($Type == 5) $Output = OutputXMLToHTML($ExportId); else if ($Type == 6) $Output = OutputXMLToFile($ExportId); else if ($Type == 7) $Output = OutputAddon($ExportId); else if ($Type == 8) $Output = OutputLua($ExportId); else if ($Type == 9) $Output = OutputDBCToFile($ExportId); else if ($Type == 10) $Output = OutputEXEToFile($ExportId); else $Output = ShowMessage('Nebyl vybrán žádný formát výstupu.', MESSAGE_CRITICAL); return $Output; }