web/wp-content/plugins/wptouch/wptouch.php
branchwordpress
changeset 123 561aa6d282f6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/plugins/wptouch/wptouch.php	Mon Feb 01 09:51:57 2010 +0000
@@ -0,0 +1,831 @@
+<?php
+/*
+   Plugin Name: WPtouch iPhone Theme
+   Plugin URI: http://bravenewcode.com/wptouch
+   Description: A plugin which formats your site with a mobile theme for the Apple <a href="http://www.apple.com/iphone/">iPhone</a> / <a href="http://www.apple.com/ipodtouch/">iPod touch</a>, <a href="http://www.android.com/">Google Android</a> and other touch-based smartphones.
+	Author: Dale Mugford & Duane Storey (BraveNewCode)
+	Version: 1.9.7.6
+	Author URI: http://www.bravenewcode.com
+   
+	# Thanks to ContentRobot and the iWPhone theme/plugin
+	# which the detection feature of the plugin was based on.
+	# (http://iwphone.contentrobot.com/)
+	
+	# Also thanks to Henrik Urlund, who's "Prowl Me" plugin inspired
+	# the Push notification additions.
+	# (http://codework.dk/referencer/wp-plugins/prowl-me/)
+	
+	# All Admin and theme design / CSS is Copyright (c) 2007-2010
+	# Duane Storey & Dale Mugford of BraveNewCode Inc.
+	#
+	# 'WPtouch' is an unregistered trademark of BraveNewCode Inc., 
+	# and may not be used in conjuction with this software without permission.
+	
+	# The code in this plugin is free software; you can redistribute the code aspects of
+	# the plugin and/or modify the code under the terms of the GNU Lesser General
+	# Public License as published by the Free Software Foundation; either
+	# version 2.1 of the License, or (at your option) any later version.
+	
+	# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+	# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+	# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+	# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+	# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+	# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+	# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
+	#
+	# See the GNU lesser General Public License for more details.
+*/
+
+
+global $bnc_wptouch_version;
+$bnc_wptouch_version = '1.9.7.6';
+
+require_once( 'include/plugin.php' );
+require_once( 'include/compat.php' );
+
+define( 'WPTOUCH_PROWL_APPNAME', 'WPtouch');
+
+function wp_touch_get_comment_count() {
+	global $wpdb;
+	global $post;
+	
+	$result = $wpdb->get_row( $wpdb->prepare( "SELECT count(*) as c FROM {$wpdb->comments} WHERE comment_type = '' AND comment_approved = 1 AND comment_post_ID = %d", $post->ID ) );
+	if ( $result ) {
+		return $result->c;
+	} else {
+		return 0;	
+	}
+}
+
+
+//The WPtouch Settings Defaults
+global $wptouch_defaults;
+$wptouch_defaults = array(
+	'header-title' => get_bloginfo('name'),
+	'main_title' => 'Default.png',
+	'enable-post-excerpts' => true,
+	'enable-page-coms' => false,
+	'enable-cats-button' => true,
+	'enable-tags-button' => true,
+	'enable-search-button' => true,
+	'enable-login-button' => false,
+	'enable-ajax-comments' => true,
+	'enable-gravatars' => true,
+	'enable-main-home' => true,
+	'enable-main-rss' => true,
+	'enable-main-name' => true,
+	'enable-main-tags' => true,
+	'enable-main-categories' => true,
+	'enable-main-email' => true,
+// Prowl
+	'prowl-api' => '',
+	'enable-prowl-comments-button' => false,
+	'enable-prowl-users-button' => false,
+	'enable-prowl-message-button' => false,
+//
+	'header-background-color' => '000000',
+	'header-border-color' => '333333',
+	'header-text-color' => 'eeeeee',
+	'link-color' => '006bb3',
+// New
+	'post-cal-thumb' =>'calendar-icons',
+	'h2-font' =>'Helvetica Neue',
+//
+	'style-text-justify' => 'full-justified',
+	'style-background' => 'classic-wptouch-bg',
+	'enable-regular-default' => false,
+	'excluded-cat-ids' => '',
+	'home-page' => 0,
+	'enable-exclusive' => false,
+	'sort-order' => 'name',
+	'adsense-id' => '',
+	'statistics' => '',
+	'adsense-channel' => '',
+	'custom-user-agents' => array(),
+	'enable-show-tweets' => false,
+	'enable-gigpress-button' => false
+);
+
+function wptouch_get_plugin_dir_name() {
+	global $wptouch_plugin_dir_name;
+	return $wptouch_plugin_dir_name;
+}
+
+function wptouch_delete_icon( $icon ) {
+	if ( !current_user_can( 'upload_files' ) ) {
+		// don't allow users to delete who don't have access to upload (security feature)
+		return;	
+	}
+			
+	$dir = explode( 'wptouch', $icon );
+	$loc = compat_get_upload_dir() . "/wptouch/" . ltrim( $dir[1], '/' );
+
+	unlink( $loc );
+}
+
+function wptouch_init() {	
+	if ( isset( $_GET['delete_icon'] ) ) {
+		wptouch_delete_icon( $_GET['delete_icon'] );
+		header( 'Location: ' . get_bloginfo('wpurl') . '/wp-admin/options-general.php?page=wptouch/wptouch.php#available_icons' );
+		die;
+	}	
+
+}
+
+function wptouch_include_adsense() {
+	global $wptouch_plugin;
+	$settings = bnc_wptouch_get_settings();
+	if ( bnc_is_iphone() && $wptouch_plugin->desired_view == 'mobile' && isset( $settings['adsense-id'] ) && strlen( $settings['adsense-id'] ) && is_single() ) {
+		global $wptouch_settings;
+		$wptouch_settings = $settings;
+		
+		include( 'include/adsense-new.php' );
+	}
+}
+
+function wptouch_content_filter( $content ) {
+	global $wptouch_plugin;
+	$settings = bnc_wptouch_get_settings();
+	if ( bnc_is_iphone() && $wptouch_plugin->desired_view == 'mobile' && isset($settings['adsense-id']) && strlen($settings['adsense-id']) && is_single() ) {
+		global $wptouch_settings;
+		$wptouch_settings = $settings;
+		
+		ob_start();
+		include( 'include/adsense-new.php' );
+		$ad_contents = ob_get_contents();
+		ob_end_clean();
+		
+		return  '<div class="wptouch-adsense-ad">' . $ad_contents . '</div>' . $content;	
+	} else {
+		return $content;
+	}
+}
+
+	add_filter('init', 'wptouch_init');
+
+	function WPtouch($before = '', $after = '') {
+		global $bnc_wptouch_version;
+		echo $before . 'WPtouch ' . $bnc_wptouch_version . $after;
+	}
+
+//Add a link to settings on the plugin listings page
+function wptouch_settings_link( $links, $file ) {
+ 	if( $file == 'wptouch/wptouch.php' && function_exists( "admin_url" ) ) {
+		$settings_link = '<a href="' . admin_url( 'options-general.php?page=wptouch/wptouch.php' ) . '">' . __('Settings') . '</a>';
+		array_unshift( $links, $settings_link ); // before other links
+	}
+	return $links;
+}
+ 
+// WP Admin stylesheets & javascript
+function wptouch_admin_files() {		
+	if ( isset( $_GET['page'] ) && $_GET['page'] == 'wptouch/wptouch.php' ) {
+		echo "<link rel='stylesheet' type='text/css' href='" . compat_get_plugin_url( 'wptouch' ) . "/admin-css/wptouch-admin.css' />\n";
+		echo "<link rel='stylesheet' type='text/css' href='" . compat_get_plugin_url( 'wptouch' ) . "/admin-css/bnc-global.css' />\n";
+		echo "<link rel='stylesheet' type='text/css' href='" . compat_get_plugin_url( 'wptouch' ) . "/admin-css/bnc-compressed-global.css' />\n";
+		echo "<script type='text/javascript' src='" . compat_get_plugin_url( 'wptouch' ) . "/js/ajax_upload_3.6.js'></script>\n";
+		echo "<script type='text/javascript' src='" . compat_get_plugin_url( 'wptouch' ) . "/js/colorpicker_1.4.js'></script>\n";
+		echo "<script type='text/javascript' src='" . compat_get_plugin_url( 'wptouch' ) . "/js/fancybox_1.2.5.js'></script>\n";
+		echo "<script type='text/javascript' src='" . compat_get_plugin_url( 'wptouch' ) . "/js/admin_1.9.js'></script>\n";
+	}
+}
+
+function bnc_wptouch_get_user_agents() {
+	$useragents = array(		
+		"iphone",  				 // Apple iPhone
+		"ipod", 					 // Apple iPod touch
+		"aspen", 				 // iPhone simulator
+		"dream", 				 // Pre 1.5 Android
+		"android", 			 // 1.5+ Android
+		"cupcake", 			 // 1.5+ Android
+		"blackberry9500",	 // Storm
+		"blackberry9530",	 // Storm
+		"opera mini", 		 // Experimental
+		"webos",				 // Experimental
+		"incognito", 			 // Other iPhone browser
+		"webmate" 			 // Other iPhone browser
+	);
+	
+	$settings = bnc_wptouch_get_settings();
+	if ( isset( $settings['custom-user-agents'] ) ) {
+		foreach( $settings['custom-user-agents'] as $agent ) {
+			if ( !strlen( $agent ) ) continue;
+			
+			$useragents[] = $agent;	
+		}	
+	}
+	
+	asort( $useragents );
+
+	// WPtouch User Agent Filter
+	$useragents = apply_filters( 'wptouch_user_agents', $useragents );
+	
+	return $useragents;
+}
+
+function bnc_wptouch_is_prowl_key_valid() {
+	require_once( 'include/class.prowl.php' );		
+		
+	$settings = bnc_wptouch_get_settings();
+				
+	if ( isset( $settings['prowl-api'] ) ) {
+		$api_key = $settings['prowl-api'];
+			
+		$prowl = new Prowl( $api_key, $settings['header-title'] );	
+		$verify = $prowl->verify();
+		return ( $verify === true );
+	}
+	
+	return false;
+}
+  
+class WPtouchPlugin {
+	var $applemobile;
+	var $desired_view;
+	var $output_started;
+	var $prowl_output;
+	var $prowl_success;
+		
+	function WPtouchPlugin() {
+		$this->output_started = false;
+		$this->applemobile = false;
+		$this->prowl_output = false;
+		$this->prowl_success = false;
+
+		add_action( 'plugins_loaded', array(&$this, 'detectAppleMobile') );
+		add_filter( 'stylesheet', array(&$this, 'get_stylesheet') );
+		add_filter( 'theme_root', array(&$this, 'theme_root') );
+		add_filter( 'theme_root_uri', array(&$this, 'theme_root_uri') );
+		add_filter( 'template', array(&$this, 'get_template') );
+		add_filter( 'init', array(&$this, 'bnc_filter_iphone') );
+		add_filter( 'wp', array(&$this, 'bnc_do_redirect') );
+		add_filter( 'wp_head', array(&$this, 'bnc_head') );
+		add_filter( 'query_vars', array( &$this, 'wptouch_query_vars' ) );
+		add_filter( 'parse_request', array( &$this, 'wptouch_parse_request' ) );
+		add_action( 'comment_post', array( &$this, 'wptouch_handle_new_comment' ) );
+		add_action( 'user_register', array( &$this, 'wptouch_handle_new_user' ) );
+		
+		$this->detectAppleMobile();
+	}
+	
+	function wptouch_cleanup_growl( $msg ) {
+		$msg = str_replace("\r\n","\n", $msg);
+		$msg = str_replace("\r","\n", $msg);
+		return $msg;	
+	}
+	
+	function wptouch_send_prowl_message( $title, $message ) {
+		require_once( 'include/class.prowl.php' );		
+		
+		$settings = bnc_wptouch_get_settings();
+				
+		if ( isset( $settings['prowl-api'] ) ) {
+			$api_key = $settings['prowl-api'];
+			
+			$prowl = new Prowl( $api_key, $settings['header-title'] );
+				
+			$this->prowl_output = true;
+			$result = $prowl->add( 	1, $title, $this->wptouch_cleanup_growl( stripslashes( $message ) ) );	
+			
+			if ( $result ) {
+				$this->prowl_success = true;
+			} else {				
+				$this->prowl_success = false;
+			}		
+		} else {
+			return false;	
+		}
+	}
+	
+	function wptouch_handle_new_comment( $comment_id, $approval_status = '1' ) {
+		$settings = bnc_wptouch_get_settings();
+		
+		if ( $approval_status != 'spam' 
+		&& isset( $settings['prowl-api'] ) 
+		&& isset( $settings['enable-prowl-comments-button'])
+		&& $settings['enable-prowl-comments-button'] == 1 ) {
+			
+			$api_key = $settings['prowl-api'];
+			
+			require_once( 'include/class.prowl.php' );
+			$comment = get_comment( $comment_id );
+			$prowl = new Prowl( $api_key, $settings['header-title'] );
+			
+			if ( $comment->comment_type != 'spam' && $comment->comment_approved != 'spam' ) {
+				if ( $comment->comment_type == 'trackback' || $comment->comment_type == 'pingback' ) {
+					$result = $prowl->add( 	1, 
+						__( "New Ping/Trackback", "wptouch" ),
+						'From: '. $this->wptouch_cleanup_growl( stripslashes( $comment->comment_author ) ) . 
+						"\nPost: ". $this->wptouch_cleanup_growl( stripslashes( $comment->comment_content ) ) 
+					);			
+			 	} else {
+					$result = $prowl->add( 	1, 
+						__( "New Comment", "wptouch" ),
+						'Name: '. $this->wptouch_cleanup_growl( stripslashes( $comment->comment_author ) ) . 
+						"\nE-Mail: ". $this->wptouch_cleanup_growl( stripslashes( $comment->comment_author_email ) ) .
+						"\nComment: ". $this->wptouch_cleanup_growl( stripslashes( $comment->comment_content ) )
+					);		 
+			 	}
+			}
+		 }
+
+	}
+	
+
+	function wptouch_handle_new_user( $user_id ) {
+		$settings = bnc_wptouch_get_settings();
+		
+		if ( isset( $settings['prowl-api'] ) 
+		&& isset( $settings['enable-prowl-users-button'] ) 
+		&& $settings['enable-prowl-users-button'] == 1 ) {
+
+			global $wpdb;			
+			$api_key = $settings['prowl-api'];
+			require_once( 'include/class.prowl.php' );
+			global $table_prefix;
+			$sql = $wpdb->prepare( "SELECT * from " . $table_prefix . "users WHERE ID = %d", $user_id );
+			$user = $wpdb->get_row( $sql );
+			
+			if ( $user ) {
+				$prowl = new Prowl( $api_key, $settings['header-title'] );	
+				$result = $prowl->add( 	1, 
+					__( "User Registration", "wptouch" ),
+					'Name: '. $this->wptouch_cleanup_growl( stripslashes( $user->user_login ) ) . 
+					"\nE-Mail: ". $this->wptouch_cleanup_growl( stripslashes( $user->user_email ) )
+				);			
+			}
+		}
+	}
+
+	function wptouch_query_vars( $vars ) {
+		$vars[] = "wptouch";
+		return $vars;
+	}
+
+	function wptouch_parse_request( $wp ) {
+		if  (array_key_exists( "wptouch", $wp->query_vars ) ) {
+			switch ( $wp->query_vars["wptouch"] ) {
+				case "upload":
+					include( 'ajax/file_upload.php' );	
+					break;
+				case "plugins":
+					include( 'ajax/load-plugins.php' );
+					break;
+			}
+			exit;
+		}	
+	}
+
+	function bnc_head() {
+		if ( $this->applemobile && $this->desired_view == 'normal' ) {
+			echo "<link rel='stylesheet' type='text/css' href='" . compat_get_plugin_url( 'wptouch' ) . "/themes/core/core-css/wptouch-switch-link.css'></link>\n";
+			echo "<meta name=\"viewport\" content=\"width=device-width,initial-scale=0,user-scalable=yes\" /> \n";
+		}		
+	}
+
+	function bnc_do_redirect() {
+	   global $post;
+				
+		// check for wptouch prowl direct messages	
+		$nonce = '';
+		if ( isset( $_POST['_nonce'] ) ) {
+			$nonce = $_POST['_nonce'];	
+		}
+			
+		if ( isset( $_POST['wptouch-prowl-message'] ) && wp_verify_nonce( $nonce, 'wptouch-prowl' )  ) {
+			$name = $_POST['prowl-msg-name'];
+			$email = $_POST['prowl-msg-email'];
+			$msg = $_POST['prowl-msg-message'];
+			
+			$title = __( "Direct Message", "wptouch" );
+			$prowl_message = 'From: '. $this->wptouch_cleanup_growl( $name ) . 
+				"\nE-Mail: ". $this->wptouch_cleanup_growl( $email ) .
+				"\nMessage: ". $this->wptouch_cleanup_growl( $msg );
+				"\nIP: " . $_SERVER["REMOTE_ADDR"] .
+				
+			$this->wptouch_send_prowl_message( $title, $prowl_message );
+		}		   
+	   
+	   if ( $this->applemobile && $this->desired_view == 'mobile' ) {
+			$version = (float)get_bloginfo('version');
+			$is_front = 0;
+			$is_front = (is_front_page() && (bnc_get_selected_home_page() > 0));
+
+			if ( $is_front ) {
+	    	     $url = get_permalink( bnc_get_selected_home_page() );
+	        	 header('Location: ' . $url);
+	         	die;
+	   	     }
+	   }
+	}
+
+	function bnc_filter_iphone() {				
+		$key = 'wptouch_switch_cookie';
+		
+	   if (isset($_GET['theme_view'])) {
+	  		if ($_GET['theme_view'] == 'mobile') {
+				setcookie($key, 'mobile', 0); 
+			} elseif ($_GET['theme_view'] == 'normal') {
+				setcookie($key, 'normal', 0);
+			}
+			
+			$redirect_location = get_bloginfo( 'siteurl' );
+// fix by cybrstudd
+			if ( isset( $_GET['wptouch_redirect'] ) ) {
+				$protocol = ($_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
+				$redirect_location = $protocol . $_GET['wptouch_redirect'];
+			}
+			
+			header( 'Location: ' . $redirect_location );
+			die;
+		}
+
+		$settings = bnc_wptouch_get_settings();
+		if (isset($_COOKIE[$key])) {
+			$this->desired_view = $_COOKIE[$key];
+		} else {
+			if ( $settings['enable-regular-default'] ) {
+				$this->desired_view = 'normal';
+			} else {
+		  		$this->desired_view = 'mobile';
+			}
+		}		
+	}
+	
+	function detectAppleMobile($query = '') {
+		$container = $_SERVER['HTTP_USER_AGENT'];
+		// The below prints out the user agent array. Uncomment to see it shown on the page.
+		// print_r($container); 
+		// Add whatever user agents you want here to the array if you want to make this show on another device.
+		// No guarantees it'll look pretty, though!
+		$useragents = bnc_wptouch_get_user_agents();
+
+		$devfile =  compat_get_plugin_dir( 'wptouch' ) . '/include/developer.mode';
+		$this->applemobile = false;
+		foreach ( $useragents as $useragent ) {
+			if ( eregi( $useragent, $container ) || file_exists($devfile) ) {
+				$this->applemobile = true;
+			} 	
+		}
+	}
+
+	function get_stylesheet( $stylesheet ) {
+		if ($this->applemobile && $this->desired_view == 'mobile') {
+			return 'default';
+		} else {
+			return $stylesheet;
+		}
+	}
+		  
+	function get_template( $template ) {
+		$this->bnc_filter_iphone();
+		if ($this->applemobile && $this->desired_view === 'mobile') {
+			return 'default';
+		} else {	   
+			return $template;
+		}
+	}
+		  
+	function get_template_directory( $value ) {
+		$theme_root = compat_get_plugin_dir( 'wptouch' );
+		if ($this->applemobile && $this->desired_view === 'mobile') {
+				return $theme_root . '/themes';
+		} else {
+				return $value;
+		}
+	}
+		  
+	function theme_root( $path ) {
+		$theme_root = compat_get_plugin_dir( 'wptouch' );
+		if ($this->applemobile && $this->desired_view === 'mobile') {
+			return $theme_root . '/themes';
+		} else {
+			return $path;
+		}
+	}
+		  
+	function theme_root_uri( $url ) {
+		if ($this->applemobile && $this->desired_view === 'mobile') {
+			$dir = compat_get_plugin_url( 'wptouch' ) . "/themes";
+			return $dir;
+		} else {
+			return $url;
+		}
+	}
+}
+  
+global $wptouch_plugin;
+$wptouch_plugin = new WPtouchPlugin();
+
+//Thanks to edyoshi:
+function bnc_is_iphone() {
+	global $wptouch_plugin;
+	$wptouch_plugin->bnc_filter_iphone();
+	return $wptouch_plugin->applemobile;
+}
+  
+// The Automatic Footer Template Switch Code (into "wp_footer()" in regular theme's footer.php)
+function wptouch_switch() {
+	global $wptouch_plugin;
+	if ( bnc_is_iphone() && $wptouch_plugin->desired_view == 'normal' ) {
+		echo '<div id="wptouch-switch-link">';
+		_e( "Mobile Theme", "wptouch" ); 
+		echo "<a onclick=\"document.getElementById('switch-on').style.display='block';document.getElementById('switch-off').style.display='none';\" href=\"" . get_bloginfo('siteurl') . "/?theme_view=mobile&wptouch_redirect=" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] . "\"><img id=\"switch-on\" src=\"" . compat_get_plugin_url( 'wptouch' ) . "/themes/core/core-images/on.jpg\" alt=\"on switch image\" class=\"wptouch-switch-image\" style=\"display:none\" /><img id=\"switch-off\" src=\"" . compat_get_plugin_url( 'wptouch' ) .  "/themes/core/core-images/off.jpg\" alt=\"off switch image\" class=\"wptouch-switch-image\" /></a>";
+ 		echo '</div>';
+	}
+}
+  
+function bnc_options_menu() {
+	add_options_page( __( 'WPtouch iPhone Theme', 'wptouch' ), 'WPtouch', 9, __FILE__, bnc_wp_touch_page );
+}
+
+function bnc_wptouch_get_settings() {
+	return bnc_wp_touch_get_menu_pages();
+}
+
+function bnc_validate_wptouch_settings( &$settings ) {
+	global $wptouch_defaults;
+	foreach ( $wptouch_defaults as $key => $value ) {
+		if ( !isset( $settings[$key] ) ) {
+			$settings[$key] = $value;
+		}
+	}
+}
+
+function bnc_wptouch_is_exclusive() {
+	$settings = bnc_wptouch_get_settings();
+	return $settings['enable-exclusive'];
+}
+
+function bnc_can_show_tweets() {
+	$settings = bnc_wptouch_get_settings();
+	return $settings['enable-show-tweets'];
+}
+
+function bnc_wp_touch_get_menu_pages() {
+	$v = get_option('bnc_iphone_pages');
+	if (!$v) {
+		$v = array();
+	}
+	
+	if (!is_array($v)) {
+		$v = unserialize($v);
+	}
+	
+	bnc_validate_wptouch_settings( $v );
+
+	return $v;
+}
+
+function bnc_get_selected_home_page() {
+   $v = bnc_wp_touch_get_menu_pages();
+   return $v['home-page'];
+}
+
+function wptouch_get_stats() {
+	$options = bnc_wp_touch_get_menu_pages();
+	if (isset($options['statistics'])) {
+		echo stripslashes($options['statistics']);
+	}
+}
+  
+function bnc_get_title_image() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	$title_image = $ids['main_title'];
+
+	if ( file_exists( compat_get_plugin_dir( 'wptouch' ) . '/images/icon-pool/' . $title_image ) ) {
+		$image = compat_get_plugin_url( 'wptouch' ) . '/images/icon-pool/' . $title_image;
+	} else if ( file_exists( compat_get_upload_dir() . '/wptouch/custom-icons/' . $title_image ) ) {
+		$image = compat_get_upload_url() . '/wptouch/custom-icons/' . $title_image;
+	}
+
+	return $image;
+}
+
+function wptouch_excluded_cats() {
+	$settings = bnc_wptouch_get_settings();
+	return stripslashes($settings['excluded-cat-ids']);
+}
+
+function bnc_excerpt_enabled() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-post-excerpts'];
+}	
+
+function bnc_is_page_coms_enabled() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-page-coms'];
+}		
+
+function bnc_is_cats_button_enabled() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-cats-button'];
+}	
+
+function bnc_is_tags_button_enabled() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-tags-button'];
+}	
+
+function bnc_is_search_enabled() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-search-button'];
+}	
+
+function bnc_is_gigpress_enabled() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-gigpress-button'];
+}	
+
+function bnc_is_login_button_enabled() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-login-button'];
+}		
+	
+function bnc_is_gravatars_enabled() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-gravatars'];
+}	
+
+function bnc_is_ajax_coms_enabled() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-ajax-comments'];
+}	
+
+function bnc_show_author() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-main-name'];
+}
+
+function bnc_show_tags() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-main-tags'];
+}
+
+function bnc_show_categories() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-main-categories'];
+}
+
+function bnc_is_home_enabled() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-main-home'];
+}	
+
+function bnc_is_rss_enabled() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-main-rss'];
+}	
+
+function bnc_is_email_enabled() {
+	$ids = bnc_wp_touch_get_menu_pages();
+	return $ids['enable-main-email'];
+}
+
+// Prowl Functions
+function bnc_is_prowl_direct_message_enabled() {
+	$settings = bnc_wptouch_get_settings();
+	return ( isset( $settings['enable-prowl-message-button'] ) && $settings['enable-prowl-message-button'] && $settings['prowl-api'] );
+}
+
+function bnc_prowl_did_try_message() {
+	global $wptouch_plugin;
+	return $wptouch_plugin->prowl_output;
+}
+
+function bnc_prowl_message_success() {
+	global $wptouch_plugin;
+	return $wptouch_plugin->prowl_success;
+}
+// End prowl functions
+  
+function bnc_wp_touch_get_pages() {
+	global $table_prefix;
+	global $wpdb;
+	
+	$ids = bnc_wp_touch_get_menu_pages();
+	$a = array();
+	$keys = array();
+	foreach ($ids as $k => $v) {
+		if ($k == 'main_title' || $k == 'enable-post-excerpts' || $k == 'enable-page-coms' || 
+			 $k == 'enable-cats-button'  || $k == 'enable-tags-button'  || $k == 'enable-search-button'  || 
+			 $k == 'enable-login-button' || $k == 'enable-gravatars' || $k == 'enable-ajax-comments' || 
+			 $k == 'enable-main-home' || $k == 'enable-main-rss' || $k == 'enable-main-email' || 
+			 $k == 'enable-main-name' || $k == 'enable-main-tags' || $k == 'enable-main-categories' || 
+			 $k == 'enable-prowl-comments-button' || $k == 'enable-prowl-users-button' || 
+			 $k == 'enable-prowl-message-button' || $k == 'enable-gigpress-button') {
+			} else {
+				if (is_numeric($k)) {
+					$keys[] = $k;
+				}
+			}
+	}
+	 
+	$menu_order = array(); 
+	$results = false;
+
+	if ( count( $keys ) > 0 ) {
+		$query = "select * from {$table_prefix}posts where ID in (" . implode(',', $keys) . ") and post_status = 'publish' order by post_title asc";
+		$results = $wpdb->get_results( $query, ARRAY_A );
+	}
+
+	if ( $results ) {
+		foreach ( $results as $row ) {
+			$row['icon'] = $ids[$row['ID']];
+			$a[$row['ID']] = $row;
+			if (isset($menu_order[$row['menu_order']])) {
+				$menu_order[$row['menu_order']*100 + $inc] = $row;
+			} else {
+				$menu_order[$row['menu_order']*100] = $row;
+			}
+			$inc = $inc + 1;
+		}
+	}
+
+	if (isset($ids['sort-order']) && $ids['sort-order'] == 'page') {
+		asort($menu_order);
+		return $menu_order;
+	} else {
+		return $a;
+	}
+}
+
+function bnc_get_header_title() {
+	$v = bnc_wp_touch_get_menu_pages();
+	return $v['header-title'];
+}
+
+function bnc_get_header_background() {
+	$v = bnc_wp_touch_get_menu_pages();
+	return $v['header-background-color'];
+}
+  
+function bnc_get_header_border_color() {
+	$v = bnc_wp_touch_get_menu_pages();
+	return $v['header-border-color'];
+}
+
+function bnc_get_header_color() {
+	$v = bnc_wp_touch_get_menu_pages();
+	return $v['header-text-color'];
+}
+
+function bnc_get_link_color() {
+	$v = bnc_wp_touch_get_menu_pages();
+	return $v['link-color'];
+}
+
+function bnc_get_h2_font() {
+	$v = bnc_wp_touch_get_menu_pages();
+	return $v['h2-font'];
+}
+
+require_once( 'include/icons.php' );
+  
+function bnc_wp_touch_page() {
+	if (isset($_POST['submit'])) {
+		echo('<div class="wrap"><div id="bnc-global"><div id="wptouchupdated" style="display:none"><p class="saved"><span>');
+		echo __( "Settings saved", "wptouch");
+		echo('</span></p></div>');
+		} 
+	elseif (isset($_POST['reset'])) {
+		echo('<div class="wrap"><div id="bnc-global"><div id="wptouchupdated" style="display:none"><p class="reset"><span>');
+		echo __( "Defaults restored", "wptouch");
+		echo('</span></p></div>');
+	} else {
+		echo('<div class="wrap"><div id="bnc-global">');
+}
+?>
+
+<?php $icons = bnc_get_icon_list(); ?>
+
+	<?php require_once( 'include/submit.php' ); ?>
+	<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
+		<?php require_once( 'html/head-area.php' ); ?>
+		<?php require_once( 'html/general-settings-area.php' ); ?>
+		<?php require_once( 'html/advanced-area.php' ); ?>
+		<?php require_once( 'html/push-area.php' ); ?>
+		<?php require_once( 'html/style-area.php' ); ?>
+		<?php require_once( 'html/icon-area.php' ); ?>
+		<?php require_once( 'html/page-area.php' ); ?>
+		<?php require_once( 'html/ads-stats-area.php' ); ?>
+		<?php require_once( 'html/plugin-compat-area.php' ); ?>		
+		<input type="submit" name="submit" value="<?php _e('Save Options', 'wptouch' ); ?>" id="bnc-button" class="button-primary" />
+	</form>
+	
+	<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
+		<input type="submit" onclick="return confirm('<?php _e('Restore default WPtouch settings?', 'wptouch' ); ?>');" name="reset" value="<?php _e('Restore Defaults', 'wptouch' ); ?>" id="bnc-button-reset" class="button-highlighted" />
+	</form>
+		
+		<?php echo('' . WPtouch('<div class="bnc-plugin-version"> This is ','</div>') . ''); ?>
+
+	<div class="bnc-clearer"></div>
+</div>
+<?php 
+echo('</div>'); } 
+add_action('wp_footer', 'wptouch_switch');
+add_action('admin_head', 'wptouch_admin_files');
+add_action('admin_menu', 'bnc_options_menu'); 
+add_filter( 'plugin_action_links', 'wptouch_settings_link', 9, 2 );
+?>