- Timestamp:
- Aug 24, 2015, 11:19:26 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Modules/Translation/Save.php
r832 r833 3 3 class PageTranslationSave extends Page 4 4 { 5 function Translate($Group, $TextID, $Complete, $Language) 6 { 7 $Output = ''; 8 $Table = $Group['TablePrefix']; 9 $CompleteText = array('nedokončený', 'dokončený'); 10 11 // Get source text record from database by ID 12 $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE `ID`='.$TextID); 13 if($DbResult->num_rows > 0) 14 { 15 $SourceText = $DbResult->fetch_assoc(); 16 17 // Get data for english original 18 $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`Entry`='.$SourceText['Entry'].') '. 19 'AND (`Language` = '.$this->System->Config['OriginalLanguage'].') AND (`VersionStart` = '.$SourceText['VersionStart'].') '. 20 'AND (`VersionEnd` = '.$SourceText['VersionEnd'].')'); 21 if($DbResult->num_rows > 0) 22 { 23 $EnglishText = $DbResult->fetch_assoc(); 24 25 // Get all similar english texts 26 $Filter = array(); 27 foreach($Group['Items'] as $GroupItem) 28 if(($GroupItem['Visible'] == 1)) 29 $Filter[] = '(`'.$GroupItem['Column'].'` = "'.addslashes($EnglishText[$GroupItem['Column']]).'")'; 30 if(count($Filter) > 0) $Filter = ' AND ('.implode(' OR ', $Filter).')'; 31 32 $Query = 'SELECT * FROM `'.$Table.'` WHERE (`Language` = '.$this->System->Config['OriginalLanguage'].')'.$Filter; 33 $DbResult = $this->Database->query($Query); 34 while($EnglishFound = $DbResult->fetch_assoc()) 35 { 36 // Get user translation paired to found english item entry 37 //TODO: and need update sql 38 //SELECT T.ID,T.Take,sub1.ID,T.`VersionStart`,T.`VersionEnd`,sub1.`VersionStart` as OrigStart,sub1.`VersionEnd` as OrigEnd FROM `TextSpell` as T 39 //JOIN `TextSpell` as sub1 ON sub1.Language = 0 AND T.`Entry` = sub1.`Entry` AND T.`VersionStart` = sub1.`VersionStart` 40 //WHERE T.Language != 0 AND T.`VersionEnd` != sub1.`VersionEnd` 41 $DbResult2 = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`User` = '.$this->System->User->Id. 42 ') AND (`Entry` = '.$EnglishFound['Entry'].') AND (`VersionStart` = '.$EnglishFound['VersionStart']. 43 ') AND (`VersionEnd` = '.$EnglishFound['VersionEnd'].')'); 44 if($DbResult2->num_rows > 0) 45 { 46 // Update existed user translation 47 $ExistedText = $DbResult2->fetch_assoc(); 48 $Values = '`Language` = '.$Language; 49 50 $UpdateModifyTime = false; 51 $Completable = true; 52 $CompleteParts = $ExistedText['CompleteParts']; 53 foreach($Group['Items'] as $GroupItem) 54 { 55 if($GroupItem['Visible'] == 1) 56 { 57 if($SourceText[$GroupItem['Column']] != $ExistedText[$GroupItem['Column']]) 58 $UpdateModifyTime = true; 59 60 if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']]) 61 { 62 if(array_key_exists($GroupItem['Column'], $_POST)) 63 { 64 $Values .= ', `'.$GroupItem['Column'].'` = "'.$_POST[$GroupItem['Column']].'"'; 65 $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1)); 66 } 67 } 68 if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and 69 ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false; 70 } 71 } 72 if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed 73 else $NewComplete = 0; 74 if($SourceText['ID'] == $ExistedText['ID']) 75 { 76 $NewComplete = $Complete; // Our original user text, set complete according user choice 77 if($Complete == 1) 78 { 79 foreach($Group['Items'] as $GroupItem) 80 if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1)); 81 } 82 } 83 $Values .= ', `Complete`='.$NewComplete.', `CompleteParts` = '.$CompleteParts; 84 85 if($UpdateModifyTime) $Values .= ', `ModifyTime` = NOW()'; 86 87 // Update user translation 88 $this->Database->query('UPDATE `'.$Table.'` SET '.$Values.' WHERE `ID` = '.$ExistedText['ID']); 89 90 $Output .= 'Změny v překladu <a href="'.$this->System->Link('/form.php?group='. 91 $Group['Id'].'&ID='.$ExistedText['ID']).'">'.$ExistedText['ID'].'</a> ('. 92 $ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.<br />'; 93 $this->System->ModuleManager->Modules['Log']->WriteLog('Změny v překladu <a href="'. 94 $this->System->Link('/form.php?group='.$Group['Id'].'&ID='.$ExistedText['ID']).'">'. 95 $ExistedText['ID'].'</a> ('.$ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.', LOG_TYPE_TRANSLATION); 96 } else 97 { 98 // Insert new user translation 99 $Columns = '`Entry`, `VersionStart`, `VersionEnd`, `Language`, `User`, `Take`, `ModifyTime`'; 100 $Values = $EnglishFound['Entry'].', '.$EnglishFound['VersionStart'].', '. 101 $EnglishFound['VersionEnd'].', '.$Language.', '.$this->System->User->Id.', '.$EnglishFound['ID'].', NOW()'; 102 103 $CompleteParts = 0; 104 $Completable = true; 105 foreach($Group['Items'] as $GroupItem) 106 { 107 $Columns .= ', `'.$GroupItem['Column'].'`'; 108 if($GroupItem['Visible'] == 1) 109 { 110 if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']]) 111 { 112 // Read form user data 113 if(array_key_exists($GroupItem['Column'], $_POST)) 114 { 115 $Values .= ', "'.$_POST[$GroupItem['Column']].'"'; 116 $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1)); 117 } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"'; 118 } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"'; 119 if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false; 120 } else 121 { 122 // Read from english text 123 $Values .= ', "'.$EnglishFound[$GroupItem['Column']].'"'; 124 } 125 } 126 if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed 127 else $NewComplete = 0; 128 if($SourceText['ID'] == $EnglishFound['ID']) 129 { 130 $NewComplete = $Complete; // Our original user text, set complete according user choice 131 if($Complete == 1) 132 { 133 foreach($Group['Items'] as $GroupItem) 134 if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1)); 135 } 136 } 137 $Columns .= ', `Complete`, `CompleteParts`'; 138 $Values .= ', '.$NewComplete.', '.$CompleteParts; 139 $this->Database->query('INSERT INTO `'.$Table.'` ('.$Columns.') VALUES ('.$Values.')'); 140 $LastID = $this->Database->insert_id; 141 142 $Output .= 'Text <a href="'.$this->System->Link('/form.php?group='. 143 $Group['Id'].'&ID='.$LastID).'">'.$LastID.'</a> ze skupiny <a href="TranslationList.php?group='. 144 $Group['Id'].'&user=0&action=filter">'.$Group['Name'].'</a> uložen jako '. 145 $CompleteText[$NewComplete].'. Převzat z <a href="form.php?group='.$Group['Id'].'&ID='.$TextID.'">'.$TextID.'</a>.<br/>'; 146 $this->System->ModuleManager->Modules['Log']->WriteLog('Text <a href="'. 147 $this->System->Link('/form.php?group='.$Group['Id'].'&ID='.$LastID).'">'. 148 $LastID.'</a> ze skupiny <a href="TranslationList.php?group='. 149 $Group['Id'].'&user=0&text=&entry=&action=filter">'. 150 $Group['Name'].'</a> uložen jako '.$CompleteText[$NewComplete]. 151 '. Převzat z <a href="form.php?group='.$Group['Id'].'&ID='.$TextID.'">'.$TextID.'</a>.', LOG_TYPE_TRANSLATION); 152 } 153 } 154 } else $Output .= ShowMessage('Anglický originál k překladu nenalezen.', MESSAGE_CRITICAL); 155 } else $Output .= ShowMessage('Zadaná položka nenalezena.', MESSAGE_CRITICAL); 156 return($Output); 157 } 5 function Translate($Group, $TextID, $Complete, $Language) 6 { 7 $Output = ''; 8 $Table = $Group['TablePrefix']; 9 $CompleteText = array('nedokončený', 'dokončený'); 10 11 // Get source text record from database by ID 12 $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE `ID`='.$TextID); 13 if($DbResult->num_rows > 0) 14 { 15 $SourceText = $DbResult->fetch_assoc(); 16 17 // Get data for english original 18 $DbResult = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`Entry`='.$SourceText['Entry'].') '. 19 'AND (`Language` = '.$this->System->Config['OriginalLanguage'].') AND (`VersionStart` = '.$SourceText['VersionStart'].') '. 20 'AND (`VersionEnd` = '.$SourceText['VersionEnd'].')'); 21 if($DbResult->num_rows > 0) 22 { 23 $EnglishText = $DbResult->fetch_assoc(); 24 25 // Get all similar english texts 26 $Filter = array(); 27 foreach($Group['Items'] as $GroupItem) 28 if(($GroupItem['Visible'] == 1)) 29 $Filter[] = '(`'.$GroupItem['Column'].'` = "'.addslashes($EnglishText[$GroupItem['Column']]).'")'; 30 if(count($Filter) > 0) $Filter = ' AND ('.implode(' OR ', $Filter).')'; 31 32 $Query = 'SELECT * FROM `'.$Table.'` WHERE (`Language` = '.$this->System->Config['OriginalLanguage'].')'.$Filter; 33 $DbResult = $this->Database->query($Query); 34 while($EnglishFound = $DbResult->fetch_assoc()) 35 { 36 // Get user translation paired to found english item entry 37 $DbResult2 = $this->Database->query('SELECT * FROM `'.$Table.'` WHERE (`User` = '.$this->System->User->Id. 38 ') AND (`Entry` = '.$EnglishFound['Entry'].') AND (`VersionStart` = '.$EnglishFound['VersionStart']. 39 ') AND (`VersionEnd` = '.$EnglishFound['VersionEnd'].')'); 40 if($DbResult2->num_rows > 0) 41 { 42 // Update existed user translation 43 $ExistedText = $DbResult2->fetch_assoc(); 44 $Modified = false; 45 $Values = '`Language` = '.$Language; 46 if($Language != $ExistedText['Language']) $Modified = true; 47 48 $Completable = true; 49 $CompleteParts = $ExistedText['CompleteParts']; 50 foreach($Group['Items'] as $GroupItem) 51 { 52 if($GroupItem['Visible'] == 1) 53 { 54 if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']]) 55 { 56 if(array_key_exists($GroupItem['Column'], $_POST)) 57 { 58 if($_POST[$GroupItem['Column']] != $ExistedText[$GroupItem['Column']]) 59 $Modified = true; 60 61 $Values .= ', `'.$GroupItem['Column'].'` = "'.$_POST[$GroupItem['Column']].'"'; 62 $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1)); 63 } 64 } 65 if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and 66 ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false; 67 } 68 } 69 if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed 70 else $NewComplete = 0; 71 72 // Update completion status for saved translation item 73 if($SourceText['ID'] == $ExistedText['ID']) 74 { 75 $NewComplete = $Complete; // Our original user text, set complete according user choice 76 if($Complete == 1) 77 { 78 foreach($Group['Items'] as $GroupItem) 79 if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1)); 80 } 81 } 82 $Values .= ', `Complete`='.$NewComplete.', `CompleteParts` = '.$CompleteParts; 83 if(($NewComplete != $ExistedText['Complete']) or ($CompleteParts != $ExistedText['CompleteParts'])) 84 $Modified = true; 85 86 $Values .= ', `ModifyTime` = NOW()'; 87 if($Modified) 88 { 89 // Update user translation 90 $this->Database->query('UPDATE `'.$Table.'` SET '.$Values.' WHERE `ID` = '.$ExistedText['ID']); 91 92 $Output .= 'Změny v překladu <a href="'.$this->System->Link('/form.php?group='. 93 $Group['Id'].'&ID='.$ExistedText['ID']).'">'.$ExistedText['ID'].'</a> ('. 94 $ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.<br />'; 95 $this->System->ModuleManager->Modules['Log']->WriteLog('Změny v překladu <a href="'. 96 $this->System->Link('/form.php?group='.$Group['Id'].'&ID='.$ExistedText['ID']).'">'. 97 $ExistedText['ID'].'</a> ('.$ExistedText['Entry'].') uloženy jako '.$CompleteText[$NewComplete].'.', LOG_TYPE_TRANSLATION); 98 } 99 } else 100 { 101 // Insert new user translation 102 $Columns = '`Entry`, `VersionStart`, `VersionEnd`, `Language`, `User`, `Take`, `ModifyTime`'; 103 $Values = $EnglishFound['Entry'].', '.$EnglishFound['VersionStart'].', '. 104 $EnglishFound['VersionEnd'].', '.$Language.', '.$this->System->User->Id.', '.$EnglishFound['ID'].', NOW()'; 105 106 $CompleteParts = 0; 107 $Completable = true; 108 foreach($Group['Items'] as $GroupItem) 109 { 110 $Columns .= ', `'.$GroupItem['Column'].'`'; 111 if($GroupItem['Visible'] == 1) 112 { 113 if($EnglishFound[$GroupItem['Column']] == $EnglishText[$GroupItem['Column']]) 114 { 115 // Read form user data 116 if(array_key_exists($GroupItem['Column'], $_POST)) 117 { 118 $Values .= ', "'.$_POST[$GroupItem['Column']].'"'; 119 $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1)); 120 } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"'; 121 } else $Values .= ', "'.addslashes($EnglishFound[$GroupItem['Column']]).'"'; 122 if((($CompleteParts & (1 << ($GroupItem['Sequence'] - 1))) == 0) and ($EnglishFound[$GroupItem['Column']] != '')) $Completable = false; 123 } else 124 { 125 // Read from english text 126 $Values .= ', "'.$EnglishFound[$GroupItem['Column']].'"'; 127 } 128 } 129 if($Completable) $NewComplete = 1; // All parts of text are completed. Make entire text as completed 130 else $NewComplete = 0; 131 if($SourceText['ID'] == $EnglishFound['ID']) 132 { 133 $NewComplete = $Complete; // Our original user text, set complete according user choice 134 if($Complete == 1) 135 { 136 foreach($Group['Items'] as $GroupItem) 137 if($GroupItem['Visible'] == 1) $CompleteParts |= (1 << ($GroupItem['Sequence'] - 1)); 138 } 139 } 140 $Columns .= ', `Complete`, `CompleteParts`'; 141 $Values .= ', '.$NewComplete.', '.$CompleteParts; 142 $this->Database->query('INSERT INTO `'.$Table.'` ('.$Columns.') VALUES ('.$Values.')'); 143 $LastID = $this->Database->insert_id; 144 145 $Output .= 'Text <a href="'.$this->System->Link('/form.php?group='. 146 $Group['Id'].'&ID='.$LastID).'">'.$LastID.'</a> ze skupiny <a href="TranslationList.php?group='. 147 $Group['Id'].'&user=0&action=filter">'.$Group['Name'].'</a> uložen jako '. 148 $CompleteText[$NewComplete].'. Převzat z <a href="form.php?group='.$Group['Id'].'&ID='.$TextID.'">'.$TextID.'</a>.<br/>'; 149 $this->System->ModuleManager->Modules['Log']->WriteLog('Text <a href="'. 150 $this->System->Link('/form.php?group='.$Group['Id'].'&ID='.$LastID).'">'. 151 $LastID.'</a> ze skupiny <a href="TranslationList.php?group='. 152 $Group['Id'].'&user=0&text=&entry=&action=filter">'. 153 $Group['Name'].'</a> uložen jako '.$CompleteText[$NewComplete]. 154 '. Převzat z <a href="form.php?group='.$Group['Id'].'&ID='.$TextID.'">'.$TextID.'</a>.', LOG_TYPE_TRANSLATION); 155 } 156 } 157 } else $Output .= ShowMessage('Anglický originál k překladu nenalezen.', MESSAGE_CRITICAL); 158 } else $Output .= ShowMessage('Zadaná položka nenalezena.', MESSAGE_CRITICAL); 159 return($Output); 160 } 158 161 159 162 function Show() … … 184 187 $Output .= $this->ShowRedirection($GroupId, $Table, $TextID); 185 188 186 // Update flag for experience info load187 //$this->Database->query('UPDATE `User` SET `NeedUpdate` = 1 WHERE `ID` = '.$this->System->User->Id);188 189 UserLevelUpdate($this->System->User->Id); 189 190 } else $Output .= ShowMessage('Položka nenalezena', MESSAGE_CRITICAL); 190 191 } else 191 192 { 193 // User automatically logged out. Show login dialog and allow to save retry. 192 194 if(array_key_exists('ID', $_POST) and array_key_exists('entry', $_POST) and array_key_exists('Language', $_POST) and array_key_exists('user', $_POST)) 193 195 { 194 196 $Output .= 'Byli jste automaticky odhlášeni. Pro <strong>Uložení překladu</strong> se musíte přihlásit zde:<br /><br />'. 195 196 197 198 199 197 '<form action="save.php?action=login&group='.$GroupId.'" method="post"><div>'. 198 '<input type="hidden" name="entry" value="'.$_POST['entry'].'" />'. 199 '<input type="hidden" name="user" value="'.$_POST['user'].'" />'. 200 '<input type="hidden" name="ID" value="'.$_POST['ID'].'" />'. 201 '<input type="hidden" name="Language" value="'.$_POST['Language'].'" />'; 200 202 201 203 foreach($TranslationTree[$GroupId]['Items'] as $Index => $TextItem) … … 205 207 } 206 208 $Output .= '<table>'. 207 208 209 210 211 212 213 214 209 '<tr>'. 210 '<td>Jméno: <input type="text" name="LoginUser" size="13" /></td>'. 211 '</tr><tr>'. 212 '<td>Heslo: <input type="password" name="LoginPass" size="13" /></td>'. 213 '</tr><tr>'. 214 '<th><input type="submit" value="Přihlásit a uložit překlad" /></th>'. 215 '</tr>'. 216 '</table>'; 215 217 } else $Output = ShowMessage('Nezadány požadované údaje.', MESSAGE_CRITICAL); 216 218 } … … 220 222 function ShowRedirection($GroupId, $Table, $TextID) 221 223 { 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 224 // Address and redirecting 225 $Output = '<br />Překládat: <a href="TranslationList.php?group='.$GroupId.'&state=1&user=0&entry=">Nepřeložené</a> '; 226 227 $prev = FollowingTran($TextID, $Table, $GroupId, True); 228 $next = FollowingTran($TextID, $Table, $GroupId); 229 $Output .= '<br /><br />'; 230 $DbResult = $this->Database->query('SELECT `Redirecting` FROM `User` WHERE `ID`='.$this->System->User->Id); 231 $redirecting = $DbResult->fetch_assoc(); 232 233 switch($redirecting['Redirecting']) 234 { 235 case 1: 236 $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'. 237 'setTimeout("parent.location.href=\''.htmlspecialchars_decode('TranslationList.php?group='.$GroupId.'&state=1&user=0').'\'", 1500)'. 238 '</script>'; 239 break; 240 case 2: 241 if($next <> '') 242 $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'. 243 'setTimeout("parent.location.href=\''.htmlspecialchars_decode($next).'\'", 1500)'. 244 '</script>'; 245 break; 246 case 3: 247 if($prev <> '') 248 $Output .= '<script type="text/javascript" language="JavaScript" charset="utf-8">'. 249 'setTimeout("parent.location.href=\''.htmlspecialchars_decode($prev).'\'", 1500)'. 250 '</script>'; 251 break; 252 } 253 254 $Output .= 'Z této stránky můžete být automaticky přesměrování. Nastavit kam chcete být přesměrování si můžete v <a href="'. 255 $this->System->Link('/Options.php').'" title="Nastavení uživatele">Nastavení</a>'; 254 256 return($Output); 255 257 } -
trunk/Modules/Translation/TranslationList.php
r831 r833 185 185 } 186 186 if($Filter['State'] == CompletionState::All) { 187 187 $Filter['SQL'] .= $UserFilter.$VersionFilter; 188 188 } else 189 189 if($Filter['State'] == CompletionState::NotTranslated) { 190 190 $Filter['SQL'] .= $VersionFilter.' AND (`T`.`Language` = '.$this->System->Config['OriginalLanguage'].') '. 191 191 'AND NOT EXISTS(SELECT 1 FROM `'.$Table.'` AS `Sub` WHERE '. 192 192 '(`Sub`.`Language` <> '.$this->System->Config['OriginalLanguage'].') '.$LanguageFilterSub.$UserFilter. … … 195 195 } else 196 196 if($Filter['State'] == CompletionState::Translated) { 197 197 $Filter['SQL'] .= $UserFilter.$LanguageFilter.$VersionFilter.' AND (`T`.`Complete` = 1)'; 198 198 } else 199 199 if($Filter['State'] == CompletionState::NotFinished) { 200 200 $Filter['SQL'] .= $UserFilter.$LanguageFilter.$VersionFilter.' AND (`T`.`Language` != '.$this->System->Config['OriginalLanguage']. 201 201 ') AND (`T`.`Complete` = 0)'; 202 202 } else 203 203 if($Filter['State'] == CompletionState::Original) { 204 204 $Filter['SQL'] .= $VersionFilter.' AND (`T`.`Language` = '.$this->System->Config['OriginalLanguage'].')'; 205 205 } else 206 206 if($Filter['State'] == CompletionState::NotFinishedNotTranslated) { 207 207 $Filter['SQL'] .= $UserFilter.$VersionFilter.$WithoutAlter. 208 208 ' AND (`T`.`Language` != '.$this->System->Config['OriginalLanguage']. 209 209 ') AND (`T`.`Complete` = 0)'; -
trunk/Modules/Translation/UserLevel.php
r830 r833 38 38 39 39 $IDtran = $System->Database->query('SELECT *, `T2`.`Language` AS `Language_Take`'.$TakeColumns.' FROM `'.$Group['TablePrefix'].'` AS `T` '. 40 41 40 'LEFT JOIN `'.$Group['TablePrefix'].'` AS `T2` ON `T2`.`ID` = `T`.`Take` '. 41 'WHERE (`T`.`User` = '.$UserId.') AND (`T`.`Complete` = 1) AND (`T`.`Take` IS NOT NULL) '.$GroupBy); 42 42 while($Line = $IDtran->fetch_array()) 43 43 { -
trunk/includes/UTF8.php
r820 r833 21 21 ISO8859-1: iso1 22 22 Windows1257: win1257 23 23 24 24 example: $new_string=to_utf8($some_string,"win1250"); 25 25 */ … … 28 28 /* 29 29 translation table - actually, it's array where key is hexadecimal number of 30 character in ISO8859-2/Windows1250 and value is its two byte representation in UTF-8 30 character in ISO8859-2/Windows1250 and value is its two byte representation in UTF-8 31 31 */ 32 32 33 class Encoding 33 class Encoding 34 34 { 35 35 function __construct() 36 36 { 37 37 $this->CharTable = array( 38 38 'iso2' => array( 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 39 0x80=>"\xc2\x80", 40 0x81=>"\xc2\x81", 41 0x82=>"\xc2\x82", 42 0x83=>"\xc2\x83", 43 0x84=>"\xc2\x84", 44 0x85=>"\xc2\x85", 45 0x86=>"\xc2\x86", 46 0x87=>"\xc2\x87", 47 0x88=>"\xc2\x88", 48 0x89=>"\xc2\x89", 49 0x8A=>"\xc2\x8a", 50 0x8B=>"\xc2\x8b", 51 0x8C=>"\xc2\x8c", 52 0x8D=>"\xc2\x8d", 53 0x8E=>"\xc2\x8e", 54 0x8F=>"\xc2\x8f", 55 0x90=>"\xc2\x90", 56 0x91=>"\xc2\x91", 57 0x92=>"\xc2\x92", 58 0x93=>"\xc2\x93", 59 0x94=>"\xc2\x94", 60 0x95=>"\xc2\x95", 61 0x96=>"\xc2\x96", 62 0x97=>"\xc2\x97", 63 0x98=>"\xc2\x98", 64 0x99=>"\xc2\x99", 65 0x9A=>"\xc2\x9a", 66 0x9B=>"\xc2\x9b", 67 0x9C=>"\xc2\x9c", 68 0x9D=>"\xc2\x9d", 69 0x9E=>"\xc2\x9e", 70 0x9F=>"\xc2\x9f", 71 0xA0=>"\xc2\xa0", 72 0xA1=>"\xc4\x84", 73 0xA2=>"\xcb\x98", 74 0xA3=>"\xc5\x81", 75 0xA4=>"\xc2\xa4", 76 0xA5=>"\xc4\xbd", 77 0xA6=>"\xc5\x9a", 78 0xA7=>"\xc2\xa7", 79 0xA8=>"\xc2\xa8", 80 0xA9=>"\xc5\xa0", 81 0xAA=>"\xc5\x9e", 82 0xAB=>"\xc5\xa4", 83 0xAC=>"\xc5\xb9", 84 0xAD=>"\xc2\xad", 85 0xAE=>"\xc5\xbd", 86 0xAF=>"\xc5\xbb", 87 0xB0=>"\xc2\xb0", 88 0xB1=>"\xc4\x85", 89 0xB2=>"\xcb\x9b", 90 0xB3=>"\xc5\x82", 91 0xB4=>"\xc2\xb4", 92 0xB5=>"\xc4\xbe", 93 0xB6=>"\xc5\x9b", 94 0xB7=>"\xcb\x87", 95 0xB8=>"\xc2\xb8", 96 0xB9=>"\xc5\xa1", 97 0xBA=>"\xc5\x9f", 98 0xBB=>"\xc5\xa5", 99 0xBC=>"\xc5\xba", 100 0xBD=>"\xcb\x9d", 101 0xBE=>"\xc5\xbe", 102 0xBF=>"\xc5\xbc", 103 0xC0=>"\xc5\x94", 104 0xC1=>"\xc3\x81", 105 0xC2=>"\xc3\x82", 106 0xC3=>"\xc4\x82", 107 0xC4=>"\xc3\x84", 108 0xC5=>"\xc4\xb9", 109 0xC6=>"\xc4\x86", 110 0xC7=>"\xc3\x87", 111 0xC8=>"\xc4\x8c", 112 0xC9=>"\xc3\x89", 113 0xCA=>"\xc4\x98", 114 0xCB=>"\xc3\x8b", 115 0xCC=>"\xc4\x9a", 116 0xCD=>"\xc3\x8d", 117 0xCE=>"\xc3\x8e", 118 0xCF=>"\xc4\x8e", 119 0xD0=>"\xc4\x90", 120 0xD1=>"\xc5\x83", 121 0xD2=>"\xc5\x87", 122 0xD3=>"\xc3\x93", 123 0xD4=>"\xc3\x94", 124 0xD5=>"\xc5\x90", 125 0xD6=>"\xc3\x96", 126 0xD7=>"\xc3\x97", 127 0xD8=>"\xc5\x98", 128 0xD9=>"\xc5\xae", 129 0xDA=>"\xc3\x9a", 130 0xDB=>"\xc5\xb0", 131 0xDC=>"\xc3\x9c", 132 0xDD=>"\xc3\x9d", 133 0xDE=>"\xc5\xa2", 134 0xDF=>"\xc3\x9f", 135 0xE0=>"\xc5\x95", 136 0xE1=>"\xc3\xa1", 137 0xE2=>"\xc3\xa2", 138 0xE3=>"\xc4\x83", 139 0xE4=>"\xc3\xa4", 140 0xE5=>"\xc4\xba", 141 0xE6=>"\xc4\x87", 142 0xE7=>"\xc3\xa7", 143 0xE8=>"\xc4\x8d", 144 0xE9=>"\xc3\xa9", 145 0xEA=>"\xc4\x99", 146 0xEB=>"\xc3\xab", 147 0xEC=>"\xc4\x9b", 148 0xED=>"\xc3\xad", 149 0xEE=>"\xc3\xae", 150 0xEF=>"\xc4\x8f", 151 0xF0=>"\xc4\x91", 152 0xF1=>"\xc5\x84", 153 0xF2=>"\xc5\x88", 154 0xF3=>"\xc3\xb3", 155 0xF4=>"\xc3\xb4", 156 0xF5=>"\xc5\x91", 157 0xF6=>"\xc3\xb6", 158 0xF7=>"\xc3\xb7", 159 0xF8=>"\xc5\x99", 160 0xF9=>"\xc5\xaf", 161 0xFA=>"\xc3\xba", 162 0xFB=>"\xc5\xb1", 163 0xFC=>"\xc3\xbc", 164 0xFD=>"\xc3\xbd", 165 0xFE=>"\xc5\xa3", 166 0xFF=>"\xcb\x99" 167 167 ), 168 168 'win1250' => array( 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 169 0x80=>"\xc2\x80", 170 0x81=>"\xc2\x81", 171 0x82=>"\xe2\x80\x9a", 172 0x83=>"\xc2\x83", 173 0x84=>"\xe2\x80\x9e", 174 0x85=>"\xe2\x80\xa6", 175 0x86=>"\xe2\x80\xa0", 176 0x87=>"\xe2\x80\xa1", 177 0x88=>"\xc2\x88", 178 0x89=>"\xe2\x80\xb0", 179 0x8a=>"\xc5\xa0", 180 0x8b=>"\xe2\x80\xb9", 181 0x8c=>"\xc5\x9a", 182 0x8d=>"\xc5\xa4", 183 0x8e=>"\xc5\xbd", 184 0x8f=>"\xc5\xb9", 185 0x90=>"\xc2\x90", 186 0x91=>"\xe2\x80\x98", 187 0x92=>"\xe2\x80\x99", 188 0x93=>"\xe2\x80\x9c", 189 0x94=>"\xe2\x80\x9d", 190 0x95=>"\xe2\x80\xa2", 191 0x96=>"\xe2\x80\x93", 192 0x97=>"\xe2\x80\x94", 193 0x98=>"\xe2\x80\x98", 194 0x99=>"\xe2\x84\xa2", 195 0x9a=>"\xc5\xa1", 196 0x9b=>"\xe2\x80\xba", 197 0x9c=>"\xc5\x9b", 198 0x9d=>"\xc5\xa5", 199 0x9e=>"\xc5\xbe", 200 0x9f=>"\xc5\xba", 201 0xa0=>"\xc2\xa0", 202 0xa1=>"\xcb\x87", 203 0xa2=>"\xcb\x98", 204 0xa3=>"\xc5\x81", 205 0xa4=>"\xc2\xa4", 206 0xa5=>"\xc4\x84", 207 0xa6=>"\xc2\xa6", 208 0xa7=>"\xc2\xa7", 209 0xa8=>"\xc2\xa8", 210 0xa9=>"\xc2\xa9", 211 0xaa=>"\xc5\x9e", 212 0xab=>"\xc2\xab", 213 0xac=>"\xc2\xac", 214 0xad=>"\xc2\xad", 215 0xae=>"\xc2\xae", 216 0xaf=>"\xc5\xbb", 217 0xb0=>"\xc2\xb0", 218 0xb1=>"\xc2\xb1", 219 0xb2=>"\xcb\x9b", 220 0xb3=>"\xc5\x82", 221 0xb4=>"\xc2\xb4", 222 0xb5=>"\xc2\xb5", 223 0xb6=>"\xc2\xb6", 224 0xb7=>"\xc2\xb7", 225 0xb8=>"\xc2\xb8", 226 0xb9=>"\xc4\x85", 227 0xba=>"\xc5\x9f", 228 0xbb=>"\xc2\xbb", 229 0xbc=>"\xc4\xbd", 230 0xbd=>"\xcb\x9d", 231 0xbe=>"\xc4\xbe", 232 0xbf=>"\xc5\xbc", 233 0xc0=>"\xc5\x94", 234 0xc1=>"\xc3\x81", 235 0xc2=>"\xc3\x82", 236 0xc3=>"\xc4\x82", 237 0xc4=>"\xc3\x84", 238 0xc5=>"\xc4\xb9", 239 0xc6=>"\xc4\x86", 240 0xc7=>"\xc3\x87", 241 0xc8=>"\xc4\x8c", 242 0xc9=>"\xc3\x89", 243 0xca=>"\xc4\x98", 244 0xcb=>"\xc3\x8b", 245 0xcc=>"\xc4\x9a", 246 0xcd=>"\xc3\x8d", 247 0xce=>"\xc3\x8e", 248 0xcf=>"\xc4\x8e", 249 0xd0=>"\xc4\x90", 250 0xd1=>"\xc5\x83", 251 0xd2=>"\xc5\x87", 252 0xd3=>"\xc3\x93", 253 0xd4=>"\xc3\x94", 254 0xd5=>"\xc5\x90", 255 0xd6=>"\xc3\x96", 256 0xd7=>"\xc3\x97", 257 0xd8=>"\xc5\x98", 258 0xd9=>"\xc5\xae", 259 0xda=>"\xc3\x9a", 260 0xdb=>"\xc5\xb0", 261 0xdc=>"\xc3\x9c", 262 0xdd=>"\xc3\x9d", 263 0xde=>"\xc5\xa2", 264 0xdf=>"\xc3\x9f", 265 0xe0=>"\xc5\x95", 266 0xe1=>"\xc3\xa1", 267 0xe2=>"\xc3\xa2", 268 0xe3=>"\xc4\x83", 269 0xe4=>"\xc3\xa4", 270 0xe5=>"\xc4\xba", 271 0xe6=>"\xc4\x87", 272 0xe7=>"\xc3\xa7", 273 0xe8=>"\xc4\x8d", 274 0xe9=>"\xc3\xa9", 275 0xea=>"\xc4\x99", 276 0xeb=>"\xc3\xab", 277 0xec=>"\xc4\x9b", 278 0xed=>"\xc3\xad", 279 0xee=>"\xc3\xae", 280 0xef=>"\xc4\x8f", 281 0xf0=>"\xc4\x91", 282 0xf1=>"\xc5\x84", 283 0xf2=>"\xc5\x88", 284 0xf3=>"\xc3\xb3", 285 0xf4=>"\xc3\xb4", 286 0xf5=>"\xc5\x91", 287 0xf6=>"\xc3\xb6", 288 0xf7=>"\xc3\xb7", 289 0xf8=>"\xc5\x99", 290 0xf9=>"\xc5\xaf", 291 0xfa=>"\xc3\xba", 292 0xfb=>"\xc5\xb1", 293 0xfc=>"\xc3\xbc", 294 0xfd=>"\xc3\xbd", 295 0xfe=>"\xc5\xa3", 296 0xff=>"\xcb\x99" 297 297 ), 298 298 'iso1' => array( 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 299 0xA0=>"\xc2\xa0", 300 0xA1=>"\xc2\xa1", 301 0xA2=>"\xc2\xa2", 302 0xA3=>"\xc2\xa3", 303 0xA4=>"\xc2\xa4", 304 0xA5=>"\xc2\xa5", 305 0xA6=>"\xc2\xa6", 306 0xA7=>"\xc2\xa7", 307 0xA8=>"\xc2\xa8", 308 0xA9=>"\xc2\xa9", 309 0xAA=>"\xc2\xaa", 310 0xAB=>"\xc2\xab", 311 0xAC=>"\xc2\xac", 312 0xAD=>"\xc2\xad", 313 0xAE=>"\xc2\xae", 314 0xAF=>"\xc2\xaf", 315 0xB0=>"\xc2\xb0", 316 0xB1=>"\xc2\xb1", 317 0xB2=>"\xc2\xb2", 318 0xB3=>"\xc2\xb3", 319 0xB4=>"\xc2\xb4", 320 0xB5=>"\xc2\xb5", 321 0xB6=>"\xc2\xb6", 322 0xB7=>"\xc2\xb7", 323 0xB8=>"\xc2\xb8", 324 0xB9=>"\xc2\xb9", 325 0xBA=>"\xc2\xba", 326 0xBB=>"\xc2\xbb", 327 0xBC=>"\xc2\xbc", 328 0xBD=>"\xc2\xbd", 329 0xBE=>"\xc2\xbe", 330 0xBF=>"\xc2\xbf", 331 0xC0=>"\xc3\x80", 332 0xC1=>"\xc3\x81", 333 0xC2=>"\xc3\x82", 334 0xC3=>"\xc3\x83", 335 0xC4=>"\xc3\x84", 336 0xC5=>"\xc3\x85", 337 0xC6=>"\xc3\x86", 338 0xC7=>"\xc3\x87", 339 0xC8=>"\xc3\x88", 340 0xC9=>"\xc3\x89", 341 0xCA=>"\xc3\x8a", 342 0xCB=>"\xc3\x8b", 343 0xCC=>"\xc3\x8c", 344 0xCD=>"\xc3\x8d", 345 0xCE=>"\xc3\x8e", 346 0xCF=>"\xc3\x8f", 347 0xD0=>"\xc3\x90", 348 0xD1=>"\xc3\x91", 349 0xD2=>"\xc3\x92", 350 0xD3=>"\xc3\x93", 351 0xD4=>"\xc3\x94", 352 0xD5=>"\xc3\x95", 353 0xD6=>"\xc3\x96", 354 0xD7=>"\xc3\x97", 355 0xD8=>"\xc3\x98", 356 0xD9=>"\xc3\x99", 357 0xDA=>"\xc3\x9a", 358 0xDB=>"\xc3\x9b", 359 0xDC=>"\xc3\x9c", 360 0xDD=>"\xc3\x9d", 361 0xDE=>"\xc3\x9e", 362 0xDF=>"\xc3\x9f", 363 0xE0=>"\xc3\xa0", 364 0xE1=>"\xc3\xa1", 365 0xE2=>"\xc3\xa2", 366 0xE3=>"\xc3\xa3", 367 0xE4=>"\xc3\xa4", 368 0xE5=>"\xc3\xa5", 369 0xE6=>"\xc3\xa6", 370 0xE7=>"\xc3\xa7", 371 0xE8=>"\xc3\xa8", 372 0xE9=>"\xc3\xa9", 373 0xEA=>"\xc3\xaa", 374 0xEB=>"\xc3\xab", 375 0xEC=>"\xc3\xac", 376 0xED=>"\xc3\xad", 377 0xEE=>"\xc3\xae", 378 0xEF=>"\xc3\xaf", 379 0xF0=>"\xc3\xb0", 380 0xF1=>"\xc3\xb1", 381 0xF2=>"\xc3\xb2", 382 0xF3=>"\xc3\xb3", 383 0xF4=>"\xc3\xb4", 384 0xF5=>"\xc3\xb5", 385 0xF6=>"\xc3\xb6", 386 0xF7=>"\xc3\xb7", 387 0xF8=>"\xc3\xb8", 388 0xF9=>"\xc3\xb9", 389 0xFA=>"\xc3\xba", 390 0xFB=>"\xc3\xbb", 391 0xFC=>"\xc3\xbc", 392 0xFD=>"\xc3\xbd", 393 0xFE=>"\xc3\xbe" 394 394 ), 395 395 'win1257' => array( 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 396 0x80=>"\xe2\x82\xac", 397 0x81=>"\xc0\x4", 398 0x82=>"\xe2\x80\x9a", 399 0x83=>"\xc0\x4", 400 0x84=>"\xe2\x80\x9e", 401 0x85=>"\xe2\x80\xa6", 402 0x86=>"\xe2\x80\xa0", 403 0x87=>"\xe2\x80\xa1", 404 0x88=>"\xc0\x4", 405 0x89=>"\xe2\x80\xb0", 406 0x8A=>"\xc0\x4", 407 0x8B=>"\xe2\x80\xb9", 408 0x8C=>"\xc0\x4", 409 0x8D=>"\xc2\xa8", 410 0x8E=>"\xcb\x87", 411 0x8F=>"\xc2\xb8", 412 0x90=>"\xc0\x4", 413 0x91=>"\xe2\x80\x98", 414 0x92=>"\xe2\x80\x99", 415 0x93=>"\xe2\x80\x9c", 416 0x94=>"\xe2\x80\x9d", 417 0x95=>"\xe2\x80\xa2", 418 0x96=>"\xe2\x80\x93", 419 0x97=>"\xe2\x80\x94", 420 0x98=>"\xc0\x4", 421 0x99=>"\xe2\x84\xa2", 422 0x9A=>"\xc0\x4", 423 0x9B=>"\xe2\x80\xba", 424 0x9C=>"\xc0\x4", 425 0x9D=>"\xc2\xaf", 426 0x9E=>"\xcb\x9b", 427 0x9F=>"\xc0\x4", 428 0xA0=>"\xc2\xa0", 429 0xA1=>"\xc0\x4", 430 0xA2=>"\xc2\xa2", 431 0xA3=>"\xc2\xa3", 432 0xA4=>"\xc2\xa4", 433 0xA5=>"\xc0\x4", 434 0xA6=>"\xc2\xa6", 435 0xA7=>"\xc2\xa7", 436 0xA8=>"\xc3\x98", 437 0xA9=>"\xc2\xa9", 438 0xAA=>"\xc5\x96", 439 0xAB=>"\xc2\xab", 440 0xAC=>"\xc2\xac", 441 0xAD=>"\xc2\xad", 442 0xAE=>"\xc2\xae", 443 0xAF=>"\xc3\x86", 444 0xB0=>"\xc2\xb0", 445 0xB1=>"\xc2\xb1", 446 0xB2=>"\xc2\xb2", 447 0xB3=>"\xc2\xb3", 448 0xB4=>"\xc2\xb4", 449 0xB5=>"\xc2\xb5", 450 0xB6=>"\xc2\xb6", 451 0xB7=>"\xc2\xb7", 452 0xB8=>"\xc3\xb8", 453 0xB9=>"\xc2\xb9", 454 0xBA=>"\xc5\x97", 455 0xBB=>"\xc2\xbb", 456 0xBC=>"\xc2\xbc", 457 0xBD=>"\xc2\xbd", 458 0xBE=>"\xc2\xbe", 459 0xBF=>"\xc3\xa6", 460 0xC0=>"\xc4\x84", 461 0xC1=>"\xc4\xae", 462 0xC2=>"\xc4\x80", 463 0xC3=>"\xc4\x86", 464 0xC4=>"\xc3\x84", 465 0xC5=>"\xc3\x85", 466 0xC6=>"\xc4\x98", 467 0xC7=>"\xc4\x92", 468 0xC8=>"\xc4\x8c", 469 0xC9=>"\xc3\x89", 470 0xCA=>"\xc5\xb9", 471 0xCB=>"\xc4\x96", 472 0xCC=>"\xc4\xa2", 473 0xCD=>"\xc4\xb6", 474 0xCE=>"\xc4\xaa", 475 0xCF=>"\xc4\xbb", 476 0xD0=>"\xc5\xa0", 477 0xD1=>"\xc5\x83", 478 0xD2=>"\xc5\x85", 479 0xD3=>"\xc3\x93", 480 0xD4=>"\xc5\x8c", 481 0xD5=>"\xc3\x95", 482 0xD6=>"\xc3\x96", 483 0xD7=>"\xc3\x97", 484 0xD8=>"\xc5\xb2", 485 0xD9=>"\xc5\x81", 486 0xDA=>"\xc5\x9a", 487 0xDB=>"\xc5\xaa", 488 0xDC=>"\xc3\x9c", 489 0xDD=>"\xc5\xbb", 490 0xDE=>"\xc5\xbd", 491 0xDF=>"\xc3\x9f", 492 0xE0=>"\xc4\x85", 493 0xE1=>"\xc4\xaf", 494 0xE2=>"\xc4\x81", 495 0xE3=>"\xc4\x87", 496 0xE4=>"\xc3\xa4", 497 0xE5=>"\xc3\xa5", 498 0xE6=>"\xc4\x99", 499 0xE7=>"\xc4\x93", 500 0xE8=>"\xc4\x8d", 501 0xE9=>"\xc3\xa9", 502 0xEA=>"\xc5\xba", 503 0xEB=>"\xc4\x97", 504 0xEC=>"\xc4\xa3", 505 0xED=>"\xc4\xb7", 506 0xEE=>"\xc4\xab", 507 0xEF=>"\xc4\xbc", 508 0xF0=>"\xc5\xa1", 509 0xF1=>"\xc5\x84", 510 0xF2=>"\xc5\x86", 511 0xF3=>"\xc3\xb3", 512 0xF4=>"\xc5\x8d", 513 0xF5=>"\xc3\xb5", 514 0xF6=>"\xc3\xb6", 515 0xF7=>"\xc3\xb7", 516 0xF8=>"\xc5\xb3", 517 0xF9=>"\xc5\x82", 518 0xFA=>"\xc5\x9b", 519 0xFB=>"\xc5\xab", 520 0xFC=>"\xc3\xbc", 521 0xFD=>"\xc5\xbc", 522 0xFE=>"\xc5\xbe", 523 0xFF=>"\xcb\x99" 524 524 ), 525 525 ); … … 529 529 { 530 530 $Result = ''; 531 for($I = 0; $I < strlen($String); $I++) 531 for($I = 0; $I < strlen($String); $I++) 532 532 { 533 533 if(ord($String[$I]) < 128) $Result .= $String[$I]; -
trunk/includes/Version.php
r832 r833 6 6 // and system will need database update. 7 7 8 $Revision = 83 2; // Subversion revision8 $Revision = 833; // Subversion revision 9 9 $DatabaseRevision = 811; // Database structure revision 10 10 $ReleaseTime = '2015-08-24';
Note:
See TracChangeset
for help on using the changeset viewer.