'text', 'wfb_favicon' => 'url', 'wfb_admin_favicon' => 'bool', 'wfb_apple_icon' => 'url', 'wfb_hide_version' => 'bool', 'wfb_google' => 'text', 'wfb_yahoo' => 'text', 'wfb_bing' => 'text', 'wfb_hide_custom_fields' => 'bool', 'wfb_revision' => 'int', 'wfb_autosave' => 'bool', 'wfb_selfping' => 'bool', 'wfb_widget' => 'array', 'wfb_custom_logo' => 'url', 'wfb_admin_footer_text' => 'html', 'wfb_login_logo' => 'url', 'wfb_login_url' => 'url', 'wfb_login_title' => 'text', 'wfb_webmaster' => 'bool', 'wfb_remove_xmlrpc' => 'bool', 'wfb_exclude_loggedin' => 'bool', 'wfb_adjacent_posts_rel_links' => 'bool', 'wfb_remove_more' => 'bool', 'wfb_pageexcerpt' => 'bool', 'wfb_postmetas' => 'array', 'wfb_pagemetas' => 'array', 'wfb_emailaddress' => 'email', 'wfb_sendername' => 'text', 'wfb_contact_methods' => 'array', 'wfb_remove_excerpt' => 'bool', 'wfb_update_notification' => 'bool', ); public function __construct() { if (is_admin()) { require_once(dirname(__FILE__).'/includes/admin.php'); new TotalHacksAdmin( WP_PLUGIN_URL.'/'.dirname(plugin_basename(__FILE__)), $this->option_params ); } if (strlen($this->op('wfb_revision'))) { if (!defined('WP_POST_REVISIONS')) { define('WP_POST_REVISIONS', $this->op('wfb_revision')); } } add_action('init', array(&$this, 'init')); add_action('plugins_loaded', array(&$this, 'plugins_loaded')); add_action('get_header', array(&$this, 'get_header')); add_action('wp_head', array(&$this, 'wp_head')); add_action('admin_head', array(&$this, 'admin_head')); add_filter('admin_footer_text', array(&$this, 'admin_footer_text')); add_action('login_head', array(&$this, 'login_head')); add_action('admin_menu' , array(&$this, 'admin_menu')); add_filter('login_headerurl', array(&$this, 'login_headerurl')); add_filter('login_headertitle', array(&$this, 'login_headertitle')); add_action('pre_ping', array(&$this, 'pre_ping')); add_action('wp_dashboard_setup',array(&$this, 'wp_dashboard_setup')); add_filter('the_content_more_link', array(&$this, 'the_content_more_link')); add_action('wp_print_scripts', array(&$this, 'wp_print_scripts')); add_filter('wp_mail_from', array(&$this, 'wp_mail_from')); add_filter('wp_mail_from_name', array(&$this, 'wp_mail_from_name')); add_filter('plugin_row_meta', array(&$this, 'plugin_row_meta'), 10, 2); add_filter('user_contactmethods', array(&$this, 'user_contactmethods')); add_filter('excerpt_more', array(&$this, 'excerpt_more')); } public function plugins_loaded() { load_plugin_textdomain( "wp-total-hacks", false, dirname(plugin_basename(__FILE__)).'/languages' ); } public function excerpt_more($str) { if ($this->op('wfb_remove_excerpt')) { return null; } return $str; } public function user_contactmethods($meth) { $del = $this->op('wfb_contact_methods'); if ($del && is_array($del)) { foreach ($meth as $m => $s) { if (in_array($m, $del)) { unset($meth[$m]); } } } return $meth; } public function wp_mail_from($str) { if ($this->op('wfb_emailaddress')) { if (preg_match("/^wordpress@/i", $str)) { return $this->op('wfb_emailaddress'); } } return $str; } public function wp_mail_from_name($str) { if ($this->op('wfb_sendername')) { if (preg_match("/^wordpress/i", $str)) { return $this->op('wfb_sendername'); } } return $str; } public function init() { if ($this->op("wfb_pageexcerpt")) { add_post_type_support('page', 'excerpt'); } } public function wp_print_scripts() { if (strlen($this->op('wfb_autosave'))) { wp_deregister_script('autosave'); } } public function the_content_more_link($str) { if ($this->op('wfb_remove_more')) { $str = preg_replace('/#more-[0-9]+/i', '', $str); } return $str; } public function get_header() { if ($this->op('wfb_adjacent_posts_rel_links')) { if (is_page()) { remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); } } if ($this->op('wfb_remove_xmlrpc')) { if (!$this->op("enable_app") && !$this->op('enable_xmlrpc')) { remove_action('wp_head', 'wlwmanifest_link'); remove_action('wp_head', 'rsd_link'); } } if ($this->op('wfb_hide_version')) { remove_action('wp_head', 'wp_generator'); } } public function wp_dashboard_setup() { if ($w = $this->op('wfb_widget')) { global $wp_meta_boxes; foreach ($wp_meta_boxes['dashboard']['normal']['core'] as $key => $array) { if (in_array($key, $w)) { unset($wp_meta_boxes['dashboard']['normal']['core'][$key]); } } foreach ($wp_meta_boxes['dashboard']['side']['core'] as $key => $array) { if (in_array($key, $w)) { unset($wp_meta_boxes['dashboard']['side']['core'][$key]); } } } } public function pre_ping(&$links) { if (!$this->op('wfb_selfping')) { return; } $home = $this->op( 'home' ); foreach ($links as $l => $link) { if (0 === strpos($link, $home)) { unset($links[$l]); } } } public function login_headerurl($url) { if ($op = $this->op('wfb_login_url')) { return $op; } else { return $url; } } public function login_headertitle($url) { if ($op = $this->op('wfb_login_title')) { return $op; } else { return $url; } } public function wp_head() { if ($this->op("wfb_google_analytics")) { if ($this->op("wfb_exclude_loggedin") && is_user_logged_in()) { } else { echo stripslashes($this->op("wfb_google_analytics")); } } if ($this->op('wfb_favicon')) { $link = ''."\n"; printf($link, esc_url($this->op("wfb_favicon"))); } if ($this->op('wfb_apple_icon')) { $link = ''."\n"; printf($link, esc_url($this->op("wfb_apple_icon"))); } echo $this->get_meta('google-site-verification', $this->op('wfb_google')); echo $this->get_meta('y_key', $this->op('wfb_yahoo')); echo $this->get_meta('msvalidate.01', $this->op('wfb_bing')); } public function admin_head() { if ($this->op('wfb_favicon') && $this->op('wfb_admin_favicon')) { $link = ''."\n"; printf($link, esc_url($this->op("wfb_favicon"))); } if (!$this->op("wfb_custom_logo")) { return; } $style = ''; printf($style, esc_url($this->op("wfb_custom_logo"))); } private function get_meta($name, $content) { if ($name && $content) { return sprintf( ''."\n", $name, esc_attr($content) ); } } public function admin_footer_text($text) { if ($str = $this->op('wfb_admin_footer_text')) { return $str; } else { return $text; } } public function login_head() { if ($this->op("wfb_login_logo")) { printf( '', esc_url($this->op('wfb_login_logo')) ); } } public function admin_menu() { $metas = $this->op('wfb_postmetas'); if ($metas && is_array($metas)) { foreach ($metas as $meta) { remove_meta_box($meta, 'post', 'normal'); } } $metas = $this->op('wfb_pagemetas'); if ($metas && is_array($metas)) { foreach ($metas as $meta) { remove_meta_box($meta, 'page', 'normal'); } } if ($this->op('wfb_update_notification')) { global $user_login; get_currentuserinfo(); if (!current_user_can('update_plugins')) { remove_action('admin_notices', 'update_nag', 3); } } } private function op($key, $default = false) { $op = get_option($key, $default); if (is_array($op)) { return $op; } else { return trim(stripslashes($op)); } } public function plugin_row_meta($links, $file) { $pname = plugin_basename(__FILE__); if ($pname === $file) { $link = '%s'; $links[] = sprintf( $link, admin_url('options-general.php?page=wp-total-hacks'), __("Settings", "wp-total-hacks") ); $url = "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8NDYFAG2ZM9TU"; $links[] = sprintf($link, esc_url($url), __("Donate", "wp-total-hacks")); } return $links; } } ?>