Changeset 290 for trunk/export/index.php
- Timestamp:
- Dec 27, 2009, 1:08:48 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/export/index.php
r286 r290 3 3 session_start(); 4 4 5 // příkaz: 6 7 //php index.php "action=result" 'ExportSetting=a:10:{s:11:"users-order";s:838:",459,1,2,499,304,462,407,379,58,400,392,119,281,590,277,159,192,588,503,586,131,195,288,208,537,426,337,146,30,122,598,399,596,28,8,319,174,33,165,188,269,18,84,331,578,591,147,579,592,289,303,567,243,502,144,285,161,568,351,163,547,262,256,141,536,301,318,214,486,172,154,466,446,335,127,563,76,293,173,325,580,290,153,543,23,196,509,552,237,389,317,177,52,594,416,539,473,573,17,5,139,452,148,362,210,346,35,553,71,68,394,143,369,515,448,140,445,32,171,211,347,226,152,403,245,217,27,7,268,549,86,81,348,370,476,132,562,307,575,583,291,555,548,16,474,182,556,535,320,252,359,264,338,533,405,577,250,221,582,197,230,72,242,213,409,472,186,554,523,492,378,413,512,581,352,518,485,602,601,604,603,606,607,595,609,617,614,618,616,613,622,624,638,641,643,626,627,648,639,652,642,650,26,156,640,633,635,653,637,654,636,284,531,585,629,651,647";s:15:"users-selection";a:44:{i:0;s:3:"459";i:1;s:1:"1";i:2;s:1:"2";i:3;s:3:"499";i:4;s:3:"304";i:5;s:3:"462";i:6;s:3:"407";i:7;s:3:"379";i:8;s:3:"400";i:9;s:3:"281";i:10;s:3:"277";i:11;s:3:"159";i:12;s:3:"588";i:13;s:3:"503";i:14;s:3:"586";i:15;s:3:"131";i:16;s:3:"195";i:17;s:3:"288";i:18;s:3:"208";i:19;s:3:"537";i:20;s:3:"426";i:21;s:3:"337";i:22;s:3:"122";i:23;s:3:"319";i:24;s:3:"174";i:25;s:3:"165";i:26;s:3:"188";i:27;s:3:"269";i:28;s:2:"18";i:29;s:3:"331";i:30;s:3:"578";i:31;s:3:"579";i:32;s:3:"592";i:33;s:3:"567";i:34;s:3:"568";i:35;s:3:"446";i:36;s:3:"580";i:37;s:3:"362";i:38;s:3:"549";i:39;s:3:"562";i:40;s:3:"556";i:41;s:3:"618";i:42;s:3:"613";i:43;s:3:"622";}s:6:"groups";a:18:{i:0;s:1:"1";i:1;s:1:"2";i:2;s:1:"3";i:3;s:1:"4";i:4;s:1:"5";i:5;s:1:"6";i:6;s:1:"7";i:7;s:1:"8";i:8;s:2:"10";i:9;s:2:"11";i:10;s:2:"12";i:11;s:2:"13";i:12;s:2:"14";i:13;s:2:"15";i:14;s:2:"16";i:15;s:2:"17";i:16;s:2:"18";i:17;s:2:"19";}s:10:"Diacritics";b:1;s:11:"language-cz";b:1;s:11:"language-sk";b:1;s:14:"language-other";b:0;s:6:"Export";s:11:"AoWoWImport";s:9:"language1";b:0;s:9:"language2";b:0;}' 8 9 // Load commandline parameters 10 if(!array_key_exists('REMOTE_ADDR', $_SERVER)) 11 { 12 foreach($_SERVER['argv'] as $parameter) 13 { 14 if(strpos($parameter, '=') !== false) 5 include_once('../includes/global.php'); 6 include_once('export_output.php'); 7 8 function ExportList() 9 { 10 global $Database; 11 12 echo('<a href="?Action=ViewList">Všechny</a>'); 13 if(Licence(LICENCE_USER)) 14 { 15 echo(' <a href="?Action=ViewList&Filter=Others">Ostatních</a>'); 16 echo(' <a href="?Action=ViewList&Filter=My">Moje</a>'); 17 } 18 19 $Filter = ''; 20 if(array_key_exists('Filter', $_GET)) 21 { 22 if($_GET['Filter'] == 'My') $Filter = ' WHERE `Export`.`User` = '.$_SESSION['UserID']; 23 if($_GET['Filter'] == 'Others') $Filter = ' WHERE `Export`.`User` != '.$_SESSION['UserID']; 24 } 25 26 $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM `Export` '.$Filter); 27 $DbRow = mysql_fetch_row($DbResult); 28 $PageList = GetPageList($DbRow[0]); 29 30 echo('<h3>Seznam exportů</h3>'); 31 echo($PageList['Output']); 32 33 $TableColumns = array( 34 array('Name' => 'TimeCreate', 'Title' => 'Čas vytvoření'), 35 array('Name' => 'UserName', 'Title' => 'Překladatel'), 36 array('Name' => 'Title', 'Title' => 'Popis'), 37 array('Name' => 'UsedCount', 'Title' => 'Počet stažení'), 38 array('Name' => 'UserCount', 'Title' => 'Překladatelů'), 39 array('Name' => 'GroupCount', 'Title' => 'Překladových skupin'), 40 array('Name' => '', 'Title' => 'Akce'), 41 ); 42 $Order = GetOrderTableHeader($TableColumns, 'TimeCreate'); 43 echo('<table class="BaseTable">'); 44 echo($Order['Output']); 45 46 $DbResult = $Database->SQLCommand('SELECT `user`.`user` AS `UserName`, `Export`.*, (SELECT COUNT(*) FROM ExportGroup WHERE ExportGroup.Export=Export.Id) AS GroupCount, (SELECT COUNT(*) FROM ExportUser WHERE ExportUser.Export=Export.Id) AS UserCount FROM `Export` LEFT JOIN `user` ON `user`.`ID`=`Export`.`User` '.$Filter.$Order['SQL'].$PageList['SQLLimit']); 47 while($Export = mysql_fetch_assoc($DbResult)) 48 { 49 $Action = '<a href="?Action=View&ExportId='.$Export['Id'].'">Zobrazit</a>'; 50 if($Export['User'] == $_SESSION['UserID']) $Action .= ' <a href="?Action=Delete&ExportId='.$Export['Id'].'"><div onclick="return confirmAction(\'Opravdu smazat položku?\');">Smazat</div></a>'; 51 echo('<tr><td>'.$Export['TimeCreate'].'</td><td>'.$Export['UserName'].'</td><td>'.$Export['Title'].'</td><td>'.$Export['UsedCount'].'</td><td>'.$Export['UserCount'].'</td><td>'.$Export['GroupCount'].'</td><td>'.$Action.'</td></tr>'); 52 } 53 echo('</table>'); 54 echo($PageList['Output']); 55 56 if(Licence(LICENCE_USER)) echo('<br/><div style="text-align: center;"><a href="?Action=Create">Vytvořit nový export</a></div>'); 57 } 58 59 function ExportCreate() 60 { 61 if(Licence(LICENCE_USER)) 62 { 63 echo('<form action="?Action=CreateFinish" method="post">'. 64 '<fieldset><legend>Vytvoření nového exportu</legend>'. 65 '<table><tr><td>Titulek:</td><td><input type="text" name="Title" /></td></tr>'. 66 '<tr><td colspan="2"><input type="submit" value="Vytvořit" /></td></tr>'. 67 '</table></fieldset></form>'); 68 } else echo('Nemáte oprávnění'); 69 } 70 71 function ExportCreateFinish() 72 { 73 global $Database; 74 75 if(Licence(LICENCE_USER)) 76 { 77 if(array_key_exists('Title', $_POST)) 15 78 { 16 $index = substr($parameter,0,strpos($parameter, '=')); 17 $parameter = substr($parameter,strpos($parameter, '=')+1); 18 //echo ($index.' ---- '.$parameter); 19 $_GET[$index] = $parameter; 79 $Database->SQLCommand('INSERT INTO `Export` (`Title`, `User`, `TimeCreate`) VALUES ("'.$_POST['Title'].'", '.$_SESSION['UserID'].', NOW())'); 80 $ExportId = mysql_insert_id(); 81 echo('Nový export vytvořen.<br/>Přímý odkaz na tento export: <a href="?Action=View&ExportId='.$ExportId.'">zde</a><br/><br/>'); 82 $_GET['Filter'] = 'my'; 83 ExportList(); 84 } else echo('Chybí údaje formuláře'); 85 } else echo('Nemáte oprávnění'); 86 } 87 88 function ExportDelete() 89 { 90 global $Database; 91 92 if(Licence(LICENCE_USER)) 93 { 94 if(array_key_exists('ExportId', $_GET)) 95 { 96 $Database->SQLCommand('DELETE FROM Export WHERE Id='.$_GET['ExportId']); 97 echo('Export smazán.<br/><br/>'); 98 $_GET['Filter'] = 'my'; 99 ExportList(); 100 } else echo('Nebylo zadáno Id'); 101 } else echo('Nemáte oprávnění'); 102 } 103 104 function ExportViewTranslators() 105 { 106 global $Database, $TranslationTree, $Config; 107 108 $DisabledInput = array(false => ' disabled="disabled"', true => ''); 109 if(array_key_exists('ExportId', $_GET)) 110 { 111 $DbRows = $Database->SQLCommand('SELECT * FROM Export WHERE Id='.$_GET['ExportId']); 112 if(mysql_num_rows($DbRows) > 0) 113 { 114 $Export = mysql_fetch_assoc($DbRows); 115 if(Licence(LICENCE_USER) and ($_SESSION['UserID'] == $Export['User'])) $Editable = true; 116 else $Editable = false; 117 118 119 if(array_key_exists('Operation', $_GET)) 120 { 121 if($_GET['Operation'] == 'Save') 122 { 123 //print_r($_POST); 124 // Update user selection page 125 foreach($_POST as $Index => $Value) 126 { 127 if(substr($Index, 0, 3) == 'seq') 128 { 129 $UserId = substr($Index, 3) * 1; 130 if(array_key_exists('sel'.$UserId, $_POST)) $Selected = true; 131 else $Selected = false; 132 $Condition = ' WHERE Export='.$_GET['ExportId'].' AND User='.$UserId; 133 $DbResult = $Database->SQLCommand('SELECT * FROM ExportUser '.$Condition); 134 if(mysql_num_rows($DbResult) > 0) 135 { 136 if(!$Selected) $Database->SQLCommand('DELETE FROM ExportUser '.$Condition); 137 else $Database->SQLCommand('UPDATE ExportUser SET Sequence='.$Value.$Condition); 138 } else 139 { 140 if($Selected) $Database->SQLCommand('INSERT INTO ExportUser (Export, User, Sequence) VALUES ('.$_GET['ExportId'].', '.$UserId.', '.$Value.')'); 141 } 142 } 143 } 144 145 // Recalculate sequence number 146 $Database->SQLCommand('SET @I = 0'); 147 $Database->SQLCommand('UPDATE ExportUser SET Sequence = (@I := @I + 1) WHERE Export='.$_GET['ExportId'].' ORDER BY Sequence;'); 20 148 } 21 } 22 } 23 24 if(!array_key_exists('ExportSetting', $_SESSION)) 25 if(array_key_exists('ExportSetting', $_COOKIE)) 26 $_SESSION['ExportSetting'] = $_COOKIE['ExportSetting']; 27 else $_SESSION['ExportSetting'] = ''; 28 29 setcookie('ExportSetting', $_SESSION['ExportSetting'], time() + 60 * 60 * 24 * 100); 30 include('../includes/global.php'); 31 include('../includes/zip.lib.php'); 32 include('export.php'); 33 include('create_addon.php'); 34 include('../includes/dbc.php'); 35 36 ShowPage(); 37 38 function CheckBox($Name, $Checked = false, $Id = '', $Class = '') 39 { 40 if($Id) $Id = ' id="'.$Id.'"'; else $Id = ''; 41 if($Class) $Class = ' class="'.$Class.'"'; else $Class = ''; 42 if($Checked) $Checked = ' checked="checked"'; else $Checked = ''; 43 return('<input type="checkbox" value="checked" name="'.$Name.'"'.$Checked.$Id.$Class.' />'); 44 } 45 46 function RadioButton($Name, $Value, $Checked = false, $onclick = '') 47 { 48 if($Checked) $Checked = ' checked="checked"'; else $Checked = ''; 49 return('<input onclick="'.$onclick.'" type="radio" name="'.$Name.'" value="'.$Value.'"'.$Checked.' />'); 50 } 51 52 function SelectOption($Name, $Text, $Selected = false) 53 { 54 if($Selected) $Selected = ' selected="selected"'; else $Selected = ''; 55 return('<option value="'.$Name.'"'.$Selected.'>'.$Text.'</option>'); 56 } 57 58 function GetVersions($out) 59 { 60 global $Database,$TranslationTree,$Config; 61 $result = 'null'; 62 if ($out == 'VerseCZ') $out = 'Addon'; 63 if (($out == 'XMLCompressed') or ($out == 'XMLDirect')) $out = 'sources'; 64 if (($out == 'MangosSQLCompressed') or ($out == 'MangosSQLDirect') or ($out == 'AoWoWSQLCompressed') or ($out == 'AoWoWSQLDirect') or ($out == 'AoWoWImport')) $out = 'sql'; 65 switch($out) 66 { 67 case 'Addon': 68 $Addon_verses = scandir('files', 1); 69 unset($Addon_verses[count($Addon_verses) - 1]); 70 unset($Addon_verses[count($Addon_verses) - 1]); 71 unset($Addon_verses[count($Addon_verses) - 1]); 72 $result = '['; 73 foreach($Addon_verses as $version) { 74 $result .= "'".$version."',"; 149 } 150 151 $Columns = ''; 152 $Joins = ''; 153 foreach($TranslationTree as $Group) 154 if($Group['TablePrefix'] != '') 155 { 156 $Columns .= 'COALESCE(T'.$Group['Id'].'.Count, 0) + '; 157 $Joins .= ' LEFT JOIN (SELECT User, COUNT(User) as Count FROM `'.$Group['TablePrefix'].'` WHERE (Complete = 1) AND (Language <> 0) GROUP BY User) as T'.$Group['Id'].' ON user.ID=T'.$Group['Id'].'.User'; 158 } 159 $Query = 'SELECT (@I := @I + 1) AS Sequence2, ExportUser.Sequence, T.ID, T.TranslatedCount, T.user, T.XP FROM (SELECT user.ID, user.user, user.XP, ('.substr($Columns, 0, -3).') as TranslatedCount FROM `user`'.$Joins.') AS T'; 160 $Query .=' LEFT JOIN ExportUser ON ExportUser.Export = '.$_GET['ExportId'].' AND ExportUser.User=T.ID'; 161 $Query .=' WHERE T.TranslatedCount > 0 ORDER BY COALESCE(Sequence, 100)'; 162 163 $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM ('.$Query.') AS X'); 164 $DbRow = mysql_fetch_row($DbResult); 165 $PageList = GetPageList($DbRow[0]); 166 167 $TableColumns = array( 168 array('Name' => 'user', 'Title' => 'Jméno'), 169 array('Name' => 'TranslatedCount', 'Title' => 'Překladů'), 170 array('Name' => 'XP', 'Title' => 'Úroveň'), 171 array('Name' => '', 'Title' => 'Výběr'), 172 array('Name' => 'Sequence2', 'Title' => 'Pořadí'), 173 ); 174 $Order = GetOrderTableHeader($TableColumns, 'TranslatedCount'); 175 echo('<form action="?Action=View&ExportId='.$_GET['ExportId'].'&Operation=Save" method="post">'); 176 echo('<h3>Překladatelé</h3>'); 177 echo('<input type="submit" value="Uložit výběr" '.$DisabledInput[$Editable].'/><br />'. 178 'Zvolte ze seznamu uživatele, od kterých chcete načítat překlady a upravte jejich pořadí.<br />'. 179 'Pořadí řádků je dáno číselnou hodnotou, kterou lze změnit na požadované pořadí. Řádky se stejným pořadovým číslem budou přečíslovány vzestupně.'); 180 181 echo($PageList['Output']); 182 echo('<table class="BaseTable">'); 183 echo($Order['Output']); 184 185 $Query = 'SELECT * FROM ('.$Query.') AS TX '.$Order['SQL'].$PageList['SQLLimit']; 186 $Database->SQLCommand('SET @I = 0'); 187 $DbResult = $Database->SQLCommand($Query); 188 while($User = mysql_fetch_assoc($DbResult)) 189 { 190 $Checked = $User['Sequence'] != ''; 191 $Selection = CheckBox('sel'.$User['ID'], $Checked, '', 'CheckBox', !$Editable); 192 $Sequence = '<input type="text" name="seq'.$User['ID'].'" style="text-align: center; width: 40px;" value="'.$User['Sequence2'].'"'.$DisabledInput[$Editable].'/>'; 193 echo('<tr> 194 <td><a href="'.$Config['Web']['BaseURL'].'/TranslationList.php?user='.$User['ID'].'&action=userall" title="Zobrazit všechny jeho přeložené texty">'.$User['user'].'</a></td> 195 <td>'.$User['TranslatedCount'].'</td> 196 <td><img src="'.$Config['Web']['TempFolder'].$User['user'].'/level.png" alt="Úroveň uživatele" /></td> 197 <td>'.$Selection.'</td><td>'.$Sequence.'</td></tr>'); 198 } 199 echo('</table>'); 200 echo('</form>'); 201 echo($PageList['Output']); 202 } else echo('Položka nenalezena'); 203 } else echo('Nebylo zadáno Id'); 204 } 205 206 function ExportViewGeneral() 207 { 208 global $Database; 209 210 $DisabledInput = array(false => ' disabled="disabled"', true => ''); 211 $DisabledTextArea = array(false => ' readonly="yes"', true => ''); 212 echo('<h3>Obecná nastavení</h3>'); 213 if(array_key_exists('ExportId', $_GET)) 214 { 215 $DbRows = $Database->SQLCommand('SELECT * FROM Export WHERE Id='.$_GET['ExportId']); 216 if(mysql_num_rows($DbRows) > 0) 217 { 218 $Export = mysql_fetch_assoc($DbRows); 219 if(Licence(LICENCE_USER) and ($_SESSION['UserID'] == $Export['User'])) $Editable = true; 220 else $Editable = false; 221 if($Export['WithDiacritic'] == 1) $WithDiacritic = ' checked="checked"'; else $WithDiacritic = ''; 222 echo('<form action="?Action=ModifyFinish&ExportId='.$Export['Id'].'" method="post">'. 223 '<table>'. 224 '<tr><td colspan="2"><input type="submit" value="Uložit" '.$DisabledInput[$Editable].'/></td></tr>'. 225 '<tr><td>Označení:</td><td><input type="text" style="width: 400px" name="Title" value="'.$Export['Title'].'"'.$DisabledInput[$Editable].'/></td></tr>'. 226 '<tr><td>Popis:</td><td><textarea name="Description" cols="54" rows="10"'.$DisabledTextArea[$Editable].'></textarea></td></tr>'. 227 '<tr><td>Včetně háčků a čárek</td><td><input type="checkbox" name="WithDiacritic" '.$WithDiacritic.''.$DisabledInput[$Editable].'/></td></tr>'. 228 '</table></fieldset></form>'); 229 } else echo('Položka nenalezena'); 230 } else echo('Nebylo zadáno Id'); 231 } 232 233 function ExportViewLanguages() 234 { 235 global $Database, $TranslationTree, $Config; 236 237 $DisabledInput = array(false => ' disabled="disabled"', true => ''); 238 if(array_key_exists('ExportId', $_GET)) 239 { 240 $DbRows = $Database->SQLCommand('SELECT * FROM Export WHERE Id='.$_GET['ExportId']); 241 if(mysql_num_rows($DbRows) > 0) 242 { 243 $Export = mysql_fetch_assoc($DbRows); 244 if(Licence(LICENCE_USER) and ($_SESSION['UserID'] == $Export['User'])) $Editable = true; 245 else $Editable = false; 246 247 if(array_key_exists('Operation', $_GET)) 248 { 249 if($_GET['Operation'] == 'Save') 250 { 251 //print_r($_POST); 252 // Update user selection page 253 foreach($_POST as $Index => $Value) 254 { 255 if(substr($Index, 0, 3) == 'seq') 256 { 257 $LanguageId = substr($Index, 3) * 1; 258 if(array_key_exists('sel'.$LanguageId, $_POST)) $Selected = true; 259 else $Selected = false; 260 $Condition = ' WHERE Export='.$_GET['ExportId'].' AND Language='.$LanguageId; 261 $DbResult = $Database->SQLCommand('SELECT * FROM ExportLanguage '.$Condition); 262 if(mysql_num_rows($DbResult) > 0) 263 { 264 if(!$Selected) $Database->SQLCommand('DELETE FROM ExportLanguage '.$Condition); 265 else $Database->SQLCommand('UPDATE ExportLanguage SET Sequence='.$Value.$Condition); 266 } else 267 { 268 if($Selected) $Database->SQLCommand('INSERT INTO ExportLanguage (Export, Language, Sequence) VALUES ('.$_GET['ExportId'].', '.$LanguageId.', '.$Value.')'); 269 } 270 } 75 271 } 76 $result = substr($result,0,strlen($result)-1); 77 $result .= "]"; 78 break; 79 case 'sources': 80 $dirs = scandir('../source', 1); 81 unset($dirs[count($dirs) - 1]); 82 unset($dirs[count($dirs) - 1]); 83 unset($dirs[count($dirs) - 1]); 84 $result = '['; 85 foreach($dirs as $dir) { 86 $result .= "'".$dir."',"; 87 } 88 $result = substr($result,0,strlen($result)-1); 89 $result .= "]"; 90 break; 91 case 'sql': 92 $dirs = scandir('../source', 1); 93 unset($dirs[count($dirs) - 1]); 94 unset($dirs[count($dirs) - 1]); 95 unset($dirs[count($dirs) - 1]); 96 $result = '['; 97 foreach($dirs as $dir) { 98 if ($TranslationTree[1]['LastVersion'] >= GetBuildNumber($dir)) 99 $result .= "'".$dir."',"; 100 } 101 if ($result <> '[') $result = substr($result,0,strlen($result)-1); 102 $result .= "]"; 103 break; 104 case 'DBC': 105 $sql = 'SELECT Version FROM wow_client_version WHERE DBCColumns_GameTips <> "" AND DBCColumns_Spell <> "" ORDER BY BuildNumber DESC'; 106 $ID = $Database->SQLCommand($sql); 107 $result = '['; 108 while($Line = mysql_fetch_assoc($ID)) 272 273 // Recalculate sequence number 274 $Database->SQLCommand('SET @I = 0'); 275 $Database->SQLCommand('UPDATE ExportLanguage SET Sequence = (@I := @I + 1) WHERE Export='.$_GET['ExportId'].' ORDER BY Sequence;'); 276 } 277 } 278 279 $Query = 'SELECT (@I := @I + 1) AS Sequence2, Sequence, language.Id, Name FROM language'; 280 $Query .=' LEFT JOIN ExportLanguage ON ExportLanguage.Export = '.$_GET['ExportId'].' AND ExportLanguage.Language=language.Id'; 281 $Query .=' WHERE language.Enabled = 1 ORDER BY COALESCE(Sequence, 100)'; 282 283 $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM ('.$Query.') AS X'); 284 $DbRow = mysql_fetch_row($DbResult); 285 $PageList = GetPageList($DbRow[0]); 286 287 $TableColumns = array( 288 array('Name' => 'Name', 'Title' => 'Název'), 289 array('Name' => '', 'Title' => 'Výběr'), 290 array('Name' => 'Sequence2', 'Title' => 'Pořadí'), 291 ); 292 $Order = GetOrderTableHeader($TableColumns, 'Name'); 293 echo('<form action="?Action=View&ExportId='.$_GET['ExportId'].'&Operation=Save" method="post">'); 294 echo('<h3>Jazyky</h3>'); 295 echo('<input type="submit" value="Uložit výběr" '.$DisabledInput[$Editable].'/><br />'. 296 'Zvolte ze seznamu dostupných jazyků, ze kterých chcete sestavit překlady a upravte jejich pořadí.<br />'. 297 'Pořadí řádků je dáno číselnou hodnotou, kterou lze změnit na požadované pořadí. Řádky se stejným pořadovým číslem budou přečíslovány vzestupně.'); 298 299 echo($PageList['Output']); 300 echo('<table class="BaseTable">'); 301 echo($Order['Output']); 302 303 $Query = 'SELECT * FROM ('.$Query.') AS TX '.$Order['SQL'].$PageList['SQLLimit']; 304 $Database->SQLCommand('SET @I = 0'); 305 $DbResult = $Database->SQLCommand($Query); 306 while($Langugage = mysql_fetch_assoc($DbResult)) 307 { 308 $Checked = $Langugage['Sequence'] != ''; 309 $Selection = CheckBox('sel'.$Langugage['Id'], $Checked, '', 'CheckBox', !$Editable); 310 $Sequence = '<input type="text" name="seq'.$Langugage['Id'].'" style="text-align: center; width: 40px;" value="'.$Langugage['Sequence2'].'"'.$DisabledInput[$Editable].'/>'; 311 echo('<tr> 312 <td>'.$Langugage['Name'].'</a></td> 313 <td>'.$Selection.'</td><td>'.$Sequence.'</td></tr>'); 314 } 315 echo('</table>'); 316 echo('</form>'); 317 echo($PageList['Output']); 318 } else echo('Položka nenalezena'); 319 } else echo('Nebylo zadáno Id'); 320 } 321 322 function ExportViewGroups() 323 { 324 global $Database, $TranslationTree, $Config; 325 326 $DisabledInput = array(false => ' disabled="disabled"', true => ''); 327 if(array_key_exists('ExportId', $_GET)) 328 { 329 $DbRows = $Database->SQLCommand('SELECT * FROM Export WHERE Id='.$_GET['ExportId']); 330 if(mysql_num_rows($DbRows) > 0) 331 { 332 $Export = mysql_fetch_assoc($DbRows); 333 if(Licence(LICENCE_USER) and ($_SESSION['UserID'] == $Export['User'])) $Editable = true; 334 else $Editable = false; 335 336 if(array_key_exists('Operation', $_GET)) 337 { 338 if($_GET['Operation'] == 'Save') 339 { 340 //print_r($_POST); 341 // Update user selection page 342 foreach($_POST as $Index => $Value) 109 343 { 110 $result .= "'".$Line['Version']."',"; 111 } 112 $result = substr($result,0,strlen($result)-1); 113 $result .= "]"; 114 break; 115 case 'Lua': 116 $dirs = scandir('../source', 1); 117 $result = '['; 118 foreach($dirs as $dir) { 119 $ok = true; 120 foreach($TranslationTree as $Group) 344 if(substr($Index, 0, 3) == 'seq') 121 345 { 122 if(($Group['LuaFileName'] != '') and ($Group['TablePrefix'] != '')) 346 $GroupId = substr($Index, 3) * 1; 347 if(array_key_exists('sel'.$GroupId, $_POST)) $Selected = true; 348 else $Selected = false; 349 $Condition = ' WHERE `Export`='.$_GET['ExportId'].' AND `Group`='.$GroupId; 350 $DbResult = $Database->SQLCommand('SELECT * FROM `ExportGroup` '.$Condition); 351 if(mysql_num_rows($DbResult) > 0) 123 352 { 124 if ((file_exists('../source/'.$dir.'/lua/'.$Group['LuaFileName'].'.lua') == false)) 125 $ok = false; 353 if(!$Selected) $Database->SQLCommand('DELETE FROM `ExportGroup` '.$Condition); 354 } else 355 { 356 if($Selected) $Database->SQLCommand('INSERT INTO `ExportGroup` (`Export`, `Group`) VALUES ('.$_GET['ExportId'].', '.$GroupId.')'); 357 } 358 } 126 359 } 127 360 } 128 if ($ok) $result .= "'".$dir."',"; 129 } 130 $result = substr($result,0,strlen($result)-1); 131 $result .= "]"; 132 break; 133 } 134 return($result); 135 } 136 137 function WriteOption($str,$Selected) 138 { 139 if ($str <> 'null') 140 { 141 $str = substr($str, 2, strlen($str) - 4); 142 $versions = explode("','", $str); 143 foreach($versions as $version) 144 { 145 echo('<option value="'.$version.'"'); 146 if($Selected == $version) echo(' selected="selected"'); 147 echo('>'.$version.'</option>'); 148 } 149 } 150 } 151 152 function WriteSetting($ExportSetting) 153 { 154 echo('<textarea rows="10" cols="100">'.serialize($ExportSetting).'</textarea><br />'. 155 'Odkaz ke stažení s vlastním nastavením: '. 156 '<a href="?action=output&ExportSetting='.htmlspecialchars(serialize($ExportSetting)).'">Odkaz vlastního exportu</a><br />'. 157 'I když se nastavení ukládá, pro jistotu si jej můžete uložit nebo poslat příteli.'); 158 } 159 160 if(array_key_exists('ExportSetting', $_GET)) 161 { 162 $ExportSetting = unserialize(stripcslashes(stripcslashes($_GET['ExportSetting']))); 163 } else 164 { 165 if(array_key_exists('UserID', $_SESSION) and ($_SESSION['UserID'] != '')) 166 { 167 $DbResult = $Database->SQLCommand('SELECT ExportSetting FROM user WHERE ID='.$_SESSION['UserID']); 168 $DbRow = mysql_fetch_assoc($DbResult); 169 $ExportSetting = unserialize($DbRow['ExportSetting']); 170 171 //print_r($_POST); 172 } else $ExportSetting = unserialize($_SESSION['ExportSetting']); 173 } 174 if(!isset($ExportSetting['users-selection'])) $ExportSetting['users-selection'] = array(); 175 if(!isset($ExportSetting['Diacritics'])) $ExportSetting['Diacritics'] = 1; 176 foreach($LanguageList as $Language) 177 if($Language['Enabled'] == 1) 178 if(!isset($ExportSetting['language'.$Language['Id']])) $ExportSetting['language'.$Language['Id']] = 1; 179 if(!isset($ExportSetting['users-order'])) $ExportSetting['users-order'] = ''; 180 if(!isset($ExportSetting['Export'])) $ExportSetting['Export'] = 'Addon'; 181 if(!isset($ExportSetting['Version'])) $ExportSetting['Version'] = $Config['Web']['GameVersion']; 182 if(!isset($ExportSetting['groups'])) $ExportSetting['groups'] = array(); 183 184 function CreateZipFromDir(&$Zip, $Path, $ZipPath) 185 { 186 //echo($Path.'<br />'); 187 $FileList = scandir($Path); 188 foreach($FileList as $FileName) 189 { 190 if(file_exists($Path.$FileName) and ($FileName != '.') and ($FileName != '..')) 191 { 192 //echo($Path.$FileName.'<br />'); 193 if(is_dir($Path.$FileName)) CreateZipFromDir($Zip, $Path.$FileName.'/', $ZipPath.$FileName.'/'); 194 else $Zip->addFile(file_get_contents($Path.$FileName), $ZipPath.$FileName); 195 } 196 } 197 } 198 199 if(!array_key_exists('action', $_GET)) $_GET['action'] = ''; 200 switch($_GET['action']) 201 { 202 case 'result': 203 if (array_key_exists('Version',$_POST)) $ExportSetting['Version'] = $_POST['Version']; 204 if (array_key_exists('Export',$_POST)) $ExportSetting['Export'] = $_POST['Export']; 205 switch($ExportSetting['Export']) 206 { 207 case 'MangosSQLCompressed': 208 if(function_exists('gzcompress')) 209 { 210 $TempDir = $Config['Web']['TempFolder'].$_SESSION['User'].'/'; 211 if(!file_exists($TempDir)) mkdir($TempDir, 0777, true); 212 $SaveFilename = $TempDir.'CzWoW_SQL.zip'; 213 $SQLFilename = 'CzWoW_SQL.sql'; 214 $BufferZip = ExportToMangosSQL($ExportSetting); 215 $ZipFile = new zipfile(); 216 $ZipFile->addFile($BufferZip, $SQLFilename); 217 $Buffer = $ZipFile->file(); 218 file_put_contents($SaveFilename, $Buffer); 219 } else echo('Funkce pro tvorbu Zip souboru není podporována!'); 220 echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'. 221 'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'. 222 '</script>'); 223 224 echo('Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '. 225 '<a href="'.$SaveFilename.'">'.$SQLFilename.'</a><br />'. 226 '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.'); 227 break; 228 case 'MangosSQLDirect': 229 echo('Vygenerovaný SQL kód: <br /><pre class="SQLCode">'); 230 echo(htmlspecialchars(ExportToMangosSQL($ExportSetting))); 231 echo('</pre>'); 232 break; 233 case 'AoWoWSQLCompressed': 234 if(function_exists('gzcompress')) 235 { 236 $TempDir = $Config['Web']['TempFolder'].$_SESSION['User'].'/'; 237 if(!file_exists($TempDir)) mkdir($TempDir, 0777, true); 238 $SaveFilename = $TempDir.'CzAoWoW_SQL.zip'; 239 $SQLFilename = 'CzAoWoW_SQL.sql'; 240 $BufferZip = ExportToAoWoWSQL($ExportSetting); 241 $ZipFile = new zipfile(); 242 $ZipFile->addFile($BufferZip, $SQLFilename); 243 $Buffer = $ZipFile->file(); 244 file_put_contents($SaveFilename, $Buffer); 245 } else echo('Funkce pro tvorbu Zip souboru není podporována!'); 246 echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'. 247 'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'. 248 '</script>'); 249 250 echo('Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '. 251 '<a href="'.$SaveFilename.'">'.$SQLFilename.'</a><br />'. 252 '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.'); 253 break; 254 case 'AoWoWSQLDirect': 255 echo('Vygenerovaný SQL kód: <br /><pre class="SQLCode">'); 256 echo(htmlspecialchars(ExportToAoWoWSQL($ExportSetting))); 257 echo('</pre>'); 258 break; 259 case 'AoWoWImport': 260 require_once('../aowow/configs/config.php'); 261 echo('<div style="font-size: xx-small;">'); 262 echo('Gewneruji SQL kód '); 263 $AoWoWSQL = ExportToAoWoWSQL($ExportSetting); 264 echo('<strong>Hotovo</strong><br />'); 265 266 $Database->SelectDatabase($AoWoWconf['mangos']['db']); 267 $Database->SQLCommand('SET NAMES '.$Config['Database']['Charset']); 361 } 362 363 $Query = 'SELECT `group`.*, `ExportGroup`.`Id` AS `ExportGroupId` FROM `group` LEFT JOIN `ExportGroup` ON `ExportGroup`.`Export`='.$_GET['ExportId'].' AND `Group`=`group`.`Id`'; 364 365 $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM ('.$Query.') AS X'); 366 $DbRow = mysql_fetch_row($DbResult); 367 $PageList = GetPageList($DbRow[0]); 368 369 $TableColumns = array( 370 array('Name' => 'Name', 'Title' => 'Jméno'), 371 array('Name' => 'MangosTable', 'Title' => 'Tabulka MaNGOSu'), 372 array('Name' => 'DBCFileName', 'Title' => 'DBC soubor'), 373 array('Name' => 'LuaFileName', 'Title' => 'Lua soubor'), 374 array('Name' => '', 'Title' => 'Výběr'), 375 ); 376 $Order = GetOrderTableHeader($TableColumns, 'Name'); 377 echo('<form action="?Action=View&ExportId='.$_GET['ExportId'].'&Operation=Save" method="post">'); 378 echo('<h3>Překladové skupiny</h3>'); 379 echo('<input type="submit" value="Uložit výběr" '.$DisabledInput[$Editable].'/><br />'. 380 'Zvolte ze překladových skupin, ze kterých chcete načítat překlady.<br />'); 381 382 echo($PageList['Output']); 383 echo('<table class="BaseTable">'); 384 echo($Order['Output']); 385 386 $Query = 'SELECT * FROM ('.$Query.') AS TX '.$Order['SQL'].$PageList['SQLLimit']; 387 $DbResult = $Database->SQLCommand($Query); 388 while($Group = mysql_fetch_assoc($DbResult)) 389 { 390 $Checked = $Group['ExportGroupId'] != ''; 391 $Selection = CheckBox('sel'.$Group['Id'], $Checked, '', 'CheckBox', !$Editable); 392 echo('<tr>'. 393 '<td>'.$Group['Name'].'</td>'. 394 '<td>'.$Group['MangosTable'].'</td>'. 395 '<td>'.$Group['DBCFileName'].'</td>'. 396 '<td>'.$Group['LuaFileName'].'</td>'. 397 '<td>'.$Selection.'<input type="hidden" name="seq'.$Group['Id'].'"/></td></tr>'); 398 } 399 echo('</table>'); 400 echo('</form>'); 401 echo($PageList['Output']); 402 } else echo('Položka nenalezena'); 403 } else echo('Nebylo zadáno Id'); 404 } 405 406 function ExportViewOutputFormat() 407 { 408 global $Database; 409 410 $DisabledInput = array(false => ' disabled="disabled"', true => ''); 411 if(array_key_exists('ExportId', $_GET)) 412 { 413 $DbRows = $Database->SQLCommand('SELECT * FROM Export WHERE Id='.$_GET['ExportId']); 414 if(mysql_num_rows($DbRows) > 0) 415 { 416 $Export = mysql_fetch_assoc($DbRows); 417 if(Licence(LICENCE_USER) and ($_SESSION['UserID'] == $Export['User'])) $Editable = true; 418 else $Editable = false; 419 420 if(array_key_exists('OutputType', $_POST)) 421 { 422 $Database->SQLCommand('UPDATE Export SET OutputType='.$_POST['OutputType'].' WHERE Id='.$_GET['ExportId']); 423 } 424 425 $DbResult = $Database->SQLCommand('SELECT * FROM Export WHERE Id='.$_GET['ExportId']); 426 $Export = mysql_fetch_assoc($DbResult); 427 428 echo('<h3>Formát generovaného výstupu</h3>'); 429 echo('<form action="?Action=View&ExportId='.$_GET['ExportId'].'&Operation=Save" method="post">'); 430 echo('<input type="submit" value="Uložit" '.$DisabledInput[$Editable].'/><br/>'); 431 $DbResult = $Database->SQLCommand('SELECT * FROM ExportOutputType ORDER BY Name'); 432 while($ExportFormat = mysql_fetch_assoc($DbResult)) 433 { 434 echo(RadioButton('OutputType', $ExportFormat['Id'], $Export['OutputType'] == $ExportFormat['Id'], '', !$Editable).' '.$ExportFormat['Name'].'<br/>'); 435 } 436 echo('</form>'); 437 } else echo('Položka nenalezena'); 438 } else echo('Nebylo zadáno Id'); 439 } 440 441 function ExportViewVersion() 442 { 443 global $Database, $Config; 444 445 $DisabledInput = array(false => ' disabled="disabled"', true => ''); 446 if(array_key_exists('ExportId', $_GET)) 447 { 448 $DbRows = $Database->SQLCommand('SELECT * FROM Export WHERE Id='.$_GET['ExportId']); 449 if(mysql_num_rows($DbRows) > 0) 450 { 451 $Export = mysql_fetch_assoc($DbRows); 452 if(Licence(LICENCE_USER) and ($_SESSION['UserID'] == $Export['User'])) $Editable = true; 453 else $Editable = false; 268 454 269 echo('Aktualizuji aktuality '); 270 $Database->SQLCommand("UPDATE `aowow_news` SET `text_loc0` = 'Poslední aktualizace dat ".Date ("d. n. Y, H:i:s")." ', `text_loc8` = 'Poslední aktualizace dat ".Date ("d. n. Y, H:i:s")." ' WHERE `aowow_news`.`id` =3"); 271 echo('<strong>Hotovo</strong><br />'); 272 273 echo('Mažu dočasné soubory '); 274 $files = scandir('../aowow/cache/mangos'); 275 foreach($files as $file) 276 { 277 $end = substr($file, strlen($file) - 3); 278 if($end == 'aww') unlink('../aowow/cache/mangos/'.$file); 279 } 280 $files = scandir('../aowow/cache/templates/wowhead'); 281 foreach($files as $file) 282 { 283 $end = substr($file, strlen($file) - 3); 284 if ($end == 'php') unlink('../aowow/cache/templates/wowhead/'.$file); 285 } 286 echo ('<strong>Hotovo</strong><br />'); 287 288 echo('Importuji do AoWoW '); 289 $BufferArray = explode(";\n", $AoWoWSQL); 290 foreach($BufferArray as $Line) 291 { 292 if($Line <> '') $Database->SQLCommand($Line); 293 echo('. '); 294 } 295 echo('<strong>Hotovo</strong><br />'); 296 297 // TODO aowow_itemenchantmet, aowow_char_titles, aowow_factions, aowow_itemset, aowow_spelldispeltype, aowow_spellmechanic, aowow_spellrange, aowow_zones 298 299 $Database->SelectDatabase($Config['Database']['Database']); 300 $Database->SQLCommand('SET NAMES '.$Config['Database']['Charset']); 301 echo('</div>'); 302 WriteLog('Plnění AoWoW databáze překladem', 4); 303 break; 304 case 'XMLCompressed': 305 if(function_exists('gzcompress')) 306 { 307 $TempDir = $Config['Web']['TempFolder'].$_SESSION['User'].'/'; 308 if(!file_exists($TempDir)) mkdir($TempDir, 0777, true); 309 $SaveFilename = $TempDir.'CzWoW_XML.zip'; 310 $SQLFilename = 'CzWoW_XML.sql'; 311 $BufferZip = ExportToXML($ExportSetting); 312 $ZipFile = new zipfile(); 313 $ZipFile->addFile($BufferZip, $SQLFilename); 314 $Buffer = $ZipFile->file(); 315 file_put_contents($SaveFilename, $Buffer); 316 } else echo('Funkce pro tvorbu Zip souboru není podporována!'); 317 echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'. 318 'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'. 319 '</script>'); 320 321 echo('Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '. 322 '<a href="'.$SaveFilename.'">CzWoW_SQL.zip</a><br />'. 323 '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.'); 324 break; 325 case 'XMLDirect': 326 echo('Vygenerované XML: <br /><pre class="SQLCode">'); 327 echo(htmlspecialchars(ExportToXML($ExportSetting))); 328 echo('</pre>'); 329 break; 330 /*case 'Server': 331 if(Licence(LICENCE_ADMIN)) 332 { 333 $Buffer = ExportToMangosSQL($ExportSetting); 334 $Database->SelectDatabase($Config['Database']['DatabaseMangos']); 335 $BufferArray = explode("\n", $Buffer); 336 echo('Přenášení dat do serveru...<br />'); 337 foreach($BufferArray as $Line) 338 { 339 $Database->SQLCommand($Line); 340 echo('.'); 341 } 342 echo("<br />Hotovo<br />"); 343 } else echo('Nemáte oprávnění.'); 344 break;*/ 345 case 'Addon': 346 if(function_exists('gzcompress')) { 347 $TempDir = $Config['Web']['TempFolder'].$_SESSION['User'].'/CzWoW-'.$ExportSetting['Version'].'/'; 348 echo('Generování addonu...'.$ExportSetting['Export'].'<br />'); 349 MakeAddon($ExportSetting); 350 $SaveFilename = $Config['Web']['TempFolder'].$_SESSION['User'].'/CzWoW_Addon-'.$ExportSetting['Version'].'.zip'; 351 $Zip = new zipfile(); 352 CreateZipFromDir($Zip, $TempDir, 'CzWoW/'); 353 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/CzWoW/OptionsFrame.xml'), 'CzWoW/OptionsFrame.xml'); 354 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/CzWoW/CzWoW.xml'), 'CzWoW/CzWoW.xml'); 355 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/CzWoW/CzWoW.toc'), 'CzWoW/CzWoW.toc'); 356 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/CzWoW/CzWoW.lua'), 'CzWoW/CzWoW.lua'); 357 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/CzWoW/GameMenuFrame.xml'), 'CzWoW/GameMenuFrame.xml'); 358 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/CzWoW/Localization.lua'), 'CzWoW/Localization.lua'); 359 $Buffer = $Zip->file(); 360 file_put_contents($SaveFilename, $Buffer); 361 echo('Hotovo<br /><br />'); 362 } else echo('Funkce pro tvorbu Zip souboru není podporována!'); 363 echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'. 364 'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'. 365 '</script>'); 366 367 echo('Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '. 368 '<a href="'.$SaveFilename.'">CzWoW_Addon-'.$ExportSetting['Version'].'.zip</a><br />'. 369 '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.'); 370 echo('<br /><strong>Použití ve hře</strong><br />Menu addonu ve hře vyvoláte povelem /czwow.'); 371 break; 372 case 'VerseCZ': 373 if(function_exists('gzcompress')) 374 { 375 $Line = mysql_fetch_assoc($Database->SQLCommand('SELECT verse FROM verseclient ORDER BY DATE DESC LIMIT 1')); 376 $TempDir = $Config['Web']['TempFolder'].'Addon/CzWoW/'; 377 echo('Generování addonu...<br />'); 378 MakeAddon($ExportSetting); 379 MakeReadme($ExportSetting); 380 381 $SaveFilename = $Config['Web']['TempFolder'].'Addon/CzWoW_'.$Line['verse'].'.zip'; 382 $Zip = new zipfile(); 383 CreateZipFromDir($Zip, $TempDir, 'Interface/AddOns/CzWoW/'); 384 //addon 385 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/CzWoW/OptionsFrame.xml'), 'Interface/AddOns/CzWoW/OptionsFrame.xml'); 386 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/CzWoW/CzWoW.xml'), 'Interface/AddOns/CzWoW/CzWoW.xml'); 387 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/CzWoW/CzWoW.toc'), 'Interface/AddOns/CzWoW/CzWoW.toc'); 388 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/CzWoW/CzWoW.lua'), 'Interface/AddOns/CzWoW/CzWoW.lua'); 389 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/CzWoW/GameMenuFrame.xml'), 'Interface/AddOns/CzWoW/GameMenuFrame.xml'); 390 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/CzWoW/Localization.lua'), 'Interface/AddOns/CzWoW/Localization.lua'); 391 //fonty 392 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/Fonts/FRIZQT__.ttf'), 'Fonts/FRIZQT__.ttf'); 393 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/Fonts/MORPHEUS.ttf'), 'Fonts/MORPHEUS.ttf'); 394 $Zip->addFile(file_get_contents('files/'.$ExportSetting['Version'].'/Fonts/SKURRI.ttf'), 'Fonts/SKURRI.ttf'); 395 //readme 396 $Zip->addFile(file_get_contents($Config['Web']['TempFolder'].'Addon/CzWoW/CZWOW-Readme.txt'), 'CZWOW-Readme.txt'); 397 398 $Buffer = $Zip->file(); 399 file_put_contents($SaveFilename, $Buffer); 400 WriteLog('Vytvořena verze češtiny pro clienta '.$Line['verse'], 4); 401 402 echo('Hotovo<br /><br />'); 403 } else echo('Funkce pro tvorbu Zip souboru není podporována!'); 404 405 echo('Odkaz ke stažení: '. 406 '<a href="'.$SaveFilename.'">'.$SaveFilename.'</a><br />'); 407 break; 408 case 'DBC': 409 410 echo('<br /><br /><br />U dbc souborů export textů funguje jinak, protože generování je náročné na výpočet provádí se přes noc kdy je server nejmíň vytížen. Nyní jste zadali úlohu, která se provede v noci. Zítra si můžete stáhnout vygenerovaný soubor v sekci <a href="../download.php">Stahování</a>.<br /><br />Dbc soubory je nutné zabalit do souboru patch-enGB-5.MPQ uvnitř složky "DBFilesClient" a hru spouštět přes wowme.exe. Zabalit to můžete pomocí programu <a href="../download/mpqediten32.zip">Ladik\'s MPQ Editor</a>. Stav vygenerování můžete sledovat na stránce <a href="../download.php">Stahování</a>, kde si také můžete zítra stáhnout soubor.<br /><br />'); 411 412 //TODO: pouze jedna aktivní úloha na uživatele 413 $sql = 'SELECT * FROM tasks WHERE Active = 1 AND User = '.$_SESSION['UserID']; 414 $ID = $Database->SQLCommand($sql); 415 if (mysql_num_rows($ID) > 0) 416 { 417 echo ('Nemůžete zadat stejný požadavek dvakrát za den. Bylo pouze aktualizováno nastavení exportu!'); 418 $Database->SQLCommand('UPDATE `wowpreklad`.`tasks` SET `ExportSetting` = "'.addslashes(serialize($ExportSetting)).'" WHERE Active = 1 AND User = '.$_SESSION['UserID']); 419 } else { 420 $Database->SQLCommand('INSERT INTO `wowpreklad`.`tasks` (`User` ,`ExportSetting` ,`Date` ) VALUES ("'.$_SESSION['UserID'].'", "'.addslashes(serialize($ExportSetting)).'", NOW( ))'); 421 } 422 WriteLog('Zadání úlohy pro vygenerování dbc souboru', 2); 423 424 425 /* 426 if(function_exists('gzcompress')) 427 { 428 $TempDir = $Config['Web']['TempFolder'].$_SESSION['User'].'/dbc/'; 429 echo('Generování dbc souborů...<br />'); 430 ExportToDBC($ExportSetting); 431 $SaveFilename = $Config['Web']['TempFolder'].$_SESSION['User'].'/CzWoW_DBC.zip'; 432 $Zip = new zipfile(); 433 CreateZipFromDir($Zip, $TempDir, 'DBCClientFiles/'); 434 $Buffer = $Zip->file(); 435 file_put_contents($SaveFilename, $Buffer); 436 echo('Hotovo<br /><br />'); 437 } else echo('Funkce pro tvorbu Zip souboru není podporována!'); 438 echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'. 439 'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'. 440 '</script>'); 441 442 echo('Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '. 443 '<a href="'.$SaveFilename.'">CzWoW_DBC.zip</a><br />'. 444 '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.'); 445 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 Data/enUS jako patch-enUS-5.MPQ. Hru spusťte pomocí programu WoWMe.exe (WoW Model Editor Fix).'); 446 */ 447 448 break; 449 case 'Lua': 450 if(function_exists('gzcompress')) 451 { 452 $TempDir = $Config['Web']['TempFolder'].$_SESSION['User'].'/lua/'; 453 echo('Generování lua souborů...<br />'); 454 ExportToLUA($ExportSetting); 455 $SaveFilename = $Config['Web']['TempFolder'].$_SESSION['User'].'/CzWoW_Lua.zip'; 456 $Zip = new zipfile(); 457 CreateZipFromDir($Zip, $TempDir, ''); 458 $Buffer = $Zip->file(); 459 file_put_contents($SaveFilename, $Buffer); 460 echo('Hotovo<br /><br />'); 461 } else echo('Funkce pro tvorbu Zip souboru není podporována!'); 462 echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'. 463 'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 3000)'. 464 '</script>'); 465 466 echo('Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu: '. 467 '<a href="'.$SaveFilename.'">CzWoW_Lua.zip</a><br />'. 468 '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.'); 469 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 Data/enUS jako patch-enUS-5.MPQ. Hru spusťte pomocí programu WoWMe.exe (WoW Model Editor Fix).'); 470 break; 471 } 472 //statistika výstupu 473 if ($ExportSetting['Export'] <> 'AoWoWSQLDirect' and $ExportSetting['Export'] <> 'XMLDirect' and $ExportSetting['Export'] <> 'AoWoWImport' and $ExportSetting['Export'] <> 'MangosSQLDirect') { 474 echo '<br /><br />'; 475 foreach($TranslationTree as $Group) 476 if($Group['TablePrefix'] != '' and (in_array($Group['Id'], $ExportSetting['groups']))) 477 echo('<div class="state-image"><img alt="'.$Group['TablePrefix'].'" src="../img_statistic.php?group='.$Group['Id'].'&user='.$_SESSION['UserID'].'" title="statistika překladů '.$Group['Name'].'"/></div>'); 478 } 479 480 WriteLog('Generování SQL výstupu: Typ exportu: <strong>'.$ExportSetting['Export'].'</strong>, Diakritika: <strong>'.$ExportSetting['Diacritics'].'</strong>', 2); 481 break; 482 case 'output': 483 if(array_key_exists('groups', $_POST)) $ExportSetting['groups'] = $_POST['groups']; 484 $ExportSetting['Diacritics'] = array_key_exists('Diacritics', $_POST); 485 foreach($LanguageList as $Language) 486 if($Language['Enabled'] == 1) 487 $ExportSetting['language'.$Language['Id']] = array_key_exists('language'.$Language['Id'], $_POST); 488 489 if(array_key_exists('ExportSetting', $_GET)) 490 $ExportSetting = unserialize(stripcslashes(stripcslashes($_GET['ExportSetting']))); 491 492 echo('<strong>Krok 3. - Typ výstupu</strong><br /><br />'); 493 echo('<form action="?action=result" method="post"><div>'. 494 '<table><tr><td>'. 495 '<fieldset><legend>Forma výstupu</legend>'. 496 RadioButton('Export', 'MangosSQLDirect', $ExportSetting['Export'] == 'MangosSQLDirect', 'UpdateVersion('.GetVersions('MangosSQLDirect').',\''.$ExportSetting['Version'].'\')').'MaNGOS SQL - přímo zobrazit<br />'. 497 RadioButton('Export', 'MangosSQLCompressed', $ExportSetting['Export'] == 'MangosSQLCompressed', 'UpdateVersion('.GetVersions('MangosSQLCompressed').',\''.$ExportSetting['Version'].'\')').'MaNGOS SQL - komprimovaný soubor<br />'. 498 RadioButton('Export', 'AoWoWSQLDirect', $ExportSetting['Export'] == 'AoWoWSQLDirect', 'UpdateVersion('.GetVersions('AoWoWSQLDirect').',\''.$ExportSetting['Version'].'\')').'AoWoW SQL - přímo zobrazit<br />'. 499 RadioButton('Export', 'AoWoWSQLCompressed', $ExportSetting['Export'] == 'AoWoWSQLCompressed', 'UpdateVersion('.GetVersions('AoWoWSQLCompressed').',\''.$ExportSetting['Version'].'\')').'AoWoW SQL - komprimovaný soubor<br />'. 500 RadioButton('Export', 'XMLDirect', $ExportSetting['Export'] == 'XMLDirect', 'UpdateVersion('.GetVersions('XMLDirect').',\''.$ExportSetting['Version'].'\')').'XML - přímo zobrazit<br />'. 501 RadioButton('Export', 'XMLCompressed', $ExportSetting['Export'] == 'XMLCompressed', 'UpdateVersion('.GetVersions('XMLCompressed').',\''.$ExportSetting['Version'].'\')').'XML - komprimovaný soubor<br />'. 502 RadioButton('Export', 'Addon', $ExportSetting['Export'] == 'Addon', 'UpdateVersion('.GetVersions('Addon').',\''.$ExportSetting['Version'].'\')').'Addon - komprimovaný soubor<br />'. 503 RadioButton('Export', 'Lua', $ExportSetting['Export'] == 'Lua', 'UpdateVersion('.GetVersions('Lua').',\''.$ExportSetting['Version'].'\')').'Lua skripty - komprimovaný soubor<br />'); 504 if(Licence(LICENCE_USER)) { 505 echo(RadioButton('Export', 'DBC', $ExportSetting['Export'] == 'DBC', 'UpdateVersion('.GetVersions('DBC').',\''.$ExportSetting['Version'].'\')').'DBC - komprimovaný soubor (pouze přihlášení)<br />'); 506 } else { 507 echo (' <span style="padding: 20px"> Pro export do souborů dbc musíte být přihlášen</span>'); 508 } 509 if(Licence(LICENCE_ADMIN)) { 510 // echo(RadioButton('Export', 'DBC', $ExportSetting['Export'] == 'DBC', 'UpdateVersion('.GetVersions('DBC').',\''.$ExportSetting['Version'].'\')').'DBC - komprimovaný soubor (pouze admin)<br />'); 511 echo(RadioButton('Export', 'AoWoWImport', $ExportSetting['Export'] == 'AoWoWImport', 'UpdateVersion('.GetVersions('AoWoWImport').',\''.$ExportSetting['Version'].'\')').'Importovat do AoWoW (pouze admin)<br />'); 512 echo(RadioButton('Export', 'VerseCZ', $ExportSetting['Export'] == 'VerseCZ', 'UpdateVersion('.GetVersions('VerseCZ').',\''.$ExportSetting['Version'].'\')').'Vytvoření verze češtiny <a href="../download.php?createverse" Title="Před konečným exportováním napište popis k verzi" Target="_NEW">Popis k verzi</a> (pouze admin)<br />'); 513 } 514 //echo(' 515 echo('</fieldset>'); 516 echo('<fieldset><legend>Dostupné verze výstupu</legend>'); 517 echo('<select id="Version" size="5" name="Version">'); 518 WriteOption(GetVersions($ExportSetting['Export']),$ExportSetting['Version']); 519 echo('</select></fieldset>'); 520 echo('</td>'); 521 echo('<td class="Description">Zvolte způsob, jakým mají být získána výstupní data. V případě přímého zobrazení může být do vašeho prohlížeče přenášeno vysoké množství dat, což může vést k jeho přetížení.<br /><br />Poté zvolte pro kterou verzi hry mají být data získána. Pokud verze není přesná zvolte nejbližší.<br /><br />Addon je potřeba nakopírovat do složky klienta Interface/AddOns a ve hře lze zpřístupnit jeho možnosti pomocí příkazu /czwow.<br />'); 522 echo('</td></tr></table>'); 523 echo('<br /><input type="submit" value="Dokončit" />'); 524 echo('</div></form><br />'); 525 echo('<fieldset><legend>Nastavení exportu pro zálohování</legend>'); 526 WriteSetting($ExportSetting); 527 echo ('</fieldset>'); 528 break; 529 case 'parameters': 530 $ExportSetting['users-order'] = $_POST['users-order']; 531 $ExportSetting['users-selection'] = array(); 532 $UsersList = explode(',', $_POST['users-order']); 533 foreach($UsersList as $Index => $Item) 534 { 535 if(array_key_exists('user_'.$Item, $_POST)) $ExportSetting['users-selection'][] = $Item; 536 } 537 //if(array_key_exists('users', $_POST)) $ExportSetting['users'] = $_POST['users']; 538 echo('<strong>Krok 2. - Volba parametrů</strong><br /><br />'); 539 echo('<form action="?action=output" method="post"><div>'); 540 echo('<table><tr><td>'); 541 echo('<fieldset><legend>Jazyk</legend>'. 542 CheckBox('Diacritics', $ExportSetting['Diacritics'] == 'checked').'Včetně diakritiky<br /><br />'); 543 //echo('<input type="checkbox" name="Use" checked="true">Přidat výchovýběr databáze.<br />'); 544 545 foreach($LanguageList as $Language) 546 if($Language['Enabled'] == 1) 547 echo(CheckBox('language'.$Language['Id'], $ExportSetting['language'.$Language['Id']] == 'checked').$Language['Name'].'<br />'); 548 549 echo('</fieldset><br /></td><td class="Description">Pro správné zobrazení českých znaků ve hře je nutné používat upravené <a href="download/ceske_fonty_do_wow.zip">počeštěné fonty</a>.<br />Vyberte jaké jazyky se mají uvažovat při exportu.</td></tr><tr><td><fieldset><legend>Skupiny textů</legend>'); 550 echo('<select name="groups[]" size="15" multiple="multiple">'); 551 foreach($TranslationTree as $Group) 552 if($Group['TablePrefix'] != '') 553 echo(SelectOption($Group['Id'], $Group['Name'].' ('.$Group['TablePrefix'].')', in_array($Group['Id'], $ExportSetting['groups']))); 554 555 echo('</select></fieldset><br /></td><td class="Description">Vyberte skupiny textů, z kterých bude sestaven export. Přidržením CTRL nebo SHIFT můžete provádět výběr více položek.</td></tr></table><input type="submit" value="Pokračovat" />'); 556 echo('</div></form>'); 557 break; 558 default: 559 echo('<strong>Krok 1. - Výběr překladatelů</strong><br /><br />'); 560 echo('<script type="text/javascript" src="'.$Config['Web']['BaseURL'].'style/jquery.js"></script> 561 <script type="text/javascript" src="'.$Config['Web']['BaseURL'].'style/jquery-ui.js"></script> 562 <script type="text/javascript"> 563 $(document).ready(function() 564 { 565 $("#users-table").sortable({ items: "tr", sort: SortComplete }); 566 $("#users-order").val($("#users-table").sortable(\'toArray\')); 567 }); 568 569 function SortComplete() 570 { 571 $("#users-order").val($("#users-table").sortable(\'toArray\')); 572 } 573 </script>'); 574 echo('<form id="ListUser" action="?action=parameters" method="post"><div>'); 575 576 $Columns = ''; 577 $Joins = ''; 578 579 //řezení podle odkazu 580 if(array_key_exists('Order', $_GET)) $order = $_GET['Order']; 581 else $order = 'T.TranslatedCount'; 582 if(array_key_exists('Desc', $_GET)) $desc = $_GET['Desc']; 583 else $desc = ''; 584 if($desc == '') $desc = 'DESC'; else $desc = ''; 585 586 foreach($TranslationTree as $Group) 587 if($Group['TablePrefix'] != '') 588 { 589 $Columns .= 'COALESCE(T'.$Group['Id'].'.Count, 0) + '; 590 $Joins .= ' LEFT JOIN (SELECT User, COUNT(User) as Count FROM `'.$Group['TablePrefix'].'` WHERE (Complete = 1) AND (Language <> 0) GROUP BY User) as T'.$Group['Id'].' ON user.ID=T'.$Group['Id'].'.User'; 591 } 592 $Query = 'SELECT T.ID, T.TranslatedCount, T.user, T.XP FROM (SELECT user.ID, user.user, user.XP, ('.substr($Columns, 0, -3).') as TranslatedCount FROM `user`'.$Joins.') AS T WHERE T.TranslatedCount > 0 ORDER BY '.$order.' '.$desc; 593 $ID = $Database->SQLCommand($Query); 594 595 // Rebuild user order list 596 $Users = array(); 597 while($Line = mysql_fetch_assoc($ID)) { 598 $Users[$Line['ID']] = $Line; 599 $UsersOrder[] = $Line['ID']; 600 } 601 //řazení podle posledního použitého 602 if(!array_key_exists('Order', $_GET)) { 603 $UsersOrder = explode(',', $ExportSetting['users-order']); 604 foreach($Users as $User) 605 if(!in_array($User['ID'], $UsersOrder)) $UsersOrder[] = $User['ID']; 606 foreach($UsersOrder as $Index => $UserId) 607 if(!array_key_exists($UserId, $Users)) unset($UsersOrder[$Index]); 608 } 609 $ExportSetting['users-order'] = implode(',', $UsersOrder); 610 611 if(array_key_exists('team', $_GET)) { 612 $ExportSetting['users-selection'] = array(); 613 $Query = 'SELECT ID FROM user WHERE team = '.$_GET['team']; 614 $ID = $Database->SQLCommand($Query); 615 while($LineTeam = mysql_fetch_assoc($ID)) 616 $ExportSetting['users-selection'][] = $LineTeam['ID']; 617 } 618 619 620 echo(' <input type="submit" value="Pokračovat" /> <span onclick="CheckAll()">'.CheckBox('CheckAll', False, 'CheckAll').' Zatrhnout vše</span> '); 621 622 echo('<table><tr><td>'. 623 '<table class="BaseTable" id="users-table"><tr> 624 <th><a href="?Order=user&Desc='.$desc.'">Jméno</a></th> 625 <th><a href="?Order=T.TranslatedCount&Desc='.$desc.'" title="Počet přeložených textů">Překladů</a></th> 626 <th><a href="?Order=XP&Desc='.$desc.'">Úroveň</a></th> 627 <th></th></tr>'); 628 //print_r($UsersOrder); 629 // Show ordered user list 630 foreach($UsersOrder as $UserId) 631 echo('<tr id="'.$UserId.'"> 632 <td><a href="'.$Config['Web']['BaseURL'].'/TranslationList.php?user='.$UserId.'&action=userall" title="Zobrazit všechny jeho přeložené texty">'.$Users[$UserId]['user'].'</a></td> 633 <td>'.$Users[$UserId]['TranslatedCount'].'</td> 634 <td><img src="'.$Config['Web']['TempFolder'].$Users[$UserId]['user'].'/level.png" alt="Úroveň uživatele" /></td> 635 <td>'.CheckBox('user_'.$UserId, in_array($UserId, $ExportSetting['users-selection']), '', 'CheckBox').'</td></tr>'); 636 echo('</table></td><td class="Description">Zvolte ze seznamu uživatele, od kterých chcete načítat překlady a upravte jejich pořadí, takže od uživatelů výše budou brány překlady přednostně.<br />'. 637 'Řádky v tabulce můžete přesouvat metodou uchop a táhni.'. 638 '</td></tr></table>'. 639 '<div><input name="users-order" id="users-order" size="100" type="hidden" /><br />'); 640 echo('<input type="submit" value="Pokračovat" /></div>'); 641 echo('</div></form>'); 642 break; 643 } 644 645 if(array_key_exists('UserID', $_SESSION) and ($_SESSION['UserID'] != '')) 646 $Database->SQLCommand('UPDATE user SET ExportSetting = "'.addslashes(serialize($ExportSetting)).'" WHERE ID='.$_SESSION['UserID']); 647 else $_SESSION['ExportSetting'] = serialize($ExportSetting); 648 649 //print_r($ExportSetting); 650 651 ShowFooter(); 455 if(array_key_exists('ClientVersion', $_POST)) 456 { 457 $Database->SQLCommand('UPDATE Export SET ClientVersion='.$_POST['ClientVersion'].' WHERE Id='.$_GET['ExportId']); 458 } 459 460 $DbResult = $Database->SQLCommand('SELECT * FROM Export WHERE Id='.$_GET['ExportId']); 461 $Export = mysql_fetch_assoc($DbResult); 462 463 $Query = 'SELECT wow_client_version.* FROM ExportVersion LEFT JOIN wow_client_version ON wow_client_version.Id=ExportVersion.ClientVersion WHERE ExportType='.$Export['OutputType']; 464 465 $DbResult = $Database->SQLCommand('SELECT COUNT(*) FROM ('.$Query.') AS X'); 466 $DbRow = mysql_fetch_row($DbResult); 467 $PageList = GetPageList($DbRow[0]); 468 469 $TableColumns = array( 470 array('Name' => 'Version', 'Title' => 'Verze'), 471 array('Name' => 'BuildNumber', 'Title' => 'Sestavení'), 472 array('Name' => 'ReleaseDate', 'Title' => 'Datum uvolnění'), 473 array('Name' => 'Title', 'Title' => 'Titutek'), 474 array('Name' => '', 'Title' => 'Výběr'), 475 ); 476 $Order = GetOrderTableHeader($TableColumns, 'BuildNumber'); 477 echo('<form action="?Action=View&ExportId='.$_GET['ExportId'].'" method="post">'); 478 echo('<h3>Verze klienta</h3>'); 479 480 echo('<input type="submit" value="Uložit výběr" '.$DisabledInput[$Editable].'/><br /> 481 Vyberte pro jakou verzi herního klienta se budou texty exportovat.<br />'); 482 echo($PageList['Output']); 483 echo('<table class="BaseTable">'); 484 echo($Order['Output']); 485 486 $Query = 'SELECT * FROM ('.$Query.') AS TX '.$Order['SQL'].$PageList['SQLLimit']; 487 $DbResult = $Database->SQLCommand($Query); 488 while($Version = mysql_fetch_assoc($DbResult)) 489 { 490 echo('<tr><td><a href="http://www.wowwiki.com/Patch_'.$Version['Version'].'">'.$Version['Version'].'</a></td><td>'.$Version['BuildNumber'].'</td><td>'.HumanDate($Version['ReleaseDate']).'</td><td>'.$Version['Title'].'</td><td>'.RadioButton('ClientVersion', $Version['Id'], $Export['ClientVersion'] == $Version['Id'], '', !$Editable 491 ).'</td></tr>'); 492 493 } 494 echo('</table>'); 495 echo('</form>'); 496 echo($PageList['Output']); 497 } else echo('Položka nenalezena'); 498 } else echo('Nebylo zadáno Id'); 499 } 500 501 function ExportViewOutput() 502 { 503 global $Database; 504 505 $DbResult = $Database->SQLCommand('SELECT * FROM Export WHERE Id='.$_GET['ExportId']); 506 $Export = mysql_fetch_assoc($DbResult); 507 ExportOutput($Export['Id'], $Export['OutputType']); 508 } 509 510 function ExportView() 511 { 512 global $Database; 513 514 $DbResult = $Database->SQLCommand('SELECT * FROM Export WHERE Id='.$_GET['ExportId']); 515 $Export = mysql_fetch_assoc($DbResult); 516 $DbResult = $Database->SQLCommand('SELECT * FROM user WHERE ID='.$Export['User']); 517 $User = mysql_fetch_assoc($DbResult); 518 echo('Export <strong><a href="?Action=View&Tab=6&ExportId='.$Export['Id'].'">'.$_GET['ExportId'].'</a></strong> překladatele <strong>'.$User['user'].'</strong> s označením <strong>'.$Export['Title'].'</strong>'); 519 ShowTabs(array('Obecné', 'Překladatelé', 'Překlady', 'Jazyky', 'Formát', 'Verze', 'Výstup')); 520 echo('<div id="content">'); 521 if($_SESSION['Tab'] == 0) ExportViewGeneral(); 522 else if($_SESSION['Tab'] == 1) ExportViewTranslators(); 523 else if($_SESSION['Tab'] == 2) ExportViewGroups(); 524 else if($_SESSION['Tab'] == 3) ExportViewLanguages(); 525 else if($_SESSION['Tab'] == 4) ExportViewOutputFormat(); 526 else if($_SESSION['Tab'] == 5) ExportViewVersion(); 527 else if($_SESSION['Tab'] == 6) ExportViewOutput(); 528 529 echo('</div>'); 530 } 531 532 ShowPage(); 533 534 if(array_key_exists('Action', $_GET)) 535 { 536 if($_GET['Action'] == 'Create') ExportCreate(); 537 else if($_GET['Action'] == 'CreateFinish') ExportCreateFinish(); 538 else if($_GET['Action'] == 'View') ExportView(); 539 else if($_GET['Action'] == 'Delete') ExportDelete(); 540 else ExportList(); 541 } else ExportList(); 542 543 ShowFooter(); 544 652 545 ?>
Note:
See TracChangeset
for help on using the changeset viewer.