'', 'appSecret' => '', 'accessToken' => null, 'xid' => fbComments_getRandXid(), 'includeFbJs' => true, 'includeFbJsOldWay' => false, 'includeFbmlLangAttr' => true, 'includeOpenGraphLangAttr' => true, 'includeOpenGraphMeta' => true, 'includeFbComments' => true, 'hideWpComments' => false, 'combineCommentCounts' => true, 'notify' => true, 'language' => 'en_US', 'displayTitle' => true, 'title' => 'facebook comments:', 'numPosts' => 10, 'width' => 500, 'displayLocation' => 'before', 'displayPagesOrPosts' => 'posts', 'publishToWall' => true, 'reverseOrder' => false, 'hideFbLikeButton' => false, 'containerCss' => 'margin: 20px 0;', 'titleCss' => 'margin-bottom: 15px; font-size: 140%; font-weight: bold; border-bottom: 2px solid #000; padding-bottom: 5px;', 'darkSite' => '', 'noBox' => false, 'dashNumComments' => 10, 'v1plusv2' => false, // 'newUser' => false, 'notifyUserList' => '', 'showDBWidget' => false, 'enableCache' => false, 'commentVersion' => 'new', 'fbCommentCount' => true, 'v2ccstyle' => 'border:none; overflow:hidden; width:130px; padding-left:-15px; height:12px;', 'indexLikebtn' => array( 'display' => 'none', 'layout' => 'button_count', 'showFaces' => true, 'width' => 450, 'verb' => 'like', 'font' => 'arial', 'color' => 'light', 'style' => 'height: 25px; width: 150px; border: medium none; overflow: hidden;' ), 'like' => array( 'layout' => 'standard', 'showFaces' => true, 'width' => 450, 'verb' => 'like', 'font' => 'arial', 'color' => 'light', 'style' => 'height: 62px; width: 100%;' ) ); /********************************** Activation hooks/actions **********************************/ # make sure default settings get loaded on plugin updates $oldver = get_option('fbComments_ver'); if (is_admin() && $oldver != FBCOMMENTS_VER) { fbComments_doUpdate(); } register_activation_hook(__FILE__, 'fbComments_init_hack'); register_deactivation_hook(__FILE__, 'fbComments_deactivate_hack'); # hack may not be needed here register_uninstall_hook(__FILE__, 'fbComments_uninit_hack'); # or here # stupid wordpress, can't call function in an included file in activation hook? function fbComments_init_hack() { fbComments_init(); } function fbComments_deactivate_hack() { fbComments_deactivate(); } function fbComments_uninit_hack() { fbComments_uninit(); } global $fbc_options; # main options array in wp database options table $fbc_options = get_option('fbComments'); # Display a message prompting the user to enter a Facebook application ID and secret upon plugin activation (if they aren't already set) if (get_option('fbComments_displayAppIdWarning')) { add_action('admin_notices', create_function( '', "echo '

".sprintf(__('The Facebook comments box will not be included in your posts until you set a valid application ID and application secret. Please set your application ID and secret now using the options page.', 'facebook-comments'), admin_url('options-general.php?page=facebook-comments'))."

';" ) ); # display the message only upon activation update_option('fbComments_displayAppIdWarning', false); } # Enqueue correct stylesheet if user wants to hide the WordPress commenting form if ($fbc_options['hideWpComments']) { function fbComments_enqueueHideWpCommentsCss() { wp_register_style('fbComments_hideWpComments', FBCOMMENTS_CSS_HIDEWPCOMMENTS, array(), FBCOMMENTS_VER); wp_enqueue_style('fbComments_hideWpComments'); } add_action('init', 'fbComments_enqueueHideWpCommentsCss'); } # Add appropriate language attributes (must use get_option() because $fbc_options[] isn't available at this point) if (($fbc_options['includeFbmlLangAttr']) || ($fbc_options['includeOpenGraphLangAttr'])) { function fbComments_includeLangAttrs($attributes='') { $opts = get_option('fbComments'); if ($opts['includeFbmlLangAttr']) { $attributes .= ' xmlns:fb="http://www.facebook.com/2008/fbml"'; } if ($opts['includeOpenGraphLangAttr']) { $attributes .= ' xmlns:og="http://opengraphprotocol.org/schema/"'; } return $attributes; } add_filter('language_attributes', 'fbComments_includeLangAttrs'); } # Add OpenGraph meta information if ($fbc_options['includeOpenGraphMeta']) { function fbComments_addOpenGraphMeta() { global $wp_query; global $fbc_options; $postId = $wp_query->post->ID; $postTitle = single_post_title('', false); $postUrl = get_permalink($postId); $siteName = get_bloginfo('name'); $appId = $fbc_options['appId']; if (strlen($fbc_options['notifyUserList']) > 0) { echo ""; } echo "", "", "", "", "\n"; } add_action('wp_head', 'fbComments_addOpenGraphMeta'); } /********************************** Settings page **********************************/ add_action('admin_init', 'fbComments_adminPage_init' ); add_action('admin_menu', 'fbComments_adminPage'); # Init plugin options to white list our options function fbComments_adminPage_init() { register_setting('fbComments_options', 'fbComments', 'fbComments_sanatize'); } # Add settings page function fbComments_adminPage() { add_options_page(__('Facebook Comments for WordPress Options'), __('Facebook Comments'), 'manage_options', 'facebook-comments', 'fbComments_includeAdminPage'); } # Draw the settings page function fbComments_includeAdminPage() { include('facebook-comments-admin.php'); } # Sanitize and validate input. Accepts an array, returns a sanitized array. function fbComments_sanatize($input) { $input['title'] = esc_attr($input['title']); $input['containerCss'] = esc_attr($input['containerCss']); $input['titleCss'] = esc_attr($input['titleCss']); $input['dashNumComments'] = absint($input['dashNumComments']); $input['numPosts'] = absint($input['numPosts']); $input['width'] = absint($input['width']); return $input; } # add "Settings" link to plugin on plugins page add_filter('plugin_action_links', 'fbComments_settingsLink', 0, 2); function fbComments_settingsLink($actionLinks, $file) { if (($file == 'facebook-comments-for-wordpress/facebook-comments.php') && function_exists('admin_url')) { $settingsLink = '' . __('Settings') . ''; # Add 'Settings' link to plugin's action links array_unshift($actionLinks, $settingsLink); } return $actionLinks; } # display changelog on "Plugins" page add_action('after_plugin_row', 'display_changelog', 50, 2); # make sure both are set to avoid fatal error upon getting fbapi if (empty($fbc_options['appId']) || empty($fbc_options['appSecret'])) { fbComments_log("App ID or secret not set, not loading widgets"); } else { # hook for admin dashboard widget add_action('init', 'fbcomments_dashboard_widget_init'); # load jquery add_action('wp_dashboard_setup', 'fbcomments_add_dashboard_widgets'); # register FBCRC_Widget widget add_filter('the_posts', 'conditionally_add_scripts_and_styles'); # the_posts gets triggered before wp_head add_action('widgets_init', create_function('', 'return register_widget("FBCRC_Widget");')); } /********************************** Program entry point **********************************/ # Ensure we're able to display the comment box if ($fbc_options['includeFbComments']) { add_filter('comments_array', 'facebook_comments'); } # Display like button on index if ('top' == $fbc_options['indexLikebtn']['display'] || 'bottom' == $fbc_options['indexLikebtn']['display']) { add_filter('the_content', 'fbc_show_like_index'); } # Display facebook comment count instead of WordPress one if ($fbc_options['fbCommentCount'] && $fbc_options['commentVersion'] == 'v2') { add_filter('comments_number', 'fbc_facebook_comment_count'); # Else combine the Facebook and WordPress comment counts, if desired } else if ($fbc_options['combineCommentCounts'] && !empty($fbc_options['appId']) && !empty($fbc_options['appSecret']) && $fbc_options['commentVersion'] != 'v2') { # we don't want comment caching to load if it's useless--as it is with v2 add_filter('get_comments_number', 'fbComments_combineCommentCounts'); } ?>