mirror of
https://github.com/WordPress/WordPress.git
synced 2024-09-11 23:28:18 +02:00
git-svn-id: http://svn.automattic.com/wordpress/trunk@15 1a063a9b-81f0-0310-95a4-ce76da25c4cd
275 lines
15 KiB
PHP
275 lines
15 KiB
PHP
<?php
|
||
|
||
/* This file sets various arrays and variables for use in b2 */
|
||
|
||
#b2 version
|
||
$b2_version = '0.6.1';
|
||
|
||
#BBcode search and replace arrays
|
||
$b2_bbcode['in'] = array(
|
||
'#\[b](.+?)\[/b]#is', // Formatting tags
|
||
'#\[i](.+?)\[/i]#is',
|
||
'#\[u](.+?)\[/u]#is',
|
||
'#\[s](.+?)\[/s]#is',
|
||
'#\[color=(.+?)](.+?)\[/color]#is',
|
||
'#\[size=(.+?)](.+?)\[/size]#is',
|
||
'#\[font=(.+?)](.+?)\[/font]#is',
|
||
'#\[img](.+?)\[/img]#is', // Image
|
||
'#\[url](.+?)\[/url]#is', // URL
|
||
'#\[url=(.+?)](.+?)\[/url]#is',
|
||
# '#\[email](.+?)\[/email]#eis', // E-mail
|
||
# '#\[email=(.+?)](.+?)\[/email]#eis'
|
||
);
|
||
$b2_bbcode['out'] = array(
|
||
'<strong>$1</strong>', // Formatting tags
|
||
'<em>$1</em>',
|
||
'<span style="text-decoration:underline">$1</span>',
|
||
'<span style="text-decoration:line-through">$1</span>',
|
||
'<span style="color:$1">$2</span>',
|
||
'<span style="font-size:$1px">$2</span>',
|
||
'<span style="font-family:$1">$2</span>',
|
||
'<img src="$1" alt="" />', // Image
|
||
'<a href="$1">$1</a>', // URL
|
||
'<a href="$1" title="$2">$2</a>',
|
||
# "'<a href=\"mailto:'.antispambot('\\1').'\">'.antispambot('\\1').'</a>'", // E-mail
|
||
# '<a href="mailto:$1">$2</a>'
|
||
);
|
||
|
||
#GreyMatter formatting search and replace arrays
|
||
$b2_gmcode['in'] = array(
|
||
'#\\*\*(.+?)\\*\*#is', // **bold**
|
||
'#\\\\(.+?)\\\\#is', // \\italic\\
|
||
'#\__(.+?)\__#is' // __underline__
|
||
);
|
||
$b2_gmcode['out'] = array(
|
||
'<strong>$1</strong>',
|
||
'<em>$1</em>',
|
||
'<span style="text-decoration:underline">$1</span>'
|
||
);
|
||
|
||
#Translation of HTML entities and special characters
|
||
$b2_htmltrans = array_flip(get_html_translation_table(HTML_ENTITIES));
|
||
$b2_htmltrans['<'] = '<'; # preserve HTML
|
||
$b2_htmltrans['>'] = '>'; # preserve HTML
|
||
$b2_htmltransbis = array(
|
||
'–' => '–', '—' => '—', '‘' => '‘', '’' => '’',
|
||
'“' => '“', '”' => '”', '•' => '•', '€' => '€',
|
||
'<' => '<', # preserve fake HTML
|
||
'>' => '>', # preserve fake HTML
|
||
'&sp;' => ' ', '!' => '!', '"' => '"', '#' => '#', '$' => '$', '%' => '%', '&' => '&', ''' => ''', '(' => '(', ')' => ')',
|
||
'*' => '*', '+' => '+', ',' => ',', '‐' => '-', '−' => '-', '.' => '.', '/' => '/', ':' => ':', ';' => ';', '<' => '<',
|
||
'=' => '=', '>' => '>', '?' => '?', '@' => '@', '[' => '[', '\' => '\', ']' => ']', 'ˆ' => '^', '_' => '_', '―' => '_',
|
||
'`' => '`', '{' => '{', '|' => '|', '}' => '}', '˜' => '~', '‚' => '‚', '„' => '„',
|
||
'&ldots;' => '…', 'Š' => 'Š', '‹' => '‹', 'Œ' => 'Œ', '‘' => '‘', '’' => '‘', '’' => '’',
|
||
'“' => '“', '”' => '“', '”' => '”', '•' => '•', '–' => '–', '&endash;' => '–', '—' => '—', '&emdash;' => '—', '˜' => '˜', '™' => '™',
|
||
'š' => 'š', '›' => '›', 'œ' => 'œ', 'Ÿ' => 'Ÿ', ' ' => ' ', '¡' => '¡', '¢' => '¢', '£' => '£', '¤' => '¤', '¥' => '¥',
|
||
'¦' => '¦', '&brkbar;' => '¦', '§' => '§', '¨' => '¨', '¨' => '¨', '©' => '©', 'ª' => 'ª', '«' => '«', '¬' => '¬', '­' => '­',
|
||
'®' => '®', '¯' => '¯', '&hibar;' => '¯', '°' => '°', '±' => '±', '²' => '²', '³' => '³', '´' => '´', 'µ' => 'µ', '¶' => '¶',
|
||
'·' => '·', '¸' => '¸', '¹' => '¹', 'º' => 'º', '»' => '»', '¼' => '¼', '½' => '½', '½' => '½', '¾' => '¾', '¿' => '¿',
|
||
'À' => 'À', 'Á' => 'Á', 'Â' => 'Â', 'Ã' => 'Ã', 'Ä' => 'Ä', 'Å' => 'Å', 'Æ' => 'Æ', 'Ç' => 'Ç', 'È' => 'È', 'É' => 'É',
|
||
'Ê' => 'Ê', 'Ë' => 'Ë', 'Ì' => 'Ì', 'Í' => 'Í', 'Î' => 'Î', 'Ï' => 'Ï', 'Ð' => 'Ð', 'Ñ' => 'Ñ', 'Ò' => 'Ò', 'Ó' => 'Ó',
|
||
'Ô' => 'Ô', 'Õ' => 'Õ', 'Ö' => 'Ö', '×' => '×', 'Ø' => 'Ø', 'Ù' => 'Ù', 'Ú' => 'Ú', 'Û' => 'Û', 'Ü' => 'Ü', 'Ý' => 'Ý',
|
||
'Þ' => 'Þ', 'ß' => 'ß', 'à' => 'à', 'á' => 'á', 'â' => 'â', 'ã' => 'ã', 'ä' => 'ä', 'å' => 'å', 'æ' => 'æ', 'ç' => 'ç',
|
||
'è' => 'è', 'é' => 'é', 'ê' => 'ê', 'ë' => 'ë', 'ì' => 'ì', 'í' => 'í', 'î' => 'î', 'ï' => 'ï', 'ð' => 'ð', 'ñ' => 'ñ',
|
||
'ò' => 'ò', 'ó' => 'ó', 'ô' => 'ô', 'õ' => 'õ', 'ö' => 'ö', '÷' => '÷', 'ø' => 'ø', 'ù' => 'ù', 'ú' => 'ú', 'û' => 'û',
|
||
'ü' => 'ü', 'ý' => 'ý', 'þ' => 'þ', 'ÿ' => 'ÿ', 'Œ' => 'Œ', 'œ' => 'œ', 'Š' => 'Š', 'š' => 'š', 'Ÿ' => 'Ÿ', 'ƒ' => 'ƒ',
|
||
'ˆ' => 'ˆ', '˜' => '˜', 'Α' => 'Α', 'Β' => 'Β', 'Γ' => 'Γ', 'Δ' => 'Δ', 'Ε' => 'Ε', 'Ζ' => 'Ζ', 'Η' => 'Η', 'Θ' => 'Θ',
|
||
'Ι' => 'Ι', 'Κ' => 'Κ', 'Λ' => 'Λ', 'Μ' => 'Μ', 'Ν' => 'Ν', 'Ξ' => 'Ξ', 'Ο' => 'Ο', 'Π' => 'Π', 'Ρ' => 'Ρ', 'Σ' => 'Σ',
|
||
'Τ' => 'Τ', 'Υ' => 'Υ', 'Φ' => 'Φ', 'Χ' => 'Χ', 'Ψ' => 'Ψ', 'Ω' => 'Ω', 'α' => 'α', 'β' => 'β', 'γ' => 'γ', 'δ' => 'δ',
|
||
'ε' => 'ε', 'ζ' => 'ζ', 'η' => 'η', 'θ' => 'θ', 'ι' => 'ι', 'κ' => 'κ', 'λ' => 'λ', 'μ' => 'μ', 'ν' => 'ν', 'ξ' => 'ξ',
|
||
'ο' => 'ο', 'π' => 'π', 'ρ' => 'ρ', 'ς' => 'ς', 'σ' => 'σ', 'τ' => 'τ', 'υ' => 'υ', 'φ' => 'φ', 'χ' => 'χ', 'ψ' => 'ψ',
|
||
'ω' => 'ω', 'ϑ' => 'ϑ', 'ϒ' => 'ϒ', 'ϖ' => 'ϖ', ' ' => ' ', ' ' => ' ', ' ' => ' ', '‌' => '‌', '‍' => '‍', '‎' => '‎',
|
||
'‏' => '‏', '–' => '–', '—' => '—', '‘' => '‘', '’' => '’', '‚' => '‚', '“' => '“', '”' => '”', '„' => '„', '†' => '†',
|
||
'‡' => '‡', '•' => '•', '…' => '…', '‰' => '‰', '′' => '′', '″' => '″', '‹' => '‹', '›' => '›', '‾' => '‾', '⁄' => '⁄',
|
||
'€' => '€', 'ℑ' => 'ℑ', '℘' => '℘', 'ℜ' => 'ℜ', '™' => '™', 'ℵ' => 'ℵ', '←' => '←', '↑' => '↑', '→' => '→', '↓' => '↓',
|
||
'↔' => '↔', '↵' => '↵', '⇐' => '⇐', '⇑' => '⇑', '⇒' => '⇒', '⇓' => '⇓', '⇔' => '⇔', '∀' => '∀', '∂' => '∂', '∃' => '∃',
|
||
'∅' => '∅', '∇' => '∇', '∈' => '∈', '∉' => '∉', '∋' => '∋', '∏' => '∏', '∑' => '∑', '−' => '−', '∗' => '∗', '√' => '√',
|
||
'∝' => '∝', '∞' => '∞', '∠' => '∠', '∧' => '∧', '∨' => '∨', '∩' => '∩', '∪' => '∪', '∫' => '∫', '∴' => '∴', '∼' => '∼',
|
||
'≅' => '≅', '≈' => '≈', '≠' => '≠', '≡' => '≡', '≤' => '≤', '≥' => '≥', '⊂' => '⊂', '⊃' => '⊃', '⊄' => '⊄', '⊆' => '⊆',
|
||
'⊇' => '⊇', '⊕' => '⊕', '⊗' => '⊗', '⊥' => '⊥', '⋅' => '⋅', '⌈' => '⌈', '⌉' => '⌉', '⌊' => '⌊', '⌋' => '⌋', '⟨' => '〈',
|
||
'⟩' => '〉', '◊' => '◊', '♠' => '♠', '♣' => '♣', '♥' => '♥', '♦' => '♦'
|
||
);
|
||
$b2_htmltrans = array_merge($b2_htmltrans,$b2_htmltransbis);
|
||
|
||
#Translation of invalid Unicode references range to valid range
|
||
$b2_htmltranswinuni = array(
|
||
'€' => '€', // the Euro sign
|
||
'' => '',
|
||
'‚' => '‚', // these are Windows CP1252 specific characters
|
||
'ƒ' => 'ƒ', // they would look weird on non-Windows browsers
|
||
'„' => '„',
|
||
'…' => '…',
|
||
'†' => '†',
|
||
'‡' => '‡',
|
||
'ˆ' => 'ˆ',
|
||
'‰' => '‰',
|
||
'Š' => 'Š',
|
||
'‹' => '‹',
|
||
'Œ' => 'Œ',
|
||
'' => '',
|
||
'Ž' => 'ž',
|
||
'' => '',
|
||
'' => '',
|
||
'‘' => '‘',
|
||
'’' => '’',
|
||
'“' => '“',
|
||
'”' => '”',
|
||
'•' => '•',
|
||
'–' => '–',
|
||
'—' => '—',
|
||
'˜' => '˜',
|
||
'™' => '™',
|
||
'š' => 'š',
|
||
'›' => '›',
|
||
'œ' => 'œ',
|
||
'' => '',
|
||
'ž' => '',
|
||
'Ÿ' => 'Ÿ'
|
||
);
|
||
|
||
# these are used for b2's interface design
|
||
$tabletop = "\t<table cellspacing=\"0\" cellpadding=\"1\" width=\"85%\" border=\"0\" bgcolor=\"#cccccc\" align=\"center\">\n\t<td align=\"left\">\n\t\t<table cellspacing=\"0\" cellpadding=\"15\" width=\"100%\" border=\"0\"bgcolor=\"#ffffff\" align=\"center\">\n\t\t<td align=\"left\">\n";
|
||
$tablebottom = "\t\t</td>\n\t</table>\n\t</td>\n\t</table>\n";
|
||
$blankline = '<img src="b2-img/blank.gif" width="10" height="5" border="0" /><br />';
|
||
|
||
# on which page are we ?
|
||
$PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'];
|
||
$pagenow = explode('/', $PHP_SELF);
|
||
$pagenow = trim($pagenow[(sizeof($pagenow)-1)]);
|
||
$pagenow = explode('?', $pagenow);
|
||
$pagenow = $pagenow[0];
|
||
if (($querystring_start == '/') && ($pagenow != 'b2edit.php')) {
|
||
$pagenow = $siteurl.'/'.$blogfilename;
|
||
}
|
||
|
||
# browser detection
|
||
$is_lynx = 0; $is_gecko = 0; $is_winIE = 0; $is_macIE = 0; $is_opera = 0; $is_NS4 = 0;
|
||
if (!isset($HTTP_USER_AGENT)) {
|
||
$HTTP_USER_AGENT = $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
|
||
}
|
||
if (preg_match('/Lynx/', $HTTP_USER_AGENT)) {
|
||
$is_lynx = 1;
|
||
} elseif (preg_match('/Gecko/', $HTTP_USER_AGENT)) {
|
||
$is_gecko = 1;
|
||
} elseif ((preg_match('/MSIE/', $HTTP_USER_AGENT)) && (preg_match('/Win/', $HTTP_USER_AGENT))) {
|
||
$is_winIE = 1;
|
||
} elseif ((preg_match('/MSIE/', $HTTP_USER_AGENT)) && (preg_match('/Mac/', $HTTP_USER_AGENT))) {
|
||
$is_macIE = 1;
|
||
} elseif (preg_match('/Opera/', $HTTP_USER_AGENT)) {
|
||
$is_opera = 1;
|
||
} elseif ((preg_match('/Nav/', $HTTP_USER_AGENT) ) || (preg_match('/Mozilla\/4\./', $HTTP_USER_AGENT))) {
|
||
$is_NS4 = 1;
|
||
}
|
||
$is_IE = (($is_macIE) || ($is_winIE));
|
||
|
||
# browser-specific javascript corrections
|
||
$b2_macIE_correction['in'] = array(
|
||
'/\%uFFD4/', '/\%uFFD5/', '/\%uFFD2/', '/\%uFFD3/',
|
||
'/\%uFFA5/', '/\%uFFD0/', '/\%uFFD1/', '/\%uFFBD/',
|
||
'/\%uFF83%uFFC0/', '/\%uFF83%uFFC1/', '/\%uFF83%uFFC6/', '/\%uFF83%uFFC9/',
|
||
'/\%uFFB9/', '/\%uFF81%uFF8C/', '/\%uFF81%uFF8D/', '/\%uFF81%uFFDA/',
|
||
'/\%uFFDB/'
|
||
);
|
||
$b2_macIE_correction['out'] = array(
|
||
'‘', '’', '“', '”',
|
||
'•', '–', '—', 'Ω',
|
||
'β', 'γ', 'θ', 'λ',
|
||
'π', '′', '″', '∠',
|
||
'€'
|
||
);
|
||
$b2_gecko_correction['in'] = array(
|
||
'/\‘/', '/\’/', '/\“/', '/\â€<C3A2>/',
|
||
'/\•/', '/\–/', '/\—/', '/\Ω/',
|
||
'/\β/', '/\γ/', '/\θ/', '/\λ/',
|
||
'/\Ï€/', '/\′/', '/\″/', '/\âˆ/',
|
||
'/\€/', '/\ /'
|
||
);
|
||
$b2_gecko_correction['out'] = array(
|
||
'&8216;', '’', '“', '”',
|
||
'•', '–', '—', 'Ω',
|
||
'β', 'γ', 'θ', 'λ',
|
||
'π', '′', '″', '∠',
|
||
'€', ' '
|
||
);
|
||
|
||
# server detection
|
||
$is_Apache = strstr($HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'Apache') ? 1 : 0;
|
||
$is_IIS = strstr($HTTP_SERVER_VARS['SERVER_SOFTWARE'], 'Microsoft-IIS') ? 1 : 0;
|
||
|
||
# if the config file does not provide the smilies array, let's define it here
|
||
if (!isset($b2smiliestrans)) {
|
||
$b2smiliestrans = array(
|
||
':)' => 'icon_smile.gif',
|
||
':D' => 'icon_biggrin.gif',
|
||
':-D' => 'icon_biggrin.gif',
|
||
':grin:' => 'icon_biggrin.gif',
|
||
':)' => 'icon_smile.gif',
|
||
':-)' => 'icon_smile.gif',
|
||
':smile:' => 'icon_smile.gif',
|
||
':(' => 'icon_sad.gif',
|
||
':-(' => 'icon_sad.gif',
|
||
':sad:' => 'icon_sad.gif',
|
||
':o' => 'icon_surprised.gif',
|
||
':-o' => 'icon_surprised.gif',
|
||
':eek:' => 'icon_surprised.gif',
|
||
'8O' => 'icon_eek.gif',
|
||
'8-O' => 'icon_eek.gif',
|
||
':shock:' => 'icon_eek.gif',
|
||
':?' => 'icon_confused.gif',
|
||
':-?' => 'icon_confused.gif',
|
||
':???:' => 'icon_confused.gif',
|
||
'8)' => 'icon_cool.gif',
|
||
'8-)' => 'icon_cool.gif',
|
||
':cool:' => 'icon_cool.gif',
|
||
':lol:' => 'icon_lol.gif',
|
||
':x' => 'icon_mad.gif',
|
||
':-x' => 'icon_mad.gif',
|
||
':mad:' => 'icon_mad.gif',
|
||
':P' => 'icon_razz.gif',
|
||
':-P' => 'icon_razz.gif',
|
||
':razz:' => 'icon_razz.gif',
|
||
':oops:' => 'icon_redface.gif',
|
||
':cry:' => 'icon_cry.gif',
|
||
':evil:' => 'icon_evil.gif',
|
||
':twisted:' => 'icon_twisted.gif',
|
||
':roll:' => 'icon_rolleyes.gif',
|
||
':wink:' => 'icon_wink.gif',
|
||
';)' => 'icon_wink.gif',
|
||
';-)' => 'icon_wink.gif',
|
||
':!:' => 'icon_exclaim.gif',
|
||
':?:' => 'icon_question.gif',
|
||
':idea:' => 'icon_idea.gif',
|
||
':arrow:' => 'icon_arrow.gif',
|
||
':|' => 'icon_neutral.gif',
|
||
':-|' => 'icon_neutral.gif',
|
||
':neutral:' => 'icon_neutral.gif',
|
||
':mrgreen:' => 'icon_mrgreen.gif',
|
||
);
|
||
}
|
||
|
||
# sorts the smilies' array
|
||
if (!function_exists('smiliescmp')) {
|
||
function smiliescmp ($a, $b) {
|
||
if (strlen($a) == strlen($b)) {
|
||
return strcmp($a, $b);
|
||
}
|
||
return (strlen($a) > strlen($b)) ? -1 : 1;
|
||
}
|
||
}
|
||
uksort($b2smiliestrans, 'smiliescmp');
|
||
|
||
# generates smilies' search & replace arrays
|
||
foreach($b2smiliestrans as $smiley => $img) {
|
||
$b2_smiliessearch[] = $smiley;
|
||
$smiley_masked = '';
|
||
for ($i = 0; $i < strlen($smiley); $i = $i + 1) {
|
||
$smiley_masked .= substr($smiley, $i, 1).chr(160);
|
||
}
|
||
$b2_smiliesreplace[] = "<img src='$smilies_directory/$img' alt='$smiley_masked' />";
|
||
}
|
||
|
||
add_filter('all', 'wptexturize');
|
||
add_filter('the_content', 'wpautop');
|
||
add_filter('comment_text', 'wpautop');
|
||
|
||
?>
|