. */ require 'admin/admin.php'; // Plugin admin options setup global $async_share_options; add_action( 'init', 'async_register_css_styles' ); add_action( 'wp_enqueue_scripts', 'async_share_script_loader' ); add_filter( 'the_content', 'async_share_display' ); /** * Get plugin options from database and store in array * * @return array */ function async_share_get_options() { global $async_share_options; $async_share_options = get_option( 'async_share_options' ); return $async_share_options; } /** * Registers included CSS for front-end display of social widgets * * Initialized by init hook */ function async_register_css_styles() { wp_register_style( 'async_css', plugins_url( 'assets/css/async-share.css', __FILE__ ), false , '20121130', 'all' ); } /** * Loads JavaScript and optionally CSS for front-end display of social widgets * * Initialized by wp_enqueue_scripts hook */ function async_share_script_loader() { wp_enqueue_script( 'async_js', plugins_url( 'assets/js/async-share.js', __FILE__ ), array( 'jquery' ), '', true ); $options = async_share_get_options(); if ( isset( $options['disable_css'] ) ) { return; } else wp_enqueue_style( 'async_css' ); } /** * Sets up link to plugin's options page */ function async_share_plugin_action_links( $links, $file ) { static $this_plugin; if ( !$this_plugin ) $this_plugin = plugin_basename( __FILE__ ); if ( $file == $this_plugin ) { $async_share_settings_link = ''.__( 'Settings' ).''; // make the 'Settings' link appear first array_unshift( $links, $async_share_settings_link ); } return $links; } /** * Verifies an option was selected or at least set * * @param string $param option name * @return bool * */ function async_share_option_check( $param ) { $async_share_options = async_share_get_options(); if ( !isset( $async_share_options[$param] ) ) { return FALSE; } if ( $async_share_options[ $param ] == TRUE ) { return TRUE; } else return FALSE; } /** * Twitter widget display */ function async_share_display_twitter() { $async_share_options = async_share_get_options(); if ( async_share_option_check( 'twitter' ) == TRUE ) { $twitter = '
  • Tweet
  • '; return $twitter; } else return; } /** * Facebook widget display */ function async_share_display_facebook() { $async_share_options = async_share_get_options(); if ( async_share_option_check( 'facebook' ) == TRUE ) { $facebook = '
  • '; return $facebook; } else return; } function async_share_display_fbinit() { $async_share_options = async_share_get_options(); if ( async_share_option_check( 'facebook' ) == TRUE ) { $fbinit = '
    '; return $fbinit; } else return; } /** * Google+ widget display */ function async_share_display_gplus() { $async_share_options = async_share_get_options(); if ( async_share_option_check( 'gplus' ) == TRUE ) { $gplus = '
  • '; return $gplus; } else return; } /** * Linkedin widget display */ function async_share_display_linkedin() { $async_share_options = async_share_get_options(); if ( async_share_option_check( 'linkedin' ) == TRUE ) { $linkedin = '
  • '; return $linkedin; } else return; } /** * HackerNews widget display * * @return $hackernews string */ function async_share_display_hackernews() { $async_share_options = async_share_get_options(); if ( async_share_option_check( 'hackernews' ) == TRUE ) { $hackernews = '
  • Vote on HN
  • '; return $hackernews; } else return; } /** * Sets up display of social widgets * * @return string; */ function async_share_social_box() { global $post; $async_share_options = async_share_get_options(); if ( isset( $post ) and isset( $async_share_options ) ) { $twitter = async_share_display_twitter(); $facebook = async_share_display_facebook(); $fbinit = async_share_display_fbinit(); $gplus = async_share_display_gplus(); $linkedin = async_share_display_linkedin(); $hackernews = async_share_display_hackernews(); /** * Displaying the sharing widgets */ $async_display_share_box = $fbinit.'
    '; } else { $async_display_share_box = ''; } return $async_display_share_box; } /** * Controls which template files the social widgets are displayed upon */ function async_share_display( $content ) { $async_display_share_box = async_share_social_box(); $async_share_options = async_share_get_options(); if ( is_feed() ) { return $content; } elseif ( is_page() ) { if ( is_array( $async_share_options['types'] ) && in_array( 'page', $async_share_options['types'] ) ) { return $content . $async_display_share_box; } return $content; } elseif ( is_home() || is_paged() ) { if ( $async_share_options['paged'] == TRUE ) { return $content . $async_display_share_box; } return $content; } elseif ( is_single() ) { $cpt = get_post_type(); if ( 'post' == $cpt ) { return $content . $async_display_share_box; } elseif ( is_array( $async_share_options['types'] ) && in_array( $cpt, $async_share_options['types'] ) ) { return $content . $async_display_share_box; } } return $content; }