Changeset 10322
- Timestamp:
- 01/06/2009 06:20:47 PM (16 years ago)
- Location:
- trunk/wp-includes
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/formatting.php
r10298 r10322 1219 1219 } 1220 1220 1221 1222 /** 1223 * Convert one smiley code to the icon graphic file equivalent. 1224 * 1225 * Looks up one smiley code in the $wpsmiliestrans global array and returns an 1226 * <img> string for that smiley. 1227 * 1228 * @global array $wpsmiliestrans 1229 * @since 2.8.0 1230 * 1231 * @param string $smiley Smiley code to convert to image. 1232 * @return string Image string for smiley. 1233 */ 1234 function translate_smiley($smiley) { 1235 global $wpsmiliestrans; 1236 1237 if (count($smiley) == 0) { 1238 return ''; 1239 } 1240 1241 $siteurl = get_option( 'siteurl' ); 1242 1243 $smiley = trim(reset($smiley)); 1244 $img = $wpsmiliestrans[$smiley]; 1245 $smiley_masked = attribute_escape($smiley); 1246 1247 return " <img src='$siteurl/wp-includes/images/smilies/$img' alt='$smiley_masked' class='wp-smiley' /> "; 1248 } 1249 1250 1221 1251 /** 1222 1252 * Convert text equivalent of smilies to images. 1223 1253 * 1224 * Will only convert smilies if the option 'use_smilies' is true and the global s1225 * used in the function aren't empty.1254 * Will only convert smilies if the option 'use_smilies' is true and the global 1255 * used in the function isn't empty. 1226 1256 * 1227 1257 * @since 0.71 1228 * @uses $wp_smiliessearch , $wp_smiliesreplace Smiley replacement arrays.1258 * @uses $wp_smiliessearch 1229 1259 * 1230 1260 * @param string $text Content to convert smilies from text. … … 1232 1262 */ 1233 1263 function convert_smilies($text) { 1234 global $wp_smiliessearch , $wp_smiliesreplace;1264 global $wp_smiliessearch; 1235 1265 $output = ''; 1236 if ( get_option('use_smilies') && !empty($wp_smiliessearch) && !empty($wp_smiliesreplace)) {1266 if ( get_option('use_smilies') && !empty($wp_smiliessearch) ) { 1237 1267 // HTML loop taken from texturize function, could possible be consolidated 1238 1268 $textarr = preg_split("/(<.*>)/U", $text, -1, PREG_SPLIT_DELIM_CAPTURE); // capture the tags as well as in between … … 1241 1271 $content = $textarr[$i]; 1242 1272 if ((strlen($content) > 0) && ('<' != $content{0})) { // If it's not a tag 1243 $content = preg_replace ($wp_smiliessearch, $wp_smiliesreplace, $content);1273 $content = preg_replace_callback($wp_smiliessearch, 'translate_smiley', $content); 1244 1274 } 1245 1275 $output .= $content; -
trunk/wp-includes/functions.php
r10287 r10322 2367 2367 } 2368 2368 2369 2369 2370 /** 2370 2371 * Convert smiley code to the icon graphic file equivalent. … … 2377 2378 * image file. 2378 2379 * 2379 * The $wp_smiliessearch global is for the regular expression array and is 2380 * set each time the function is called. The $wp_smiliesreplace is the full 2381 * replacement. Supposely, the $wp_smiliessearch array is looped over using 2382 * preg_replace() or just setting the array of $wp_smiliessearch along with the 2383 * array of $wp_smiliesreplace in the search and replace parameters of 2384 * preg_replace(), which would be faster and less overhead. Either way, both are 2385 * used with preg_replace() and can be defined after the function is called. 2380 * The $wp_smiliessearch global is for the regular expression and is set each 2381 * time the function is called. 2386 2382 * 2387 2383 * The full list of smilies can be found in the function and won't be listed in … … 2390 2386 * 2391 2387 * @global array $wpsmiliestrans 2392 * @global array $wp_smiliesreplace2393 2388 * @global array $wp_smiliessearch 2394 2389 * @since 2.2.0 2395 2390 */ 2396 2391 function smilies_init() { 2397 global $wpsmiliestrans, $wp_smiliessearch , $wp_smiliesreplace;2392 global $wpsmiliestrans, $wp_smiliessearch; 2398 2393 2399 2394 // don't bother setting up smilies if they are disabled … … 2450 2445 } 2451 2446 2452 $siteurl = get_option( 'siteurl' ); 2447 if (count($wpsmiliestrans) == 0) { 2448 return; 2449 } 2450 2451 /* 2452 * NOTE: we sort the smilies in reverse key order. This is to make sure 2453 * we match the longest possible smilie (:???: vs :?) as the regular 2454 * expression used below is first-match 2455 */ 2456 krsort($wpsmiliestrans); 2457 2458 $wp_smiliessearch = '/(?:\s|^)'; 2459 2460 $subchar = ''; 2453 2461 foreach ( (array) $wpsmiliestrans as $smiley => $img ) { 2454 $wp_smiliessearch[] = '/(\s|^)' . preg_quote( $smiley, '/' ) . '(\s|$)/'; 2455 $smiley_masked = attribute_escape( trim( $smiley ) ); 2456 $wp_smiliesreplace[] = " <img src='$siteurl/wp-includes/images/smilies/$img' alt='$smiley_masked' class='wp-smiley' /> "; 2457 } 2462 $firstchar = substr($smiley, 0, 1); 2463 $rest = substr($smiley, 1); 2464 2465 // new subpattern? 2466 if ($firstchar != $subchar) { 2467 if ($subchar != '') { 2468 $wp_smiliessearch .= ')|'; 2469 } 2470 $subchar = $firstchar; 2471 $wp_smiliessearch .= preg_quote($firstchar, '/') . '(?:'; 2472 } else { 2473 $wp_smiliessearch .= '|'; 2474 } 2475 $wp_smiliessearch .= preg_quote($rest); 2476 } 2477 2478 $wp_smiliessearch .= ')(?:\s|$)/'; 2458 2479 } 2459 2480
Note: See TracChangeset
for help on using the changeset viewer.