array(
array(
'text' => 'Example',
'title' => 'Example Title',
'start' => '',
'end' => ''
)
)
);
add_option('rmnlQuicktagSettings', $rmnlQuicktagSettings);
}
/**
* install options in table _options
*
* @package AddQuicktag
*/
function wpaq_reset() {
$rmnlQuicktagSettings = array(
'buttons' => array(
array(
'text' => 'Reset',
'title' => 'Reset Title',
'start' => '',
'end' => ''
)
)
);
update_option('rmnlQuicktagSettings', $rmnlQuicktagSettings);
}
/**
* uninstall options in table _options
*
* @package AddQuicktag
*/
function wpaq_uninstall() {
delete_option('rmnlQuicktagSettings');
}
/**
* export options in file
*
* @package AddQuicktag
*/
function wpaq_export() {
global $wpdb;
$filename = 'wpaq_export-' . date('Y-m-d_G-i-s') . '.wpaq';
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=" . urlencode($filename));
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Type: text/wpaq; charset=' . get_option('blog_charset'), true);
flush();
$wpaq_data = mysql_query("SELECT option_value FROM $wpdb->options WHERE option_name = 'rmnlQuicktagSettings'");
$wpaq_data = mysql_result($wpaq_data, 0);
echo $wpaq_data;
flush();
}
/**
* import options in table _options
*
* @package AddQuicktag
*/
function wpaq_import() {
if ( !current_user_can('manage_options') )
wp_die( __('Options not update - you don‘t have the privilidges to do this!', 'secure_wp') );
//cross check the given referer
check_admin_referer('rmnl_nonce');
// check file extension
$str_file_name = $_FILES['datei']['name'];
$str_file_ext = explode(".", $str_file_name);
if ($str_file_ext[1] != 'wpaq') {
$addreferer = 'notexist';
} elseif (file_exists($_FILES['datei']['name'])) {
$addreferer = 'exist';
} else {
// path for file
$str_ziel = WP_CONTENT_DIR . '/' . $_FILES['datei']['name'];
// transfer
move_uploaded_file($_FILES['datei']['tmp_name'], $str_ziel);
// access authorisation
chmod($str_ziel, 0644);
// SQL import
ini_set('default_socket_timeout', 120);
$import_file = file_get_contents($str_ziel);
wpaq_reset();
$import_file = unserialize($import_file);
update_option('rmnlQuicktagSettings', $import_file);
unlink($str_ziel);
$addreferer = 'true';
}
$referer = str_replace('&update=true&update=true', '', $_POST['_wp_http_referer'] );
wp_redirect($referer . '&update=' . $addreferer );
}
/**
* options page in backend of WP
*
* @package AddQuicktag
*/
function wpaq_options_page() {
global $wp_version;
if ($_POST['wpaq']) {
if ( current_user_can('edit_plugins') ) {
check_admin_referer('rmnl_nonce');
$buttons = array();
for ($i = 0; $i < count($_POST['wpaq']['buttons']); $i++){
$b = $_POST['wpaq']['buttons'][$i];
if ($b['text'] != '' && $b['start'] != '') {
$b['text'] = $b['text'];
$b['title'] = $b['title'];
$b['start'] = stripslashes($b['start']);
$b['end'] = stripslashes($b['end']);
$buttons[] = $b;
}
}
$_POST['wpaq']['buttons'] = $buttons;
update_option('rmnlQuicktagSettings', $_POST['wpaq']);
$message = '
' . __('Options saved.', FB_WPAQ_TEXTDOMAIN ) . '
';
} else {
wp_die(''.__('You do not have sufficient permissions to edit plugins for this blog.', FB_WPAQ_TEXTDOMAIN ).'
');
}
}
// Uninstall options
if ( ($_POST['action'] == 'uninstall') ) {
if ( current_user_can('edit_plugins') ) {
check_admin_referer('rmnl_nonce');
wpaq_uninstall();
$message_export = '
';
$message_export.= __('AddQuicktag options have been deleted!', FB_WPAQ_TEXTDOMAIN );
$message_export.= '
';
} else {
wp_die(''.__('You do not have sufficient permissions to edit plugins for this blog.', FB_WPAQ_TEXTDOMAIN ).'
');
}
}
$string1 = __('Add or delete Quicktag buttons', FB_WPAQ_TEXTDOMAIN );
$string2 = __('Fill in the fields below to add or edit the quicktags. Fields with * are required. To delete a tag simply empty all fields.', FB_WPAQ_TEXTDOMAIN );
$field1 = __('Button Label*', FB_WPAQ_TEXTDOMAIN );
$field2 = __('Title Attribute', FB_WPAQ_TEXTDOMAIN );
$field3 = __('Start Tag(s)*', FB_WPAQ_TEXTDOMAIN );
$field4 = __('End Tag(s)', FB_WPAQ_TEXTDOMAIN );
$button1 = __('Update Options »', FB_WPAQ_TEXTDOMAIN );
// Export strings
$button2 = __('Export »', FB_WPAQ_TEXTDOMAIN );
$export1 = __('Export/Import AddQuicktag buttons options', FB_WPAQ_TEXTDOMAIN );
$export2 = __('You can save a .wpaq file with your options.', FB_WPAQ_TEXTDOMAIN );
$export3 = __('Export', FB_WPAQ_TEXTDOMAIN );
// Import strings
$button3 = __('Upload file and import »', FB_WPAQ_TEXTDOMAIN );
$import1 = __('Import', FB_WPAQ_TEXTDOMAIN );
$import2 = __('Choose a Quicktag (.wpaq) file to upload, then click Upload file and import.', FB_WPAQ_TEXTDOMAIN );
$import3 = __('Choose a file from your computer: ', FB_WPAQ_TEXTDOMAIN );
// Uninstall strings
$button4 = __('Uninstall Options »', FB_WPAQ_TEXTDOMAIN );
$uninstall1 = __('Uninstall options', FB_WPAQ_TEXTDOMAIN );
$uninstall2 = __('This button deletes all options of the WP-AddQuicktag plugin. Attention: You cannot undo this!', FB_WPAQ_TEXTDOMAIN );
// Info
$info0 = __('About the plugin', FB_WPAQ_TEXTDOMAIN );
$info1 = __('Further information: Visit the plugin homepage for further information or to grab the latest version of this plugin.', FB_WPAQ_TEXTDOMAIN );
$info2 = __('You want to thank me? Visit my wishlist or donate.', FB_WPAQ_TEXTDOMAIN );
// message for import, after redirect
if ( strpos($_SERVER['REQUEST_URI'], 'addquicktag.php') && $_GET['update'] && !$_POST['uninstall'] ) {
$message_export = '
';
if ( $_GET['update'] == 'true' ) {
$message_export .= __('AddQuicktag options imported!', FB_WPAQ_TEXTDOMAIN );
} elseif( $_GET['update'] == 'exist' ) {
$message_export .= __('File is exist!', FB_WPAQ_TEXTDOMAIN );
} elseif( $_GET['update'] == 'notexist' ) {
$message_export .= __('Invalid file extension!', FB_WPAQ_TEXTDOMAIN );
}
$message_export .= '
';
}
$o = get_option('rmnlQuicktagSettings');
?>
0) {
?>
> 0x06) + 0xC0) . chr(($num & 0x3F) + 128);
} elseif ($num <= 0xFFFF) {
return chr(($num >> 0x0C) + 0xE0) . chr((($num >> 0x06) & 0x3F) + 0x80) . chr(($num & 0x3F) + 0x80);
} elseif ($num <= 0x1FFFFF) {
return chr(($num >> 0x12) + 0xF0) . chr((($num >> 0x0C) & 0x3F) + 0x80) . chr((($num >> 0x06) & 0x3F) + 0x80) . chr(($num & 0x3F) + 0x80);
}
return '';
}
/**
* html_entity_decode for PHP 4
*
* @package AddQuicktag
*/
function wpaq_html_entity_decode_php4($str) {
$htmlentities = array (
"Á" => chr(195).chr(129),
"á" => chr(195).chr(161),
"Â" => chr(195).chr(130),
"â" => chr(195).chr(162),
"´" => chr(194).chr(180),
"Æ" => chr(195).chr(134),
"æ" => chr(195).chr(166),
"À" => chr(195).chr(128),
"à" => chr(195).chr(160),
"ℵ" => chr(226).chr(132).chr(181),
"Α" => chr(206).chr(145),
"α" => chr(206).chr(177),
"&" => chr(38),
"∧" => chr(226).chr(136).chr(167),
"∠" => chr(226).chr(136).chr(160),
"Å" => chr(195).chr(133),
"å" => chr(195).chr(165),
"≈" => chr(226).chr(137).chr(136),
"Ã" => chr(195).chr(131),
"ã" => chr(195).chr(163),
"Ä" => chr(195).chr(132),
"ä" => chr(195).chr(164),
"„" => chr(226).chr(128).chr(158),
"Β" => chr(206).chr(146),
"β" => chr(206).chr(178),
"¦" => chr(194).chr(166),
"•" => chr(226).chr(128).chr(162),
"∩" => chr(226).chr(136).chr(169),
"Ç" => chr(195).chr(135),
"ç" => chr(195).chr(167),
"¸" => chr(194).chr(184),
"¢" => chr(194).chr(162),
"Χ" => chr(206).chr(167),
"χ" => chr(207).chr(135),
"ˆ" => chr(203).chr(134),
"♣" => chr(226).chr(153).chr(163),
"≅" => chr(226).chr(137).chr(133),
"©" => chr(194).chr(169),
"↵" => chr(226).chr(134).chr(181),
"∪" => chr(226).chr(136).chr(170),
"¤" => chr(194).chr(164),
"†" => chr(226).chr(128).chr(160),
"‡" => chr(226).chr(128).chr(161),
"↓" => chr(226).chr(134).chr(147),
"⇓" => chr(226).chr(135).chr(147),
"°" => chr(194).chr(176),
"Δ" => chr(206).chr(148),
"δ" => chr(206).chr(180),
"♦" => chr(226).chr(153).chr(166),
"÷" => chr(195).chr(183),
"É" => chr(195).chr(137),
"é" => chr(195).chr(169),
"Ê" => chr(195).chr(138),
"ê" => chr(195).chr(170),
"È" => chr(195).chr(136),
"è" => chr(195).chr(168),
"∅" => chr(226).chr(136).chr(133),
" " => chr(226).chr(128).chr(131),
" " => chr(226).chr(128).chr(130),
"Ε" => chr(206).chr(149),
"ε" => chr(206).chr(181),
"≡" => chr(226).chr(137).chr(161),
"Η" => chr(206).chr(151),
"η" => chr(206).chr(183),
"Ð" => chr(195).chr(144),
"ð" => chr(195).chr(176),
"Ë" => chr(195).chr(139),
"ë" => chr(195).chr(171),
"€" => chr(226).chr(130).chr(172),
"∃" => chr(226).chr(136).chr(131),
"ƒ" => chr(198).chr(146),
"∀" => chr(226).chr(136).chr(128),
"½" => chr(194).chr(189),
"¼" => chr(194).chr(188),
"¾" => chr(194).chr(190),
"⁄" => chr(226).chr(129).chr(132),
"Γ" => chr(206).chr(147),
"γ" => chr(206).chr(179),
"≥" => chr(226).chr(137).chr(165),
"↔" => chr(226).chr(134).chr(148),
"⇔" => chr(226).chr(135).chr(148),
"♥" => chr(226).chr(153).chr(165),
"…" => chr(226).chr(128).chr(166),
"Í" => chr(195).chr(141),
"í" => chr(195).chr(173),
"Î" => chr(195).chr(142),
"î" => chr(195).chr(174),
"¡" => chr(194).chr(161),
"Ì" => chr(195).chr(140),
"ì" => chr(195).chr(172),
"ℑ" => chr(226).chr(132).chr(145),
"∞" => chr(226).chr(136).chr(158),
"∫" => chr(226).chr(136).chr(171),
"Ι" => chr(206).chr(153),
"ι" => chr(206).chr(185),
"¿" => chr(194).chr(191),
"∈" => chr(226).chr(136).chr(136),
"Ï" => chr(195).chr(143),
"ï" => chr(195).chr(175),
"Κ" => chr(206).chr(154),
"κ" => chr(206).chr(186),
"Λ" => chr(206).chr(155),
"λ" => chr(206).chr(187),
"〈" => chr(226).chr(140).chr(169),
"«" => chr(194).chr(171),
"←" => chr(226).chr(134).chr(144),
"⇐" => chr(226).chr(135).chr(144),
"⌈" => chr(226).chr(140).chr(136),
"“" => chr(226).chr(128).chr(156),
"≤" => chr(226).chr(137).chr(164),
"⌊" => chr(226).chr(140).chr(138),
"∗" => chr(226).chr(136).chr(151),
"◊" => chr(226).chr(151).chr(138),
"" => chr(226).chr(128).chr(142),
"‹" => chr(226).chr(128).chr(185),
"‘" => chr(226).chr(128).chr(152),
"¯" => chr(194).chr(175),
"—" => chr(226).chr(128).chr(148),
"µ" => chr(194).chr(181),
"·" => chr(194).chr(183),
"−" => chr(226).chr(136).chr(146),
"Μ" => chr(206).chr(156),
"μ" => chr(206).chr(188),
"∇" => chr(226).chr(136).chr(135),
" " => chr(194).chr(160),
"–" => chr(226).chr(128).chr(147),
"≠" => chr(226).chr(137).chr(160),
"∋" => chr(226).chr(136).chr(139),
"¬" => chr(194).chr(172),
"∉" => chr(226).chr(136).chr(137),
"⊄" => chr(226).chr(138).chr(132),
"Ñ" => chr(195).chr(145),
"ñ" => chr(195).chr(177),
"Ν" => chr(206).chr(157),
"ν" => chr(206).chr(189),
"Ó" => chr(195).chr(147),
"ó" => chr(195).chr(179),
"Ô" => chr(195).chr(148),
"ô" => chr(195).chr(180),
"Œ" => chr(197).chr(146),
"œ" => chr(197).chr(147),
"Ò" => chr(195).chr(146),
"ò" => chr(195).chr(178),
"‾" => chr(226).chr(128).chr(190),
"Ω" => chr(206).chr(169),
"ω" => chr(207).chr(137),
"Ο" => chr(206).chr(159),
"ο" => chr(206).chr(191),
"⊕" => chr(226).chr(138).chr(149),
"∨" => chr(226).chr(136).chr(168),
"ª" => chr(194).chr(170),
"º" => chr(194).chr(186),
"Ø" => chr(195).chr(152),
"ø" => chr(195).chr(184),
"Õ" => chr(195).chr(149),
"õ" => chr(195).chr(181),
"⊗" => chr(226).chr(138).chr(151),
"Ö" => chr(195).chr(150),
"ö" => chr(195).chr(182),
"¶" => chr(194).chr(182),
"∂" => chr(226).chr(136).chr(130),
"‰" => chr(226).chr(128).chr(176),
"⊥" => chr(226).chr(138).chr(165),
"Φ" => chr(206).chr(166),
"φ" => chr(207).chr(134),
"Π" => chr(206).chr(160),
"π" => chr(207).chr(128),
"ϖ" => chr(207).chr(150),
"±" => chr(194).chr(177),
"£" => chr(194).chr(163),
"′" => chr(226).chr(128).chr(178),
"″" => chr(226).chr(128).chr(179),
"∏" => chr(226).chr(136).chr(143),
"∝" => chr(226).chr(136).chr(157),
"Ψ" => chr(206).chr(168),
"ψ" => chr(207).chr(136),
"√" => chr(226).chr(136).chr(154),
"〉" => chr(226).chr(140).chr(170),
"»" => chr(194).chr(187),
"→" => chr(226).chr(134).chr(146),
"⇒" => chr(226).chr(135).chr(146),
"⌉" => chr(226).chr(140).chr(137),
"”" => chr(226).chr(128).chr(157),
"ℜ" => chr(226).chr(132).chr(156),
"®" => chr(194).chr(174),
"⌋" => chr(226).chr(140).chr(139),
"Ρ" => chr(206).chr(161),
"ρ" => chr(207).chr(129),
"" => chr(226).chr(128).chr(143),
"›" => chr(226).chr(128).chr(186),
"’" => chr(226).chr(128).chr(153),
"‚" => chr(226).chr(128).chr(154),
"Š" => chr(197).chr(160),
"š" => chr(197).chr(161),
"⋅" => chr(226).chr(139).chr(133),
"§" => chr(194).chr(167),
"" => chr(194).chr(173),
"Σ" => chr(206).chr(163),
"σ" => chr(207).chr(131),
"ς" => chr(207).chr(130),
"∼" => chr(226).chr(136).chr(188),
"♠" => chr(226).chr(153).chr(160),
"⊂" => chr(226).chr(138).chr(130),
"⊆" => chr(226).chr(138).chr(134),
"∑" => chr(226).chr(136).chr(145),
"¹" => chr(194).chr(185),
"²" => chr(194).chr(178),
"³" => chr(194).chr(179),
"⊃" => chr(226).chr(138).chr(131),
"⊇" => chr(226).chr(138).chr(135),
"ß" => chr(195).chr(159),
"Τ" => chr(206).chr(164),
"τ" => chr(207).chr(132),
"∴" => chr(226).chr(136).chr(180),
"Θ" => chr(206).chr(152),
"θ" => chr(206).chr(184),
"ϑ" => chr(207).chr(145),
" " => chr(226).chr(128).chr(137),
"Þ" => chr(195).chr(158),
"þ" => chr(195).chr(190),
"˜" => chr(203).chr(156),
"×" => chr(195).chr(151),
"™" => chr(226).chr(132).chr(162),
"Ú" => chr(195).chr(154),
"ú" => chr(195).chr(186),
"↑" => chr(226).chr(134).chr(145),
"⇑" => chr(226).chr(135).chr(145),
"Û" => chr(195).chr(155),
"û" => chr(195).chr(187),
"Ù" => chr(195).chr(153),
"ù" => chr(195).chr(185),
"¨" => chr(194).chr(168),
"ϒ" => chr(207).chr(146),
"Υ" => chr(206).chr(165),
"υ" => chr(207).chr(133),
"Ü" => chr(195).chr(156),
"ü" => chr(195).chr(188),
"℘" => chr(226).chr(132).chr(152),
"Ξ" => chr(206).chr(158),
"ξ" => chr(206).chr(190),
"Ý" => chr(195).chr(157),
"ý" => chr(195).chr(189),
"¥" => chr(194).chr(165),
"ÿ" => chr(195).chr(191),
"Ÿ" => chr(197).chr(184),
"Ζ" => chr(206).chr(150),
"ζ" => chr(206).chr(182),
"" => chr(226).chr(128).chr(141),
"" => chr(226).chr(128).chr(140),
">" => ">",
"<" => "<"
);
$return = strtr($str, $htmlentities);
$return = preg_replace("~([0-9a-f]+);~ei", "wpaq_code_to_utf8(hexdec(\\1))", $return);
$return = preg_replace("~([0-9]+);~e", "wpaq_code_to_utf8(\\1)", $return);
return $return;
}
/**
* hook in WP
*
* @package AddQuicktag
*/
if ( function_exists('register_activation_hook') )
register_activation_hook(__FILE__, 'wpaq_install');
if ( function_exists('register_uninstall_hook') )
register_uninstall_hook(__FILE__, 'wpaq_uninstall');
if ( is_admin() ) {
add_action('init', 'wpaq_textdomain');
add_action('admin_menu', 'wpaq_add_settings_page');
add_action('in_admin_footer', 'wpaq_admin_footer');
add_action('admin_post_wpaq_import', 'wpaq_import' );
}
/**
* Add action link(s) to plugins page
* Thanks Dion Hulse -- http://dd32.id.au/wordpress-plugins/?configure-link
*
* @package AddQuicktag
*/
function wpaq_filter_plugin_actions($links, $file){
static $this_plugin;
if( ! $this_plugin ) $this_plugin = plugin_basename(__FILE__);
if( $file == $this_plugin ){
$settings_link = '' . __('Settings') . '';
$links = array_merge( array($settings_link), $links); // before other links
}
return $links;
}
/**
* @version WP 2.7
* Add action link(s) to plugins page
*
* @package Secure WordPress
*
* @param $links, $file
* @return $links
*/
function wpaq_filter_plugin_actions_new($links, $file) {
/* create link */
if ( $file == FB_WPAQ_BASENAME ) {
array_unshift(
$links,
sprintf( '%s', FB_WPAQ_BASENAME, __('Settings') )
);
}
return $links;
}
/**
* Images/ Icons in base64-encoding
* @use function wpag_get_resource_url() for display
*
* @package AddQuicktag
*/
if( isset($_GET['resource']) && !empty($_GET['resource'])) {
# base64 encoding performed by base64img.php from http://php.holtsmark.no
$resources = array(
'addquicktag.gif' =>
'R0lGODlhCwAJALMPAPL19Y2cnLzNzZempsXV1VpfX6WysrS/v5'.
'+trXmDg9Xh4drr66W5uay6urnHx////yH5BAEAAA8ALAAAAAAL'.
'AAkAAARA8D0gmBMESMUIK0XAVNzQOE6QCIJhIMOANMRCHG+MuI'.
'5yG4PAzjDyORqyxKwh8AlUAEUiQVswqBINIHEIHCSPCAA7'.
'');
if(array_key_exists($_GET['resource'], $resources)) {
$content = base64_decode($resources[ $_GET['resource'] ]);
$lastMod = filemtime(__FILE__);
$client = ( isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false );
// Checking if the client is validating his cache and if it is current.
if (isset($client) && (strtotime($client) == $lastMod)) {
// Client's cache IS current, so we just respond '304 Not Modified'.
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $lastMod).' GMT', true, 304);
exit;
} else {
// Image not cached or cache outdated, we respond '200 OK' and output the image.
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $lastMod).' GMT', true, 200);
header('Content-Length: '.strlen($content));
header('Content-Type: image/' . substr(strrchr($_GET['resource'], '.'), 1) );
echo $content;
exit;
}
}
}
/**
* Display Images/ Icons in base64-encoding
* @return $resourceID
*
* @package AddQuicktag
*/
function wpag_get_resource_url($resourceID) {
return trailingslashit( get_bloginfo('url') ) . '?resource=' . $resourceID;
}
/**
* settings in plugin-admin-page
*
* @package AddQuicktag
*/
function wpaq_add_settings_page() {
global $wp_version;
if ( function_exists('add_options_page') && current_user_can('manage_options') ) {
$plugin = plugin_basename(__FILE__);
$menutitle = '';
if ( version_compare( $wp_version, '2.6.999', '>' ) ) {
$menutitle = '' . ' ';
}
$menutitle .= __('AddQuicktag', FB_WPAQ_TEXTDOMAIN );
add_options_page( __('WP-Quicktag – AddQuicktag', FB_WPAQ_TEXTDOMAIN ), $menutitle, 9, $plugin, 'wpaq_options_page');
if ( version_compare( $wp_version, '2.7alpha', '<' ) ) {
add_filter('plugin_action_links', 'wpaq_filter_plugin_actions', 10, 2);
} else {
add_filter( 'plugin_action_links_' . $plugin, 'wpaq_filter_plugin_actions_new', 10, 2 );
if ( version_compare( $wp_version, '2.8alpha', '>' ) )
add_filter( 'plugin_row_meta', 'wpaq_filter_plugin_actions_new', 10, 2 );
}
}
}
/**
* credit in wp-footer
*
* @package AddQuicktag
*/
function wpaq_admin_footer() {
if( basename($_SERVER['REQUEST_URI']) == 'addquicktag.php') {
$plugin_data = get_plugin_data( __FILE__ );
printf('%1$s plugin | ' . __('Version') . ' %2$s | ' . __('Author') . ' %3$s
', $plugin_data['Title'], $plugin_data['Version'], $plugin_data['Author']);
}
}
?>