SyntaxHighlighter ver. 3.0.83 and ver. 2.1.382. Supported languages: Bash, C++, CSS, Delphi, Java, JavaScript, Perl, PHP, Python, Ruby, SQL, VB, XML, XHTML and HTML etc.
Version: 1.3.6
Author: redcocker
Author URI: http://www.near-mint.com/blog/
Text Domain: wp_sh
Domain Path: /locale/
*/
/*
Date of release: Ver. 1.3.6 2011/6/18
Includes: SyntaxHighlighter ver. 3.0.83 and ver. 2.1.382 licensed under the MIT and LGPL v3. My modified 'SyntaxHighlighter TinyMCE Button' licensed under the GPL v2.
License: GPL v2(Except 'SyntaxHighlighter' libraries)
*/
/* Copyright 2011 M. Sumitomo
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
load_plugin_textdomain('wp_sh', false, 'wp-syntaxhighlighter/locale');
$wp_sh_ver = "1.3.6";
$wp_sh_db_ver = "1.3";
$plugin_url = get_option('siteurl').'/wp-content/plugins/'.basename(dirname(__FILE__)).'/';
$version = get_option('wp_sh_version');
if ($version == "3.0") {
$lib_dir = 'syntaxhighlighter3';
} elseif ($version == "2.1") {
$lib_dir = 'syntaxhighlighter2';
}
//Define the associative arrays
function wp_sh_array_setting(){
global $wp_sh_db_ver;
//Languages for ver. 3.0 assign to the associative array
$wp_sh_pre_language3 = get_option('wp_sh_language3');
if (is_array($wp_sh_pre_language3)) {
$wp_sh_language3 = $wp_sh_pre_language3;
}
$wp_sh_language3 = get_option('wp_sh_language3');
$wp_sh_language3['applescript'] = array('AppleScript', 'true');
$wp_sh_language3['actionscript3'] = array('Actionscript3', 'true');
$wp_sh_language3['bash'] = array('Bash shell', 'true');
$wp_sh_language3['coldfusion'] = array('ColdFusion', 'true');
$wp_sh_language3['c'] = array('C', 'true');
$wp_sh_language3['cpp'] = array('C++', 'true');
$wp_sh_language3['csharp'] = array('C#', 'true');
$wp_sh_language3['css'] = array('CSS', 'true');
$wp_sh_language3['delphi'] = array('Delphi', 'true');
$wp_sh_language3['diff'] = array('Diff', 'true');
$wp_sh_language3['erlang'] = array('Erlang', 'true');
$wp_sh_language3['groovy'] = array('Groovy', 'true');
$wp_sh_language3['html'] = array('HTML', 'true');
$wp_sh_language3['java'] = array('Java', 'true');
$wp_sh_language3['javafx'] = array('JavaFX', 'true');
$wp_sh_language3['javascript'] = array('JavaScript', 'true');
$wp_sh_language3['pascal'] = array('Pascal', 'true');
$wp_sh_language3['patch'] = array('Patch', 'true');
$wp_sh_language3['perl'] = array('Perl', 'true');
$wp_sh_language3['php'] = array('PHP', 'true');
$wp_sh_language3['text'] = array('Plain Text', 'true');
$wp_sh_language3['powershell'] = array('PowerShell', 'true');
$wp_sh_language3['python'] = array('Python', 'true');
$wp_sh_language3['ruby'] = array('Ruby', 'true');
$wp_sh_language3['rails'] = array('Ruby on Rails', 'true');
$wp_sh_language3['sass'] = array('Sass', 'true');
$wp_sh_language3['scala'] = array('Scala', 'true');
$wp_sh_language3['scss'] = array('Scss', 'true');
$wp_sh_language3['shell'] = array('Shell', 'true');
$wp_sh_language3['sql'] = array('SQL', 'true');
$wp_sh_language3['vb'] = array('Visual Basic', 'true');
$wp_sh_language3['vbnet'] = array('Visual Basic .NET', 'true');
$wp_sh_language3['xhtml'] = array('XHTML', 'true');
$wp_sh_language3['xml'] = array('XML', 'true');
$wp_sh_language3['xslt'] = array('XSLT', 'true');
//Languages for ver. 2.1 assign to the associative array
$wp_sh_pre_language2 = get_option('wp_sh_language2');
if (is_array($wp_sh_pre_language2)) {
$wp_sh_language2 = $wp_sh_pre_language2;
}
$wp_sh_language2['actionscript3'] = array('Actionscript3', 'true');
$wp_sh_language2['bash'] = array('Bash shell', 'true');
$wp_sh_language2['coldfusion'] = array('ColdFusion', 'true');
$wp_sh_language2['c'] = array('C', 'true');
$wp_sh_language2['cpp'] = array('C++', 'true');
$wp_sh_language2['csharp'] = array('C#', 'true');
$wp_sh_language2['css'] = array('CSS', 'true');
$wp_sh_language2['delphi'] = array('Delphi', 'true');
$wp_sh_language2['diff'] = array('Diff', 'true');
$wp_sh_language2['erlang'] = array('Erlang', 'true');
$wp_sh_language2['groovy'] = array('Groovy', 'true');
$wp_sh_language2['html'] = array('HTML', 'true');
$wp_sh_language2['java'] = array('Java', 'true');
$wp_sh_language2['javafx'] = array('JavaFX', 'true');
$wp_sh_language2['javascript'] = array('JavaScript', 'true');
$wp_sh_language2['pascal'] = array('Pascal', 'true');
$wp_sh_language2['patch'] = array('Patch', 'true');
$wp_sh_language2['perl'] = array('Perl', 'true');
$wp_sh_language2['php'] = array('PHP', 'true');
$wp_sh_language2['text'] = array('Plain Text', 'true');
$wp_sh_language2['powershell'] = array('PowerShell', 'true');
$wp_sh_language2['python'] = array('Python', 'true');
$wp_sh_language2['ruby'] = array('Ruby', 'true');
$wp_sh_language2['rails'] = array('Ruby on Rails', 'true');
$wp_sh_language2['scala'] = array('Scala', 'true');
$wp_sh_language2['shell'] = array('Shell', 'true');
$wp_sh_language2['sql'] = array('SQL', 'true');
$wp_sh_language2['vb'] = array('Visual Basic', 'true');
$wp_sh_language2['vbnet'] = array('Visual Basic .NET', 'true');
$wp_sh_language2['xhtml'] = array('XHTML', 'true');
$wp_sh_language2['xml'] = array('XML', 'true');
$wp_sh_language2['xslt'] = array('XSLT', 'true');
//Brush files for ver. 2.1 assign to the associative array
$wp_sh_brush_files['AppleScript'] = array('shBrushAppleScript.js', 'applescript', '3.0', 'true');
$wp_sh_brush_files['ActionScript3'] = array('shBrushAS3.js', 'as3 actionscript3', '2.1', 'true');
$wp_sh_brush_files['Bash'] = array('shBrushBash.js', 'bash shell', '2.1', 'true');
$wp_sh_brush_files['ColdFusion'] = array('shBrushColdFusion.js', 'cf coldfusion', '2.1', 'true');
$wp_sh_brush_files['C++'] = array('shBrushCpp.js', 'cpp c', '1.5', 'true');
$wp_sh_brush_files['C#'] = array('shBrushCSharp.js', 'c# c-sharp csharp', '1.5', 'true');
$wp_sh_brush_files['CSS'] = array('shBrushCss.js', 'css', '1.5', 'true');
$wp_sh_brush_files['Delphi'] = array('shBrushDelphi.js', 'delphi pas pascal', '1.5', 'true');
$wp_sh_brush_files['Diff'] = array('shBrushDiff.js', 'diff patch', '2.1', 'true');
$wp_sh_brush_files['Erlang'] = array('shBrushErlang.js', 'erl erlang', '2.1', 'true');
$wp_sh_brush_files['Groovy'] = array('shBrushGroovy.js', 'groovy', '2.1', 'true');
$wp_sh_brush_files['Java'] = array('shBrushJava.js', 'java', '1.5', 'true');
$wp_sh_brush_files['JavaFX'] = array('shBrushJavaFX.js', 'jfx javafx', '2.1', 'true');
$wp_sh_brush_files['JavaScript'] = array('shBrushJScript.js', 'js jscript javascript', '1.5', 'true');
$wp_sh_brush_files['Perl'] = array('shBrushPerl.js', 'perl pl', '2.1', 'true');
$wp_sh_brush_files['PHP'] = array('shBrushPhp.js', 'php', '1.5', 'true');
$wp_sh_brush_files['PlainText'] = array('shBrushPlain.js', 'plain text', '2.1', 'true');
$wp_sh_brush_files['PowerShell'] = array('shBrushPowerShell.js', 'ps powershell', '2.1', 'true');
$wp_sh_brush_files['Python'] = array('shBrushPython.js', 'py python', '1.5', 'true');
$wp_sh_brush_files['Ruby'] = array('shBrushRuby.js', 'rails ror ruby rb', '1.5', 'true');
$wp_sh_brush_files['Sass'] = array('shBrushSass.js', 'sass scss', '3.0', 'true');
$wp_sh_brush_files['Scala'] = array('shBrushScala.js', 'scala', '2.1', 'true');
$wp_sh_brush_files['SQL'] = array('shBrushSql.js', 'sql', '1.5', 'true');
$wp_sh_brush_files['VisualBasic'] = array('shBrushVb.js', 'vb vbnet', '1.5', 'true');
$wp_sh_brush_files['XML'] = array('shBrushXml.js', 'xml xhtml xslt html', '1.5', 'true');
update_option('wp_sh_language3', $wp_sh_language3);
update_option('wp_sh_language2', $wp_sh_language2);
update_option('wp_sh_brush_files', $wp_sh_brush_files);
update_option('wp_sh_checkver_stamp', $wp_sh_db_ver);
}
//Check DB table version and create table
add_action('plugins_loaded', 'wp_sh_check_db_ver');
function wp_sh_check_db_ver(){
global $wp_sh_db_ver;
if ($wp_sh_db_ver != get_option('wp_sh_checkver_stamp')) {
wp_sh_array_setting();
}
}
//Footer on setting menu
function wp_sh_add_admin_footer(){ //show plugin info in the footer
$plugin_data = get_plugin_data(__FILE__);
printf('%1$s by %2$s
', $plugin_data['Title'].' '.$plugin_data['Version'], $plugin_data['Author']);
}
//Add setting menu and variable values
add_action('admin_menu', 'wp_sh_register_menu_item');
function wp_sh_register_menu_item() {
$addl_style = '.syntaxhighlighter,
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
font-size: 12px !important; /* set the font size in pixels */
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; /* set the font type */
}
.syntaxhighlighter.nogutter td.code .line {
padding-left: 3px !important; /* set the left padding space when no-gutter */
}';
register_setting( 'wp_sh_settings_group', 'wp_sh_version');
register_setting( 'wp_sh_settings_group', 'wp_sh_theme');
register_setting( 'wp_sh_settings_group', 'wp_sh_auto_links');
register_setting( 'wp_sh_settings_group', 'wp_sh_class_name');
register_setting( 'wp_sh_settings_group', 'wp_sh_addl_style_enable');
register_setting( 'wp_sh_settings_group', 'wp_sh_addl_style');
register_setting( 'wp_sh_settings_group', 'wp_sh_collapse');
register_setting( 'wp_sh_settings_group', 'wp_sh_gutter');
register_setting( 'wp_sh_settings_group', 'wp_sh_first_line');
register_setting( 'wp_sh_settings_group', 'wp_sh_smart_tabs');
register_setting( 'wp_sh_settings_group', 'wp_sh_tab_size');
register_setting( 'wp_sh_settings_group', 'wp_sh_toolbar');
register_setting( 'wp_sh_settings_group', 'wp_sh_wrap');
register_setting( 'wp_sh_settings_group', 'wp_sh_legacy');
register_setting( 'wp_sh_settings_group', 'wp_sh_css');
register_setting( 'wp_sh_settings_group', 'wp_sh_insert');
register_setting( 'wp_sh_settings_group', 'wp_sh_codebox');
register_setting( 'wp_sh_settings_group', 'wp_sh_button_row');
add_option('wp_sh_version', '3.0');
add_option('wp_sh_theme', 'Default');
add_option('wp_sh_auto_links', 1);
add_option('wp_sh_class_name', '');
add_option('wp_sh_addl_style_enable', 0);
add_option('wp_sh_addl_style', $addl_style);
add_option('wp_sh_collapse', 0);
add_option('wp_sh_gutter', 1);
add_option('wp_sh_first_line', '1');
add_option('wp_sh_smart_tabs', 1);
add_option('wp_sh_tab_size', '4');
add_option('wp_sh_toolbar', 1);
add_option('wp_sh_wrap', 0);
add_option('wp_sh_legacy', 0);
add_option('wp_sh_css', 0);
add_option('wp_sh_insert', 1);
add_option('wp_sh_codebox', 1);
add_option('wp_sh_button_row', '1');
add_options_page('WP SyntaxHighlighter Options', 'WP SyntaxHighlighter', 'manage_options', 'wp-syntaxhighlighter-options', 'wp_sh_options_panel');
}
//Add link to setting menu
add_filter( 'plugin_action_links', 'wp_sh_setting_link', 10, 2 );
function wp_sh_setting_link( $links, $file ){
static $this_plugin;
if ( ! $this_plugin ) $this_plugin = plugin_basename(__FILE__);
if ( $file == $this_plugin ){
$settings_link = ''.__('Settings', 'wp_sh').'';
array_unshift( $links, $settings_link );
}
return $links;
}
//Load SyntaxHighlighter TinyMCE Button
if (get_option('wp_sh_insert') == 1) {
include_once('sh-tinymce-button-ins/sh-tinymce-button-ins.php');
}
if (get_option('wp_sh_codebox') == 1) {
include_once('sh-tinymce-button-box/sh-tinymce-button-box.php');
}
// Allow tab to indent in tinyMCE.
if (get_option('wp_sh_insert') == 1 || get_option('wp_sh_codebox') == 1) {
add_filter('tiny_mce_before_init', 'wp_sh_shtb_allow_tab');
}
function wp_sh_shtb_allow_tab($initArray) {
$initArray['plugins']=preg_replace("|[,]+tabfocus|i","",$initArray['plugins']);
return $initArray;
}
// Add tags and attribtes as TinyMCE valid_elements.
add_filter('tiny_mce_before_init', 'wp_sh_shtb_mce_valid_elements');
function wp_sh_shtb_mce_valid_elements($init) {
if ( isset( $init['extended_valid_elements'] )
&& ! empty( $init['extended_valid_elements'] ) ) {
$init['extended_valid_elements'] .= ',' . 'pre[name|class]';
$init['extended_valid_elements'] .= ',' . 'textarea[name|class|cols|rows]';
} else {
$init['extended_valid_elements'] = 'pre[name|class]';
$init['extended_valid_elements'] .= ',' . 'textarea[name|class|cols|rows]';
}
return $init;
}
//Load additional style sheet
if (get_option('wp_sh_addl_style_enable') == 1) {
add_action('wp_head', 'wp_sh_load_addl_style');
}
add_action('admin_head', 'wp_sh_load_addl_style');
function wp_sh_load_addl_style(){
global $wp_sh_ver;
if (is_home() || is_admin() || is_singular()) {
echo "\n\n";
echo "\n";
echo "\n";
}
}
//Load css on header
add_action('wp_print_styles', 'wp_sh_load_style');
add_action('admin_print_styles', 'wp_sh_load_style');
function wp_sh_load_style(){
global $plugin_url, $version, $lib_dir;
$theme = get_option('wp_sh_theme');
if (is_home() || is_admin() || is_singular()) {
if (get_option('wp_sh_css') == 1) {
wp_enqueue_style('pre_css', $plugin_url.'pre.css', false, '1.0');
}
wp_enqueue_style('core'.$version, $plugin_url.$lib_dir.'/styles/shCore.css', false, $version);
if ($theme == "Default") {
if ($version == "3.0") {
wp_enqueue_style('core-default'.$version, $plugin_url.$lib_dir.'styles/shCoreDefault.css', false, $version);
}
wp_enqueue_style('theme-default'.$version, $plugin_url.$lib_dir.'/styles/shThemeDefault.css', false, $version);
}
if ($theme == "Django") {
if ($version == "3.0") {
wp_enqueue_style('core-django'.$version, $plugin_url.$lib_dir.'/styles/shCoreDjango.css', false, $version);
}
wp_enqueue_style('theme-django'.$version, $plugin_url.$lib_dir.'/styles/shThemeDjango.css', false, $version);
}
if ($theme == "Eclipse") {
if ($version == "3.0") {
wp_enqueue_style('core-eclipse'.$version, $plugin_url.$lib_dir.'/styles/shCoreEclipse.css', false, $version);
}
wp_enqueue_style('theme-eclipse'.$version, $plugin_url.$lib_dir.'/styles/shThemeEclipse.css', false, $version);
}
if ($theme == "Emacs") {
if ($version == "3.0") {
wp_enqueue_style('core-emacs'.$version, $plugin_url.$lib_dir.'/styles/shCoreEmacs.css', false , $version);
}
wp_enqueue_style('theme-emacs'.$version, $plugin_url.$lib_dir.'/styles/shThemeEmacs.css', false, $version);
}
if ($theme == "FadeToGrey") {
if ($version == "3.0") {
wp_enqueue_style('core-fadetogrey'.$version, $plugin_url.$lib_dir.'/styles/shCoreFadeToGrey.css', false, $version);
}
wp_enqueue_style('theme-fadetogrey'.$version, $plugin_url.$lib_dir.'/styles/shThemeFadeToGrey.css', false, $version);
}
if ($theme == "MDUltra") {
if ($version == "3.0") {
wp_enqueue_style('core-mdultra'.$version, $plugin_url.$lib_dir.'/styles/shCoreMDUltra.css', false, $version);
wp_enqueue_style('theme-mdultra'.$version, $plugin_url.$lib_dir.'/styles/shThemeMDUltra.css', false, $version);
} elseif ($version == "2.1") {
update_option('wp_sh_theme', 'Default');
wp_enqueue_style('theme-default'.$version, $plugin_url.$lib_dir.'/styles/shThemeDefault.css', false, $version);
}
}
if ($theme == "Midnight") {
if ($version == "3.0") {
wp_enqueue_style('core-midnight'.$version, $plugin_url.$lib_dir.'/styles/shCoreMidnight.css', false, $version);
}
wp_enqueue_style('theme-midnight'.$version, $plugin_url.$lib_dir.'/styles/shThemeMidnight.css', false, $version);
}
if ($theme == "RDark") {
if ($version == "3.0") {
wp_enqueue_style('core-rdark'.$version, $plugin_url.$lib_dir.'/styles/shCoreRDark.css', false, $version);
}
wp_enqueue_style('theme-rdark'.$version, $plugin_url.$lib_dir.'/styles/shThemeRDark.css', false, $version);
}
}
}
//Load javascript in admin menu
add_action('admin_print_scripts', 'wp_sh_load_jscript_for_admin');
function wp_sh_load_jscript_for_admin(){
global $plugin_url;
wp_enqueue_script('rc_admin_js', $plugin_url.'rc-admin-js.js', false, '1.1');
}
//Load scripts on footer
add_action('wp_footer', 'wp_sh_load_scripts_on_footer');
add_action('admin_footer', 'wp_sh_load_scripts_on_footer');
function wp_sh_load_scripts_on_footer(){
global $wp_sh_ver, $plugin_url, $version, $lib_dir;
$post = get_the_content();
if ((preg_match("/
]*?brush:[^>]*?>/i", $post) && !is_archive()) || (preg_match("/\n";
if (get_option('wp_sh_legacy') == 0) {
echo '';
} elseif (get_option('wp_sh_legacy') == 1) {
echo "\n";
}
if ($version == "3.0" && get_option('wp_sh_legacy') == 0) {
echo "\n";
echo "\n";
} elseif ($version == "3.0" && get_option('wp_sh_legacy') == 1) {
echo "\n";
$wp_sh_brush_files = get_option('wp_sh_brush_files');
foreach($wp_sh_brush_files as $lang => $val){
$brush_file = $val[0];
$brush_ver = $val[2];
$brush_enable = $val[3];
if (($brush_ver == '3.0' || $brush_ver == '2.1' || $brush_ver == '1.5') && $brush_enable == 'true') {
echo "\n";
}
}
if (is_admin() && $wp_sh_brush_files[XML][3] == "false") {
echo "\n";
}
} elseif ($version == "2.1") {
$wp_sh_brush_files = get_option('wp_sh_brush_files');
foreach($wp_sh_brush_files as $lang => $val){
$brush_file = $val[0];
$brush_ver = $val[2];
$brush_enable = $val[3];
if (($brush_ver == '2.1' || $brush_ver == '1.5') && $brush_enable == 'true') {
echo "\n";
}
}
if (is_admin() && $wp_sh_brush_files[PHP][3] == "false") {
echo "\n";
}
if (is_admin() && $wp_sh_brush_files[XML][3] == "false") {
echo "\n";
}
do_action( 'wpsh_brush_for_2' ); //Action hook for developers
}
if ($version == "3.0") {
echo "
\n";
} elseif ($version == "2.1") {
echo "
\n";
}
} else {
echo '';
}
}
//Setting panel
function wp_sh_options_panel(){
global $plugin_url, $wp_sh_db_ver;
if(!function_exists('current_user_can') || !current_user_can('manage_options')){
die(__('Cheatin’ uh?'));
}
add_action('in_admin_footer', 'wp_sh_add_admin_footer');
if (isset($_POST['WP_SH_Lang_submit'])) {
echo "".__("Settings saved.","wp_sh")."
";
} elseif (isset($_POST['WP_SH_Reset'])) {
echo "".__("All settings were reset. Please reload the page.","wp_sh")."
";
}
$wp_sh_current_language3 = get_option('wp_sh_language3');
$wp_sh_current_language2 = get_option('wp_sh_language2');
$wp_sh_current_brushes = get_option('wp_sh_brush_files');
if ((!is_array($wp_sh_current_language3) || !is_array($wp_sh_current_language2) || !is_array($wp_sh_current_brushes) || $wp_sh_db_ver != get_option('wp_sh_checkver_stamp')) && !isset($_POST['WP_SH_Reset'])) {
echo "".__("Error: Missing Database Table. The plugin may fail to create the databese table when install or update. Please re-create database table by clicking on 'Reset All Settings'.","wp_sh")."
";
}
#Update brush files array.
if(isset($_POST['WP_SH_Lang_submit'])){
foreach($wp_sh_current_brushes as $lang => $val){
$brush_file = $val[0];
$brush_alias = $val[1];
$brush_ver = $val[2];
$wp_sh_brush_files[$lang]= array($brush_file, $brush_alias, $brush_ver, $_POST[$lang]);
}
update_option('wp_sh_brush_files', $wp_sh_brush_files);
}
#Reset all settings
if(isset($_POST['WP_SH_Reset']) && $_POST['wp_sh_reset']='true'){
include_once('uninstall.php');
wp_sh_array_setting();
wp_sh_register_menu_item();
}
#When collapse activated
if (get_option('wp_sh_collapse') == 1) {
update_option('wp_sh_toolbar', 1);
}
?>
WP SyntaxHighlighter
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Syntax Highlighting Example</title>
</head>
<body style="width:500px">
<h1>Syntax Highlighting Example</h1>
<p><?php echo 'Hello World!' ?></p>
<p>XHTML with PHP script.</p>
<div class="tabs">
TAB TAB TAB TAB
TAB TAB TAB TAB
TAB TAB TAB TAB
<p>For 'Smart tabs'.</p>
</div>
<p>http://wordpress.org/</p>
</body>
</html>
Forum or Mail From', 'wp_sh') ?>