1 | <?php
|
---|
2 |
|
---|
3 | include_once('../includes/system.php');
|
---|
4 |
|
---|
5 | class Export extends Module
|
---|
6 | {
|
---|
7 | var $Id;
|
---|
8 | var $AnoNe = array('Ne', 'Ano');
|
---|
9 | var $WhereLang;
|
---|
10 | var $WhereUsers;
|
---|
11 | var $SelectedUsers;
|
---|
12 | var $UserNames;
|
---|
13 | var $ClientVersion;
|
---|
14 | var $OrderByUserList;
|
---|
15 |
|
---|
16 | function Init()
|
---|
17 | {
|
---|
18 | $this->TempDir = $this->Config['Web']['TempFolder'].'Export/'.$this->Id.'/';
|
---|
19 | if(!file_exists($this->TempDir)) mkdir($this->TempDir, 0777, true);
|
---|
20 | }
|
---|
21 |
|
---|
22 | function LoadFilters()
|
---|
23 | {
|
---|
24 | $DbResult = $this->Database->query('SELECT * FROM `Export` WHERE `Id`='.$this->Id);
|
---|
25 | if($DbResult->num_rows == 0) throw new Exception('Export '.$this->Id.' neexistuje');
|
---|
26 | $this->Export = $DbResult->fetch_assoc();
|
---|
27 |
|
---|
28 | // Filter selected users
|
---|
29 | $this->UserNames = '';
|
---|
30 | $DbResult = $this->Database->query('SELECT `ExportUser`.*, `User`.`Name`, `User`.`ID` FROM `ExportUser` LEFT JOIN `User` ON `User`.`ID`=`ExportUser`.`User` WHERE `ExportUser`.`Export`='.$this->Id.' ORDER BY `ExportUser`.`Sequence`');
|
---|
31 | while($UserLine = $DbResult->fetch_assoc())
|
---|
32 | {
|
---|
33 | $this->UserNames .= ', '.$UserLine['Name'];
|
---|
34 | }
|
---|
35 | $this->UserNames = substr($this->UserNames, 2);
|
---|
36 |
|
---|
37 | $DbResult = $this->Database->query('SELECT * FROM `ClientVersion` WHERE `Id`='.$this->Export['ClientVersion']);
|
---|
38 | $this->ClientVersion = $DbResult->fetch_assoc();
|
---|
39 | }
|
---|
40 |
|
---|
41 | function BuildQuery($Group, $Columns = '', $Version = '')
|
---|
42 | {
|
---|
43 | global $TranslationTree;
|
---|
44 |
|
---|
45 | if ($Version <> '')
|
---|
46 | $ExportVersion = $Version;
|
---|
47 | else
|
---|
48 | $ExportVersion = $this->ClientVersion['BuildNumber'];
|
---|
49 |
|
---|
50 | $Query = 'SELECT * FROM (SELECT `T`.*, '.$Columns.'`User`.`Name` AS `UserName` FROM `'.$Group['TablePrefix'].'` AS `T`'.
|
---|
51 | ' JOIN `ExportUser` ON (`ExportUser`.`User`=`T`.`User`) AND (`ExportUser`.`Export`='.$this->Id.') '.
|
---|
52 | ' JOIN `User` ON `User`.`ID`=`T`.`User`'.
|
---|
53 | ' JOIN `ExportLanguage` ON (`ExportLanguage`.`Export`='.$this->Id.')'.
|
---|
54 | ' WHERE (`Complete` = 1) AND (`VersionStart` <= '.$ExportVersion.') AND (`VersionEnd` >= '.$ExportVersion.')'.
|
---|
55 | ' ORDER BY `ExportLanguage`.`Sequence`, `ExportUser`.`Sequence`) AS `TT` GROUP BY `TT`.`Entry`';
|
---|
56 |
|
---|
57 | // Build columns for english texts
|
---|
58 | $OriginalColumns = '';
|
---|
59 | foreach($TranslationTree[$Group['Id']]['Items'] as $Column)
|
---|
60 | $OriginalColumns .= ' `T3`.`'.$Column['Column'].'` AS `En'.$Column['Column'].'`, ';
|
---|
61 | $OriginalColumns = substr($OriginalColumns, 0, -2);
|
---|
62 |
|
---|
63 | // Expand query for loading english texts
|
---|
64 | $Query = 'SELECT `T4`.*, '.$OriginalColumns.' FROM ('.$Query.') AS `T4` '.
|
---|
65 | ' LEFT JOIN `'.$Group['TablePrefix'].'` AS `T3` ON (`T3`.`Entry` = `T4`.`Entry`) AND (`T3`.`Language` = 0) AND (`T3`.`VersionStart` = `T4`.`VersionStart`) AND (`T3`.`VersionEnd` = `T4`.`VersionEnd`)';
|
---|
66 |
|
---|
67 | return($Query);
|
---|
68 | }
|
---|
69 |
|
---|
70 | function ExportToMangosSQL()
|
---|
71 | {
|
---|
72 | global $TranslationTree, $User, $Config;
|
---|
73 |
|
---|
74 | $this->LoadFilters();
|
---|
75 |
|
---|
76 | $Buffer =
|
---|
77 | "-- Generováno projektem wowpreklad.zdechov.net\n".
|
---|
78 | "-- ===========================================\n".
|
---|
79 | "--\n".
|
---|
80 | "-- Web projektu: ".$this->Config['Web']['Host'].$this->System->Link('/')."\n".
|
---|
81 | "-- Datum exportu: ".date("j.n.Y H:i:s")."\n".
|
---|
82 | "-- Znaková sada: ".$this->Config['Database']['Charset']." / ".$this->Config['Web']['Charset']."\n".
|
---|
83 | "-- Diakritika: ".$this->AnoNe[$this->Export['WithDiacritic']]."\n".
|
---|
84 | "-- Vygeneroval uživatel: ".$User->Name."\n".
|
---|
85 | "-- Vzato od uživatelů: ".$this->UserNames."\n".
|
---|
86 | "-- Generované tabulky: ";
|
---|
87 |
|
---|
88 | $DbResult = $this->Database->query('SELECT `Group`.* FROM `ExportGroup` JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id);
|
---|
89 | while($Group = $DbResult->fetch_assoc())
|
---|
90 | {
|
---|
91 | $Buffer .= $Group['TablePrefix'].', ';
|
---|
92 | }
|
---|
93 | $Buffer .= "\n\n";
|
---|
94 |
|
---|
95 | $DbResult = $this->Database->query('SELECT `Group`.* FROM `ExportGroup` JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id);
|
---|
96 | while($Group = $DbResult->fetch_assoc())
|
---|
97 | {
|
---|
98 | if($Group['MangosTable'] != '')
|
---|
99 | {
|
---|
100 | $Buffer .= "\n\n-- ".$Group['Name']."\n\n";
|
---|
101 | $DbResult2 = $this->Database->query($this->BuildQuery($Group));
|
---|
102 | if($DbResult2->num_rows > 0)
|
---|
103 | while($Line = $DbResult2->fetch_array())
|
---|
104 | {
|
---|
105 | $Values = '';
|
---|
106 | foreach($TranslationTree[$Group['Id']]['Items'] as $GroupItem)
|
---|
107 | if($GroupItem['Column'] != $Group['PrimaryKeyItem']) // Do not update primary key
|
---|
108 | {
|
---|
109 | if($GroupItem['MangosColumn'] == '') $GroupItem['MangosColumn'] = $GroupItem['Column'];
|
---|
110 | $Values .= ', `'.$GroupItem['MangosColumn'].'`="'.addslashes($Line[$GroupItem['Column']]).'"';
|
---|
111 | }
|
---|
112 | $Values = substr($Values, 2);
|
---|
113 |
|
---|
114 | // Get multicolumn index
|
---|
115 | $ColumnItems = explode(',', $Group['MangosTableIndex']);
|
---|
116 | if(count($ColumnItems) > 1)
|
---|
117 | {
|
---|
118 | $Where = 'CONCAT(';
|
---|
119 | foreach($ColumnItems as $ColumnItem)
|
---|
120 | $Where .= '`'.$ColumnItem.'`, "_", ';
|
---|
121 | $Where = substr($Where, 0, -7).')';
|
---|
122 | } else $Where = '`'.$Group['MangosTableIndex'].'`';
|
---|
123 | $Where .= ' = "'.$Line[$Group['PrimaryKeyItem']].'";';
|
---|
124 |
|
---|
125 | $Line = 'UPDATE `'.$Group['MangosTable'].'` SET '.$Values.' WHERE '.$Where;
|
---|
126 | $Line = str_replace("\n", '\n', $Line);
|
---|
127 | $Line = str_replace("\r", '', $Line);
|
---|
128 | $Buffer .= $Line."\n";
|
---|
129 | }
|
---|
130 | }
|
---|
131 | }
|
---|
132 | if($this->Export['WithDiacritic'] != 1) $Buffer = utf2ascii($Buffer);
|
---|
133 | return($Buffer);
|
---|
134 | }
|
---|
135 |
|
---|
136 | function ExportToAoWoWSQL()
|
---|
137 | {
|
---|
138 | global $Config, $TranslationTree, $AoWoWconf;
|
---|
139 |
|
---|
140 | require_once('../aowow/configs/config.php');
|
---|
141 |
|
---|
142 | $Buffer = $this->ExportToMangosSQL();
|
---|
143 |
|
---|
144 | /*
|
---|
145 | // Data to aowow
|
---|
146 | $Database2 = new mysqli($this->Config['Database']['Host'], $this->Config['Database']['User'], $this->Config['Database']['Password'], $this->Config['Database']['Database']);
|
---|
147 | $Database2->query('SET NAMES '.$this->Config['Database']['Charset']);
|
---|
148 | $Database2->select_db($AoWoWconf['mangos']['db']);
|
---|
149 | $AoWoWTables = array(
|
---|
150 | 'aowow_resistances' => 'Id',
|
---|
151 | 'aowow_spelldispeltype' => 'Id',
|
---|
152 | 'aowow_skill' => 'skillID',
|
---|
153 | );
|
---|
154 | foreach($AoWoWTables as $AoWoWTable => $IndexColum)
|
---|
155 | {
|
---|
156 | $Buffer .= '--'.$AoWoWTable.', ';
|
---|
157 | $Buffer .= "\n\n";
|
---|
158 | $Query = 'SELECT `name`,`'.$IndexColum.'` FROM `'.$AoWoWTable.'`';
|
---|
159 | $DbResult = $Database2->query($Query);
|
---|
160 | while($Line = $DbResult->fetch_assoc())
|
---|
161 | {
|
---|
162 | $Ori_text = $Line['name'];
|
---|
163 | $DbResult2 = $Database2->query('SELECT `Text` AS `En`,
|
---|
164 | (SELECT `Text` FROM `'.$Config['Database']['Database'].'`.`TextGlobalString` AS `TableTran`
|
---|
165 | WHERE `TableEn`.`Entry` = `TableTran`.`Entry` AND (`Complete` = 1) AND '.$this->WhereLang.' AND '.$this->WhereUsers.$this->OrderByUserList.' LIMIT 1) AS `Tran`
|
---|
166 | FROM `'.$Config['Database']['Database'].'`.`TextGlobalString` AS `TableEn` WHERE
|
---|
167 | `Text` = "'.addslashes($Ori_text).'" LIMIT 1');
|
---|
168 | $Tran = $DbResult2->fetch_assoc();
|
---|
169 | //echo ($Line['name'].'='.$Tran['tran']);
|
---|
170 | if($Tran['Tran'] == '')
|
---|
171 | {
|
---|
172 | $DbResult2 = $Database2->query('SELECT `OptionText` AS `En`,
|
---|
173 | (SELECT `OptionText` FROM `'.$this->Config['Database']['Database'].'`.`TextNPCOption` AS `TableTran`
|
---|
174 | WHERE `TableEn`.`Entry` = `TableTran`.`Entry` AND (`Complete` = 1) AND '.$this->WhereLang.'
|
---|
175 | AND '.$this->WhereUsers.$this->OrderByUserList.' LIMIT 1) AS `Tran`
|
---|
176 | FROM `'.$this->Config['Database']['Database'].'`.`TextNPCOption` AS `TableEn` WHERE
|
---|
177 | `OptionText` = "'.addslashes($Ori_text).'" LIMIT 1');
|
---|
178 | $Tran = $DbResult2->fetch_assoc();
|
---|
179 | }
|
---|
180 |
|
---|
181 | if($Tran['Tran'] <> '')
|
---|
182 | $Buffer .= 'UPDATE `'.$AoWoWTable.'` SET `name` = "'.addslashes($Tran['Tran']).'" WHERE '.$IndexColum.' = '.$Line[$IndexColum].' ;'."\n";
|
---|
183 | }
|
---|
184 | $Buffer .= "\n\n";
|
---|
185 | }
|
---|
186 | */
|
---|
187 | if($this->Export['WithDiacritic'] != 1) $Buffer = utf2ascii($Buffer);
|
---|
188 | return($Buffer);
|
---|
189 | }
|
---|
190 |
|
---|
191 |
|
---|
192 | function ExportToXML()
|
---|
193 | {
|
---|
194 | global $TranslationTree, $User;
|
---|
195 |
|
---|
196 | $this->LoadFilters($this->Id);
|
---|
197 |
|
---|
198 | $Buffer = '<?xml version="1.0" encoding="utf-8"?>'."\n".
|
---|
199 | "<document>\n".
|
---|
200 | " <meta>\n".
|
---|
201 | " <projecturl>".$this->Config['Web']['Host'].$this->System->Link('/')."</projecturl>\n".
|
---|
202 | " <time>".date('r')."</time>\n".
|
---|
203 | " <diacritics mode=".'"'.$this->Export['WithDiacritic'].'"'." />\n".
|
---|
204 | " <author>".$User->Name."</author>\n".
|
---|
205 | " <contributors>\n";
|
---|
206 | foreach(explode(',', $this->UserNames) as $UserName)
|
---|
207 | $Buffer .= " <user>".$UserName."</user>\n";
|
---|
208 | $Buffer .=
|
---|
209 | " </contributors>\n".
|
---|
210 | " </meta>\n".
|
---|
211 | " <translation>\n";
|
---|
212 |
|
---|
213 | $DbResult = $this->Database->query('SELECT `Group`.* FROM `ExportGroup` JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id);
|
---|
214 | while($Group = $DbResult->fetch_assoc())
|
---|
215 | {
|
---|
216 | if($Group['MangosTable'] == '')
|
---|
217 | {
|
---|
218 | $Group['MangosTable'] = $Group['TablePrefix'];
|
---|
219 | $Group['MangosTableIndex'] = 'entry';
|
---|
220 | }
|
---|
221 | $Buffer .= ' <group id="'.$Group['Id'].'" name="'.$Group['TablePrefix'].'">'."\n";
|
---|
222 | $DbResult2 = $this->Database->query($this->BuildQuery($Group));
|
---|
223 | while($Line = $DbResult2->fetch_assoc())
|
---|
224 | {
|
---|
225 | $Buffer .= ' <item id="'.$Line['Entry'].'" user="'.$Line['UserName'].'">'."\n";
|
---|
226 | $Values = '';
|
---|
227 | foreach($TranslationTree[$Group['Id']]['Items'] as $GroupItem)
|
---|
228 | {
|
---|
229 | if($GroupItem['MangosColumn'] == '') $GroupItem['MangosColumn'] = $GroupItem['Column'];
|
---|
230 | if($Line[$GroupItem['Column']] != '')
|
---|
231 | $Buffer .= ' <text index="'.$GroupItem['Id'].'" name="'.$GroupItem['Column'].'">'.addslashes($Line[$GroupItem['Column']]).'</text>'."\n";
|
---|
232 | }
|
---|
233 | $Buffer .= " </item>\n";
|
---|
234 | }
|
---|
235 | $Buffer .= " </group>\n";
|
---|
236 | }
|
---|
237 | if($this->Export['WithDiacritic'] != 1) $Buffer = utf2ascii($Buffer);
|
---|
238 | $Buffer .= " </translation>\n".
|
---|
239 | "</document>";
|
---|
240 | return($Buffer);
|
---|
241 | }
|
---|
242 |
|
---|
243 | function ExportToDBC()
|
---|
244 | {
|
---|
245 | global $TranslationTree, $Config;
|
---|
246 |
|
---|
247 | $this->LoadFilters();
|
---|
248 |
|
---|
249 | $DbResult = $this->Database->query('SELECT `Group`.* FROM `ExportGroup` JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id.' AND `Group`.`DBCFileName` != ""');
|
---|
250 | $Output = 'Počet generovaných skupin: '.$DbResult->num_rows."\n";
|
---|
251 | while($Group = $DbResult->fetch_assoc())
|
---|
252 | {
|
---|
253 | $Output .= $Group['Name'].', ';
|
---|
254 | if(file_exists('../source/'.$this->ClientVersion['Version'].'/dbc/'.$Group['DBCFileName'].'.dbc'))
|
---|
255 | {
|
---|
256 | // Load string column index list
|
---|
257 | $DbResult2 = $this->Database->query('SELECT * FROM `GroupItem` JOIN `GroupItemDBC` ON `GroupItem`.`Id` = `GroupItemDBC`.`GroupItem` AND `GroupItemDBC`.`ClientVersion` = '.$this->ClientVersion['Id'].' WHERE `GroupItem`.`Group` = '.$Group['Id']);
|
---|
258 | $ColumnIndexes = array();
|
---|
259 | $ColumnFormat = array();
|
---|
260 | while($DbRow = $DbResult2->fetch_assoc())
|
---|
261 | {
|
---|
262 | $ColumnFormat[$DbRow['ColumnIndex']] = FORMAT_STRING;
|
---|
263 | $ColumnIndexes[$DbRow['GroupItem']] = $DbRow['ColumnIndex'];
|
---|
264 | }
|
---|
265 |
|
---|
266 | // Load all data into lookup table
|
---|
267 | $LookupTable = array();
|
---|
268 | $DbResult2 = $this->Database->query($this->BuildQuery($Group));
|
---|
269 | while($DbRow = $DbResult2->fetch_assoc())
|
---|
270 | $LookupTable[$DbRow[$Group['PrimaryKeyItem']]] = $DbRow;
|
---|
271 |
|
---|
272 | // Open original DBC file
|
---|
273 | $SourceDBCFile = new DBCFile();
|
---|
274 | $SourceDBCFile->OpenFile('../source/'.$this->ClientVersion['Version'].'/dbc/'.$Group['DBCFileName'].'.dbc', $ColumnFormat);
|
---|
275 |
|
---|
276 | // Create new DBC file
|
---|
277 | if(!file_exists($this->TempDir.'dbc/')) mkdir ($this->TempDir.'dbc/', 0777, true);
|
---|
278 | $NewDBCFile = new DBCFile();
|
---|
279 | $NewDBCFile->CreateFile($this->TempDir.'dbc/'.$Group['DBCFileName'].'.dbc', $ColumnFormat);
|
---|
280 | $NewDBCFile->SetRecordCount($SourceDBCFile->GetRecordCount());
|
---|
281 | $NewDBCFile->SetFieldCount($SourceDBCFile->GetFieldCount());
|
---|
282 | $NewDBCFile->Commit();
|
---|
283 |
|
---|
284 | // Replace translated strings
|
---|
285 | $OldProgress = -1;
|
---|
286 | $Output .= "\n\r";
|
---|
287 | $RowCount = $SourceDBCFile->GetRecordCount();
|
---|
288 | $FieldCount = $SourceDBCFile->GetFieldCount();
|
---|
289 | for($Row = 0; $Row < $RowCount; $Row++)
|
---|
290 | {
|
---|
291 | $Line = $SourceDBCFile->GetLine($Row);
|
---|
292 |
|
---|
293 | // Get multicolumn index value
|
---|
294 | $PrimaryKeyItem = '';
|
---|
295 | $ColumnItems = explode(',', $Group['DBCIndex']);
|
---|
296 | if(count($ColumnItems) > 1)
|
---|
297 | {
|
---|
298 | foreach($ColumnItems as $ColumnItem)
|
---|
299 | $PrimaryKeyItem .= $Line[$ColumnItem].'_';
|
---|
300 | $PrimaryKeyItem = substr($PrimaryKeyItem, 0, -1);
|
---|
301 | } else $PrimaryKeyItem = $Line[$Group['DBCIndex']];
|
---|
302 |
|
---|
303 | if(array_key_exists($PrimaryKeyItem, $LookupTable))
|
---|
304 | {
|
---|
305 | // Replace text columns
|
---|
306 | $LookupTableItem = $LookupTable[$PrimaryKeyItem];
|
---|
307 | foreach($TranslationTree[$Group['Id']]['Items'] as $GroupItem)
|
---|
308 | {
|
---|
309 | if(array_key_exists($GroupItem['Id'], $ColumnIndexes))
|
---|
310 | $Line[$ColumnIndexes[$GroupItem['Id']]] = $LookupTableItem[$GroupItem['Column']];
|
---|
311 | }
|
---|
312 | }
|
---|
313 | $NewDBCFile->SetLine($Row, $Line);
|
---|
314 |
|
---|
315 | // Show completion progress
|
---|
316 | $Progress = round($Row / $RowCount * 100);
|
---|
317 | if($Progress != $OldProgress)
|
---|
318 | {
|
---|
319 | $Output .= $Progress."%\r";
|
---|
320 | $OldProgress = $Progress;
|
---|
321 | }
|
---|
322 | }
|
---|
323 | $NewDBCFile->Commit();
|
---|
324 | } else $Output .= ShowMessage('Zdrojový soubor '.'../source/'.$this->ClientVersion['Version'].'/dbc/'.$Group['DBCFileName'].'.dbc'.' nenalezen.'."\n", MESSAGE_CRITICAL);
|
---|
325 | }
|
---|
326 | $Output .= 'Hotovo <br />';
|
---|
327 | return($Output);
|
---|
328 | }
|
---|
329 |
|
---|
330 | function ExportToLua()
|
---|
331 | {
|
---|
332 | global $TranslationTree;
|
---|
333 |
|
---|
334 | $this->LoadFilters();
|
---|
335 |
|
---|
336 | $Output = '';
|
---|
337 | if(!file_exists($this->TempDir.'lua/')) mkdir($this->TempDir.'lua/', 0777, true);
|
---|
338 | $DbResult = $this->Database->query('SELECT `Group`.* FROM `ExportGroup` JOIN `Group` ON `Group`.`Id` = `ExportGroup`.`Group` WHERE `ExportGroup`.`Export`='.$this->Id.' AND `Group`.`LuaFileName` != ""');
|
---|
339 | while($Group = $DbResult->fetch_assoc())
|
---|
340 | {
|
---|
341 | $Output .= $Group['Name'].'... ';
|
---|
342 | $File = new FileStream();
|
---|
343 | $File->OpenFile('../source/'.$this->ClientVersion['Version'].'/lua/'.$Group['LuaFileName'].'.lua');
|
---|
344 | $File2 = new FileStream();
|
---|
345 | $File2->CreateFile($this->TempDir.'lua/'.$Group['LuaFileName'].'.lua');
|
---|
346 |
|
---|
347 | $LookupTable = array();
|
---|
348 | $DbResult2 = $this->Database->query($this->BuildQuery($Group));
|
---|
349 | while($DbRow = $DbResult2->fetch_assoc())
|
---|
350 | $LookupTable[$DbRow['ShortCut']] = $DbRow;
|
---|
351 | //print_r($LookupTable);
|
---|
352 |
|
---|
353 | while(!$File->EOF())
|
---|
354 | {
|
---|
355 | $Line = $File->ReadLine();
|
---|
356 | if(strpos($Line, '=') !== false)
|
---|
357 | {
|
---|
358 | $LineParts = explode('=', $Line, 2);
|
---|
359 | $Value['ShortCut'] = trim($LineParts[0]);
|
---|
360 | $Line = trim($LineParts[1]);
|
---|
361 | if($Line[0] == '"')
|
---|
362 | {
|
---|
363 | // Quoted string value
|
---|
364 | $Line = substr($Line, 1); // Skip start qoute
|
---|
365 | $TempLine = str_replace('\"', ' ', $Line); // Temporary remove slashed quotes
|
---|
366 | $Value['Text'] = substr($Line, 0, strpos($TempLine, '"'));
|
---|
367 | // $Value['Text'] = str_replace('\n', "\n", $Value['Text']);
|
---|
368 | // $Value['Text'] = addslashes(stripslashes($Value['Text']));
|
---|
369 | $Line = trim(substr($Line, strpos($TempLine, '"') + 1)); // Skip closing quote and semicolon {
|
---|
370 | } else
|
---|
371 | {
|
---|
372 | // Nonstring value
|
---|
373 | $Value['Text'] = substr($Line, 0, strpos($Line, ';'));
|
---|
374 | }
|
---|
375 | $Line = substr($Line, strpos($Line, ';') + 1);
|
---|
376 | $Value['Comment'] = addslashes(stripslashes(substr($Line, 3))); // Skip " --"
|
---|
377 |
|
---|
378 | if(array_key_exists($Value['ShortCut'], $LookupTable))
|
---|
379 | {
|
---|
380 | $DbRow = $LookupTable[$Value['ShortCut']];
|
---|
381 | $Value['Text'] = addslashes($DbRow['Text']);
|
---|
382 | // Escape new line control characters
|
---|
383 | $Value['Text'] = str_replace("\n", '\n', $Value['Text']);
|
---|
384 | $Value['Text'] = str_replace("\r", '', $Value['Text']);
|
---|
385 | $Value['Comment'] = $DbRow['Comment'];
|
---|
386 | // Only one line comments allowed
|
---|
387 | $Value['Comment'] = str_replace("\n", ' ', $Value['Comment']);
|
---|
388 | $Value['Comment'] = str_replace("\r", '', $Value['Comment']);
|
---|
389 | //echo('.');
|
---|
390 | }
|
---|
391 | $NewLine = $Value['ShortCut'].' = "'.$Value['Text'].'";';
|
---|
392 | //if($Value['Comment'] != '') $NewLine .= ' -- '.$Value['Comment'];
|
---|
393 | $NewLine .= "\r\n";
|
---|
394 | $File2->WriteLine($NewLine);
|
---|
395 | } else $File2->WriteLine($Line);
|
---|
396 | }
|
---|
397 | $Output .= 'Hotovo <br/>';
|
---|
398 | }
|
---|
399 | return($Output);
|
---|
400 | }
|
---|
401 | }
|
---|
402 |
|
---|
403 | ?>
|
---|