source: trunk/export/export_output.php@ 456

Last change on this file since 456 was 456, checked in by george, 15 years ago
File size: 10.8 KB
Line 
1<?php
2
3//include_once('../includes/global.php');
4include_once('../includes/zip.lib.php');
5include_once('../includes/dbc.php');
6include_once('export.php');
7include_once('create_addon.php');
8
9//ini_set('memory_limit', '100M');
10
11function CreateZipFromDir(&$Zip, $Path, $ZipPath)
12{
13 //echo($Path.'<br />');
14 $FileList = scandir($Path);
15 foreach($FileList as $FileName)
16 {
17 if(file_exists($Path.$FileName) and ($FileName != '.') and ($FileName != '..'))
18 {
19 //echo($Path.$FileName.'<br />');
20 if(is_dir($Path.$FileName)) CreateZipFromDir($Zip, $Path.$FileName.'/', $ZipPath.$FileName.'/');
21 else $Zip->addFile(file_get_contents($Path.$FileName), $ZipPath.$FileName);
22 }
23 }
24}
25
26function OutputAoWoWToFile($ExportId)
27{
28 global $System, $Config;
29
30 $Export = new Export($System);
31 $Export->Id = $ExportId;
32 $Export->Init();
33 if(function_exists('gzcompress'))
34 {
35 $SaveFilename = $Export->TempDir.'CzAoWoW_SQL.zip';
36 $SQLFilename = 'CzAoWoW_SQL.sql';
37 $BufferZip = $Export->ExportToAoWoWSQL();
38 $ZipFile = new zipfile();
39 $ZipFile->addFile($BufferZip, $SQLFilename);
40 $Buffer = $ZipFile->file();
41 file_put_contents($SaveFilename, $Buffer);
42 } else echo('Funkce pro tvorbu Zip souboru není podporována!');
43 //echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'.
44 // 'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'.
45 // '</script>');
46
47 echo('Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '.
48 '<a href="'.$SaveFilename.'">'.$SQLFilename.'</a><br />'.
49 '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.');
50
51}
52
53function OutputAoWoWToHTML($ExportId)
54{
55 global $System, $Config;
56
57 $Export = new Export($System);
58 $Export->Id = $ExportId;
59
60 echo('Vygenerovaný SQL kód: <br /><pre class="SQLCode">');
61 echo(htmlspecialchars($Export->ExportToAoWoWSQL()));
62 echo('</pre>');
63}
64
65function OutputMangosSQLToFile($ExportId)
66{
67 global $System, $Config;
68
69 $Export = new Export($System);
70 $Export->Id = $ExportId;
71 $Export->Init();
72 if(function_exists('gzcompress'))
73 {
74 $SaveFilename = $Export->TempDir.'CzWoW_SQL.zip';
75 $SQLFilename = 'CzWoW_SQL.sql';
76 $BufferZip = $Export->ExportToMangosSQL();
77 $ZipFile = new zipfile();
78 $ZipFile->addFile($BufferZip, $SQLFilename);
79 $Buffer = $ZipFile->file();
80 file_put_contents($SaveFilename, $Buffer);
81 } else echo('Funkce pro tvorbu Zip souboru není podporována!');
82 //echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'.
83 // 'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'.
84 // '</script>');
85
86 echo('Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '.
87 '<a href="'.$SaveFilename.'">'.$SQLFilename.'</a><br />'.
88 '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.');
89}
90
91function OutputMangosSQLToHTML($ExportId)
92{
93 global $System;
94
95 $Export = new Export($System);
96 $Export->Id = $ExportId;
97 $Export->Init();
98 echo('Vygenerovaný SQL kód: <br /><pre class="SQLCode">');
99 echo(htmlspecialchars($Export->ExportToMangosSQL()));
100 echo('</pre>');
101}
102
103function OutputAddon($ExportId)
104{
105 global $System;
106
107 if(function_exists('gzcompress'))
108 {
109 $Addon = new ExportAddon($System);
110 $Addon->Id = $ExportId;
111 $Addon->Init();
112 $Addon->MakeAddon();
113
114 echo('Generování addonu...<br />');
115 $SaveFilename = $Addon->TempDir.'CzWoW_Addon-'.$Addon->ClientVersion['Version'].'.zip';
116 $Zip = new zipfile();
117 CreateZipFromDir($Zip, $Addon->TempDir.'CzWoW/', 'CzWoW/');
118 $Zip->addFile(file_get_contents('files/'.$Addon->ClientVersion['Version'].'/CzWoW/OptionsFrame.xml'), 'CzWoW/OptionsFrame.xml');
119 $Zip->addFile(file_get_contents('files/'.$Addon->ClientVersion['Version'].'/CzWoW/CzWoW.xml'), 'CzWoW/CzWoW.xml');
120 $Zip->addFile(file_get_contents('files/'.$Addon->ClientVersion['Version'].'/CzWoW/CzWoW.toc'), 'CzWoW/CzWoW.toc');
121 $Zip->addFile(file_get_contents('files/'.$Addon->ClientVersion['Version'].'/CzWoW/CzWoW.lua'), 'CzWoW/CzWoW.lua');
122 $Zip->addFile(file_get_contents('files/'.$Addon->ClientVersion['Version'].'/CzWoW/GameMenuFrame.xml'), 'CzWoW/GameMenuFrame.xml');
123 $Zip->addFile(file_get_contents('files/'.$Addon->ClientVersion['Version'].'/CzWoW/Localization.lua'), 'CzWoW/Localization.lua');
124 $Buffer = $Zip->file();
125 file_put_contents($SaveFilename, $Buffer);
126 echo('Hotovo<br /><br />');
127 } else echo('Funkce pro tvorbu Zip souboru není podporována!');
128 //echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'.
129 // 'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'.
130 // '</script>');
131
132 echo('Soubor ke stažení: '.
133 '<a href="'.$SaveFilename.'">CzWoW_Addon-'.$Addon->ClientVersion['Version'].'.zip</a><br />'.
134 '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.');
135 echo('<br /><strong>Použití ve hře</strong><br />Menu addonu ve hře vyvoláte povelem /czwow.');
136}
137
138function OutputXMLToFile($ExportId)
139{
140 global $Config, $System;
141
142 $Export = new Export($System);
143 $Export->Id = $ExportId;
144 $Export->Init();
145 if(function_exists('gzcompress'))
146 {
147 $SaveFilename = $Export->TempDir.'CzWoW_XML.zip';
148 $SQLFilename = 'CzWoW_XML.sql';
149 $BufferZip = $Export->ExportToXML();
150 $ZipFile = new zipfile();
151 $ZipFile->addFile($BufferZip, $SQLFilename);
152 $Buffer = $ZipFile->file();
153 file_put_contents($SaveFilename, $Buffer);
154 } else echo('Funkce pro tvorbu Zip souboru není podporována!');
155 //echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'.
156 // 'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'.
157 // '</script>');
158
159 echo('Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '.
160 '<a href="'.$SaveFilename.'">CzWoW_SQL.zip</a><br />'.
161 '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.');
162}
163
164function OutputXMLToHTML($ExportId)
165{
166 global $System;
167
168 $Export = new Export($System);
169 $Export->Id = $ExportId;
170 $Export->Init();
171 echo('Vygenerované XML: <br /><pre class="SQLCode">');
172 echo(htmlspecialchars($Export->ExportToXML()));
173 echo('</pre>');
174}
175
176function OutputDBCToFile($ExportId)
177{
178 global $System;
179
180 echo('<form action="?Action=View&amp;Tab=7&amp;ExportId='.$ExportId.'" method="post"><input type="submit" name="Regenerate" value="Přegenerovat"/></form><br />');
181 echo('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 program wowme.exe (WoW Model Edit) u verzí klienta starší než 3.2.0. Od této verze již wowme není potřeba. 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 />');
182
183 $DbResult = $System->Database->query('SELECT * FROM ExportTask WHERE Export = '.$ExportId);
184 if($DbResult->num_rows == 0)
185 {
186 $System->Database->query('INSERT INTO ExportTask (`Export` ,`TimeStart` ) VALUES ('.$ExportId.', NOW())');
187 WriteLog('Zadání úlohy pro vygenerování dbc souboru', LOG_TYPE_DOWNLOAD);
188 }
189
190 if(array_key_exists('Regenerate', $_POST))
191 {
192 $System->Database->query('UPDATE ExportTask SET TimeStart = NOW(), TimeFinish = NULL WHERE Export = '.$ExportId);
193 echo('Soubor zařazen znovu ke zpracování.<br/><br/>');
194 }
195 $DbResult = $System->Database->query('SELECT * FROM `ExportTask` WHERE `Export` = '.$ExportId);
196 $ExportTask = $DbResult->fetch_assoc();
197 if($ExportTask['TimeFinish'] > $ExportTask['TimeStart'])
198 {
199 echo('<strong>Souhrný balík: <a href="../tmp/Export/'.$ExportTask['Export'].'/CzWoW_DBC.zip">CzWoW_DBC.zip</a></strong><br/>');
200 $Export = new Export($System);
201 $Export->Id = $ExportId;
202 $Export->Init();
203 $DbResult = $System->Database->query('SELECT `Group`.* FROM `ExportGroup` JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$Export->Id.' AND `Group`.`DBCFileName` != ""');
204 while($Group = $DbResult->fetch_assoc())
205 {
206 if(file_exists($Export->TempDir.'dbc/'.$Group['DBCFileName'].'.dbc')) echo('<a href="'.$Export->TempDir.'dbc/'.$Group['DBCFileName'].'.dbc">'.$Group['DBCFileName'].'.dbc</a><br/>');
207 }
208 } else echo('<strong>Soubor čeká na zpracování ve frontě.</strong><br/>');
209}
210
211function OutputLua($ExportId)
212{
213 global $System, $Config;
214
215 $Export = new Export($System);
216 $Export->Id = $ExportId;
217 $Export->Init();
218
219 if(function_exists('gzcompress'))
220 {
221 echo('Generování lua souborů...<br />');
222 $Export->ExportToLua();
223 $SaveFilename = $Export->TempDir.'CzWoW_Lua.zip';
224 $ZipFile = new zipfile();
225 CreateZipFromDir($ZipFile, $Export->TempDir.'lua/', '');
226 $Buffer = $ZipFile->file();
227 file_put_contents($SaveFilename, $Buffer);
228 echo('Hotovo<br /><br />');
229 } else echo('Funkce pro tvorbu Zip souboru není podporována!');
230 //echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'.
231 // 'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'.
232 // '</script>');
233
234 echo('<strong>Soubory:</strong><br/>'.
235 'Souhrný archív <a href="'.$SaveFilename.'">CzWoW_Lua.zip</a><br />');
236 $DbResult = $System->Database->query('SELECT `Group`.* FROM `ExportGroup` JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$Export->Id.' AND `Group`.`LuaFileName` != ""');
237 while($Group = $DbResult->fetch_assoc())
238 {
239 echo('<a href="'.$Export->TempDir.'lua/'.$Group['LuaFileName'].'.lua">'.$Group['LuaFileName'].'.lua</a><br/>');
240 }
241 echo('<br /><br /><strong>Použití ve hře</strong><br />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).');
242}
243
244function ExportOutput($ExportId, $Type)
245{
246 if($Type == 1) OutputMangosSQLToHTML($ExportId);
247 else if($Type == 2) OutputMangosSQLToFile($ExportId);
248 else if($Type == 3) OutputAoWoWToHTML($ExportId);
249 else if($Type == 4) OutputAoWoWToFile($ExportId);
250 else if($Type == 5) OutputXMLToHTML($ExportId);
251 else if($Type == 6) OutputXMLToFile($ExportId);
252 else if($Type == 7) OutputAddon($ExportId);
253 else if($Type == 8) OutputLua($ExportId);
254 else if($Type == 9) OutputDBCToFile($ExportId);
255 else echo('Nebyl vybrán žádný formát výstupu');
256}
257
258?>
Note: See TracBrowser for help on using the repository browser.