Changeset 59 for trunk/download.php
- Timestamp:
- Feb 3, 2009, 9:48:32 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/download.php
r49 r59 1 1 <?php 2 2 3 session_start(); 4 5 if(!array_key_exists('ExportSetting', $_SESSION)) 6 $_SESSION['ExportSetting'] = $_COOKIE['ExportSetting']; 7 8 setcookie('ExportSetting', $_SESSION['ExportSetting']); 3 9 include('includes/global.php'); 4 5 if(array_key_exists('Type', $_POST)) 6 { 7 include('includes/zip.lib.php'); 8 include('export.php'); 10 include('includes/zip.lib.php'); 11 include('export.php'); 12 13 14 function CheckBox($Name, $Checked = false) 15 { 16 if($Checked) $Checked = ' checked="1"'; else $Checked = ''; 17 return('<input type="checkbox" value="1" name="'.$Name.'"'.$Checked.' />'); 18 } 19 20 function RadioButton($Name, $Value, $Checked = false) 21 { 22 if($Checked) $Checked = ' checked="1"'; else $Checked = ''; 23 return('<input type="radio" name="'.$Name.'" value="'.$Value.'"'.$Checked.' />'); 24 } 25 26 function SelectOption($Name, $Text, $Selected = false) 27 { 28 if($Selected) $Selected = ' selected="1"'; else $Selected = ''; 29 return('<option type="checkbox" value="'.$Name.'"'.$Selected.'/>'.$Text.'</option>'); 30 } 31 32 if(array_key_exists('UserID', $_SESSION) and ($_SESSION['UserID'] != '')) 33 { 34 $DbResult = $Database->SQLCommand('SELECT ExportSetting FROM user WHERE ID='.$_SESSION['UserID']); 35 $DbRow = mysql_fetch_assoc($DbResult); 36 $ExportSetting = unserialize($DbRow['ExportSetting']); 37 38 //print_r($_POST); 9 39 } else 40 { 41 $ExportSetting = unserialize($_SESSION['ExportSetting']); 42 } 43 44 switch(@$_GET['action']) 45 { 46 case 'result': 47 $ExportSetting['Export'] = @$_POST['Export']; 48 switch($ExportSetting['Export']) 49 { 50 case 'Zip': 51 if(function_exists('gzcompress')) 52 { 53 $SaveFilename = 'tmp/SqlTranslate.zip'; 54 $SQLFilename = 'tmp/SqlTranslate.sql'; 55 $BufferZip = Export($ExportSetting); 56 $ZipFile = new zipfile(); 57 $ZipFile->addFile($BufferZip, $SQLFilename); 58 $Buffer = $ZipFile->file(); 59 60 // echo $Buffer.'<br><br><br>'; 61 $FileHandle = fopen($SaveFilename, 'w'); 62 $WriteResult = fwrite($FileHandle, $Buffer); 63 fclose($FileHandle); 64 // header("Location: ".$save_filename); 65 } else echo('Funkce pro tvorbu Zip souboru není podporována!'); 66 echo('<script type="text/javascript" language="JavaScript" charset="utf-8">'. 67 'setTimeout("parent.location.href=\''.$SaveFilename.'\'", 1000)'. 68 '</script>'); 69 70 echo('Pokud nezačalo stahování, soubor by mělo jít stáhnout pomocí tohoto odkazu:'. 71 '<a href="'.$SaveFilename.'">'.$SaveFilename.'</a><br />'. 72 '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.'); 73 break; 74 case 'Display': 75 echo('Vygenerovaný SQL kód: <br /><pre class="SQLCode">'); 76 echo(htmlspecialchars(Export($ExportSetting))); 77 echo('</pre>'); 78 break; 79 case 'Server': 80 if(Licence(LICENCE_ADMIN)) 81 { 82 $Buffer = Export($ExportSetting); 83 $Database->SelectDatabase($Config['Database']['DatabaseMangos']); 84 $BufferArray = explode("\n", $Buffer); 85 echo('Přenášení dat do serveru...<br />'); 86 foreach($BufferArray as $Line) 87 { 88 $Database->SQLCommand($Line); 89 echo('.'); 90 } 91 echo("<br />Hotovo<br />"); 92 } else echo('Nemáte oprávnění.'); 93 break; 94 } 95 WriteLog('Generování SQL výstupu: Typ exportu: <b>'.$ExportSetting['Export'].'</b>, Diakritika: <b>'.$ExportSetting['Diacritics'].'</b>', 2); 96 break; 97 case 'output': 98 if(array_key_exists('groups', $_POST)) $ExportSetting['groups'] = $_POST['groups']; 99 $ExportSetting['Diacritics'] = array_key_exists('Diacritics', $_POST); 100 $ExportSetting['language-cz'] = array_key_exists('language-cz', $_POST); 101 $ExportSetting['language-sk'] = array_key_exists('language-sk', $_POST); 102 $ExportSetting['language-other'] = array_key_exists('language-other', $_POST); 103 echo('<strong>Krok 3. - Typ výstupu</strong><br /><br />'); 104 echo('<form action="?action=result" method="post">'. 105 '<table width="100%"><tr><td>'. 106 '<fieldset><legend>Forma výstupu</legend>'. 107 RadioButton('Export', 'Zip', $ExportSetting['Export'] == 'Zip').'ZIP soubor<br />'. 108 //RadioButton('Export', 'Addon', $ExportSetting['Export'] == 'Addon').'WoW klient addon<br />'. 109 RadioButton('Export', 'Display', $ExportSetting['Export'] == 'Display').'Přímo zobrazit<br />'); 110 if(Licence(LICENCE_ADMIN)) 111 echo(RadioButton('Export', 'Server', $ExportSetting['Export'] == 'Server').'Poslat přímo na server (pouze admin)<br />'); 112 //echo(' 113 echo('</fieldset><br /></td><td>Zvolte způsob, jakým mají být získána výstupní SQL data. V případě přímého zobrazení může být do vašeho prohlížeče přenášeno vysoké množství data což může vést k jeho přetížení.</td></tr></table>'); 114 echo('<br /><input type="submit" value="Dokončit" />'); 115 echo('</form>'); 116 break; 117 case 'parameters': 118 $ExportSetting['users-order'] = $_POST['users-order']; 119 $ExportSetting['users-selection'] = array(); 120 $UsersList = explode(',', $_POST['users-order']); 121 foreach($UsersList as $Index => $Item) 122 { 123 if(array_key_exists('user_'.$Item, $_POST)) $ExportSetting['users-selection'][] = $Item; 124 } 125 //if(array_key_exists('users', $_POST)) $ExportSetting['users'] = $_POST['users']; 126 echo('<strong>Krok 2. - Volba parametrů</strong><br /><br />'); 127 echo('<form action="?action=output" method="post">'); 128 echo('<table width="100%"><tr><td>'); 129 echo('<fieldset><legend>Jazyk</legend>'. 130 CheckBox('Diacritics', $ExportSetting['Diacritics'] == 1).'Včetně diakritiky<br /><br />'); 131 //echo('<input type="checkbox" name="Use" checked="true">Přidat výchovýběr databáze.<br />'); 132 133 echo(CheckBox('language-cz', $ExportSetting['language-cz'] == 1).'Český překlad<br />'. 134 CheckBox('language-sk', $ExportSetting['language-sk'] == 1).'Slovenský překlad<br />'. 135 CheckBox('language-other', $ExportSetting['language-other'] == 1).'Jiné jazyky<br />'); 136 echo('</fieldset><br /></td><td>Vyberte jaké jazyky se mají uvažovat při exportu.</td></tr><tr><td><fieldset><legend>Skupiny textů</legend>'); 137 echo('<select name="groups[]" size="15" style="width: 400px;" multiple="1">'); 138 foreach($TranslationTree as $Group) 139 if($Group['TablePrefix'] != '') 140 echo(SelectOption($Group['Id'], $Group['Name'].' ('.$Group['TablePrefix'].')', in_array($Group['Id'], $ExportSetting['groups']))); 141 142 echo('</select></fieldset><br /></td><td>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" />'); 143 echo('</form>'); 144 break; 145 default: 146 echo('<strong>Krok 1. - Výběr překladatelů</strong><br /><br />'); 147 echo('<script type="text/javascript" src="style/jquery.js"></script> 148 <script type="text/javascript" src="style/jquery-ui.js"></script> 149 <script type="text/javascript"> 150 $(document).ready(function() 151 { 152 $("#users-table").sortable({ items: "tr", sort: SortComplete }); 153 $("#users-order").val($("#users-table").sortable(\'toArray\')); 154 }); 155 156 function SortComplete() 157 { 158 $("#users-order").val($("#users-table").sortable(\'toArray\')); 159 } 160 </script>'); 161 echo('<form action="?action=parameters" method="post">'); 162 echo('<table><tr><td>'. 163 '<table class="BaseTable" id="users-table" width="100%"><tr><th>Jméno</th><th>Překladů</th><th></th></tr>'); 164 $Query = 'SELECT T.user, T.ID, T.TranslatedCount FROM (SELECT user, ID, ('; 165 foreach($TranslationTree as $Group) 166 if($Group['TablePrefix'] != '') 167 $Query .= '(SELECT COUNT(*) FROM '.$Group['TablePrefix'].' WHERE (user = user.ID) AND (Complete = 1) AND (Language <> 0)) + '; 168 $Query .= ' 0) AS TranslatedCount FROM `user` ORDER BY user) AS T WHERE T.TranslatedCount > 0 ORDER BY T.TranslatedCount DESC'; 169 //echo($Query); 170 $ID = $Database->SQLCommand($Query); 171 172 // Rebuild user order list 173 $Users = array(); 174 while($Line = mysql_fetch_array($ID)) $Users[$Line['ID']] = $Line; 175 $UsersOrder = explode(',', $ExportSetting['users-order']); 176 foreach($Users as $User) 177 if(!in_array($User['ID'], $UsersOrder)) $UsersOrder[] = $User['ID']; 178 foreach($UsersOrder as $Index => $UserId) 179 if(!array_key_exists($UserId, $Users)) unset($UsersOrder[$Index]); 180 $ExportSetting['users-order'] = implode(',', $UsersOrder); 181 182 //print_r($UsersOrder); 183 // Show ordered user list 184 foreach($UsersOrder as $UserId) 185 echo('<tr id="'.$UserId.'"><td>'.$Users[$UserId]['user'].'</td><td>'.$Users[$UserId]['TranslatedCount']. 186 '</td><td>'.CheckBox('user_'.$UserId, in_array($UserId, $ExportSetting['users-selection'])).'</td></tr>'); 187 echo('</table></td><td valign="top">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 />'. 188 'Řádky v tabulce můžete přesouvat metodou uchop a táhni.'. 189 '</td></tr></table>'. 190 '<div><input name="users-order" id="users-order" size="100" type="hidden" /><br />'); 191 echo('<input type="submit" value="Pokračovat" /></div>'); 192 echo('</form>'); 193 break; 194 } 195 196 /* 10 197 { 11 198 echo('<div style="border: 1px dotted black; padding: 0px 5px 5px 5px;"> … … 30 217 <form action="download.php" method="POST"> 31 218 <table border="1" cellpadding="1" cellspacing="0"> 32 <tr><th>Sql</th><th>Filtr</th><th>Jazyk</th><th>Texty</th></tr> 33 <tr><td> 34 <input type="radio" name="Export" value="Zip" checked="true"> Exportovat do zip<br /> 35 <input type="radio" name="Export" value="Display"> Export zobrazit<br />'); 36 if(Licence(LICENCE_ADMIN)) 37 { 38 echo('<input type="radio" name="Export" value="Mangos" /> Import na server (pouze admin)<br />'); 39 } 40 echo('<br /> 41 <input type="radio" name="Type" value="Insert" /> Insert (zatím nefunguje)<br /> 42 <input type="radio" name="Type" value="Update" checked="true" /> Update <br /> 43 <br /> 44 <input type="checkbox" name="Use" checked="true"> Přidat Use mangos <br /> 45 <br />'); 46 echo('</td><td> 47 <input type="text" name="NumberVote" value="3" size="1" /> Počet nutných hlasů <br /> 48 <input type="text" name="Vote" value="4" size="1" /> Známka lepší nebo stejná jak <br /> 49 <br /> 50 <select name="users[]" size="10" multiple>'); 51 52 // multiple="multiple" 53 $Query = 'SELECT user,ID FROM `user` WHERE '; 54 foreach($TranslationTree as $Group) 55 if($Group['TablePrefix'] != '') 56 $Query .= 'EXISTS(SELECT 1 FROM '.$Group['TablePrefix'].' WHERE user = user.ID) OR '; 57 $Query .= ' 0 ORDER BY user'; 58 $ID = $Database->SQLCommand($Query); 59 while ($Line = mysql_fetch_array($ID)) 60 echo('<option value="'.$Line['ID'].'">'.$Line['user'].'</option>'); 61 62 echo('</select><br /> Exportovat pouze od těchto uživatalů<br /> 63 Vybrat více uživatelů můžete pomocí CTRL+click 64 65 </td><td> 66 <input type="checkbox" name="Diacritical" checked="true" /> Včetně diakritiky <br> 67 <br /> 68 <input type="checkbox" name="CZ" checked="true" /> Český překlad <br /> 69 <input type="checkbox" name="SK" checked="true" /> Slovenský překlad <br /> 70 <input type="checkbox" name="OtherLanguage" /> Jiné jazyky <br /> 71 </td><td>'); 72 foreach($TranslationTree as $Group) 73 if($Group['TablePrefix'] != '') 74 echo('<input type="checkbox" name="'.$Group['TablePrefix'].'" checked="true" /> '.$Group['Name'].'<br />'); 75 76 echo('</td></tr> 77 </table> 78 <br /><input type="submit" value="Generovat SQL soubor překladu (Stažení)" /> 79 </form><br /> 219 80 220 <b>Český překlad MaNGOS Minimanageru:</b><br /> 81 221 - Stránky projektu: <a href="http://sourceforge.net/projects/mmfpm/">http://sourceforge.net/projects/mmfpm/</a><br /> … … 86 226 <br />'); 87 227 } 228 */ 229 230 if(array_key_exists('UserID', $_SESSION) and ($_SESSION['UserID'] != '')) 231 $Database->SQLCommand('UPDATE user SET ExportSetting = "'.addslashes(serialize($ExportSetting)).'" WHERE ID='.$_SESSION['UserID']); 232 else $_SESSION['ExportSetting'] = serialize($ExportSetting); 88 233 234 //print_r($ExportSetting); 235 89 236 ShowFooter(); 90 237 ?>
Note:
See TracChangeset
for help on using the changeset viewer.