Project

General

Profile

« Previous | Next » 

Revision 442

Added by Matthias over 17 years ago

Fixed issues with some languages when UTF8 is used.
Removed all htmlentites from the code (revoked changeset [396]) and added new functions instead.
Adapted the search and the highlighting to use the new functions.
With this changes WB can now be used with charset UTF8 for all languages.

View differences:

search.php
28 28
	exit(0);
29 29
}
30 30

  
31
// Include the WB functions file
32
require_once(WB_PATH.'/framework/functions.php');
33

  
31 34
// Check if search is enabled
32 35
if(SHOW_SEARCH != true) {
33 36
	echo $TEXT['SEARCH'].' '.$TEXT['DISABLED'];
......
55 58
		// Double backslashes (mySQL needs doubly escaped backslashes in LIKE comparisons)
56 59
		$string = addslashes($wb->escape_backslashes($original_string));
57 60
		// convert a copy of $string to HTML-ENTITIES
58
		$string_entities=mb_convert_encoding($string, 'UTF-8', 'HTML-ENTITIES');
59
		$string_entities=htmlspecialchars($string_entities,ENT_QUOTES);
60
		$string_entities=mb_convert_encoding($string_entities, 'HTML-ENTITIES', 'UTF-8');
61
		$string_entities = umlauts_to_entities($string);
61 62
		// and do some convertion to both
62 63
		require(WB_PATH.'/search/search_convert.php');
63
		$string=strtr($string,$string_conv);
64
		$string_entities=strtr($string_entities,$string_entities_conv);
64
		if(strcmp(DEFAULT_CHARSET, "iso-8859-1") == 0) {
65
			$string=strtr($string,$string_conv_iso88591);
66
			$string_entities=strtr($string_entities,$string_entities_conv_iso88591);
67
		}
65 68
		$search_string = $string_entities;
66 69
	} else {
67 70
		$string = '';
......
181 184
				$link = page_link($page['link']);
182 185
				
183 186
				//Add search string for highlighting
184
				$sstring = implode(" ", array_merge($string,$string_entities));
185
				//$link = $link."?searchresult=1&sstring=".$sstring;
186
				$link = $link."?searchresult=1&sstring=".urlencode($sstring);
187
				if ($match!='exact') {
188
					$sorted=array_merge($string,$string_entities);
189
					sort($sorted);
190
					$sstring = implode(" ", $sorted);
191
					$link = $link."?searchresult=1&sstring=".urlencode($sstring);
192
				}
193
				else {
194
					$sstring = strtr($string[0], " ", "_")." ".strtr($string_entities[0], " ","_");
195
					$link = $link."?searchresult=2&sstring=".urlencode($sstring);
196
				}
187 197
				
188 198
				// Set vars to be replaced by values
189 199
				$vars = array('[LINK]', '[TITLE]', '[DESCRIPTION]', '[USERNAME]','[DISPLAY_NAME]','[DATE]','[TIME]','[TEXT_LAST_UPDATED_BY]','[TEXT_ON]');
......
268 278
										$link = page_link($page[$fields['link']]);
269 279
										
270 280
										//Add search string for highlighting
271
										$sstring = implode(" ", array_merge($string,$string_entities));
272
										//$link = $link."?searchresult=1&sstring=".$sstring;
273
										$link = $link."?searchresult=1&sstring=".urlencode($sstring);
281
										if ($match!='exact') {
282
											$sorted=array_merge($string,$string_entities);
283
											sort($sorted);
284
											$sstring = implode(" ", $sorted);
285
											$link = $link."?searchresult=1&sstring=".urlencode($sstring);
286
										}
287
										else {
288
											$sstring = strtr($string[0], " ", "_")." ".strtr($string_entities[0], " ","_");
289
											$link = $link."?searchresult=2&sstring=".urlencode($sstring);
290
										}
274 291
										
275 292
										// Set vars to be replaced by values
276 293
										$vars = array('[LINK]', '[TITLE]', '[DESCRIPTION]', '[USERNAME]','[DISPLAY_NAME]','[DATE]','[TIME]','[TEXT_LAST_UPDATED_BY]','[TEXT_ON]');

Also available in: Unified diff