'%TITLE% %URL%', 'tweetCats ' => array( '0' ), 'clude' => 'in', 'message_preference' => 'author' ); // Get values from the WP options table in the database, re-assign if found $user_settings = get_user_option( 'leenkme_twitter', $user_id ); return wp_parse_args( $user_settings, $defaults ); } // Print the admin page for the plugin function print_twitter_settings_page() { global $dl_pluginleenkme; global $current_user; get_currentuserinfo(); $user_id = $current_user->ID; // Get the user options $user_settings = $this->get_user_settings( $user_id ); $twitter_settings = get_option( 'leenkme_twitter' ); if ( isset( $_REQUEST['update_twitter_settings'] ) ) { if ( isset( $_REQUEST['leenkme_tweetformat'] ) ) $user_settings['tweetFormat'] = $_REQUEST['leenkme_tweetformat']; if ( isset( $_REQUEST['clude'] ) && isset( $_REQUEST['tweetCats'] ) ) { $user_settings['clude'] = $_REQUEST['clude']; $user_settings['tweetCats'] = $_REQUEST['tweetCats']; } else { $user_settings['clude'] = 'in'; $user_settings['tweetCats'] = array( '0' ); } if ( isset( $_REQUEST['message_preference'] ) ) $user_settings['message_preference'] = $_REQUEST['message_preference']; update_user_option( $user_id, 'leenkme_twitter', $user_settings ); // update settings notification ?>
"> ">Reset "> | |
| /> | $tweet_len ) $tweet_len_class = 'lm_tweet_count_superwarn'; else if ( 20 > $tweet_len ) $tweet_len_class = 'lm_tweet_count_warn'; else $tweet_len_class = 'lm_tweet_count'; ?> post_status ) { ?> |
" . $result->get_error_message() . "
"; } else if ( isset( $result['response']['code'] ) ) { $out[] = "" . $result['body'] . "
"; } else { $out[] = "" . __( 'Error received! Please check your Twitter settings and try again. If this continues to fail, contact leenk.me support.', 'leenkme' ) . "
"; } } die( join( (array)$out ) ); } else { die( __( 'ERROR: Unknown error, please try again. If this continues to fail, contact leenk.me support.', 'leenkme' ) ); } } else { die( __( 'ERROR: Unable to determine tweet. If this continues to fail, contact leenk.me support.', 'leenkme' ) ); } } else { die( __( 'ERROR: Unable to determine Post ID.', 'leenkme' ) ); } } // Add function to publish to twitter function leenkme_publish_to_twitter( $connect_arr = array(), $post, $tweet = false, $debug = false ) { global $wpdb, $dl_pluginleenkme, $dl_pluginleenkmeTwitter; if ( get_post_meta( $post['ID'], '_twitter_exclude', true ) ) $exclude_twitter = true; else $exclude_twitter = false; if ( !$exclude_twitter ) { $leenkme_settings = $dl_pluginleenkme->get_leenkme_settings(); if ( in_array( get_post_type( $post['ID'] ), $leenkme_settings['post_types'] ) ) { $options = get_option( 'leenkme_twitter' ); $leenkme_users = leenkme_get_users(); foreach ( $leenkme_users as $leenkme_user ) { $user_settings = $dl_pluginleenkme->get_user_settings( $leenkme_user->ID ); if ( empty( $user_settings['leenkme_API'] ) ) continue; //Skip user if they do not have an API key set $api_key = $user_settings['leenkme_API']; $options = $dl_pluginleenkmeTwitter->get_user_settings( $leenkme_user->ID ); if ( !empty( $options ) ) { if ( ( !empty( $options['tweetCats'] ) && isset( $options['clude'] ) ) && !( 'in' == $options['clude'] && in_array( '0', $options['tweetCats'] ) ) ) { if ( 'ex' == $options['clude'] && in_array( '0', (array)$options['tweetCats'] ) ) { if ( $debug ) echo '' . __( 'You have your Leenk.me Twitter settings set to Exclude All Categories.', 'leenkme' ) . '
'; continue; } $match = false; $post_categories = wp_get_post_categories( $post['ID'] ); foreach ( $post_categories as $cat ) { if ( in_array( (int)$cat, $options['tweetCats'] ) ) { $match = true; } } if ( ( 'ex' == $options['clude'] && $match ) ) { if ( $debug ) echo '' . __( '
Post in an excluded category, check your Leenk.me Twitter settings or remove the post from the excluded category.', 'leenkme' ) . '
'; continue; } else if ( ( 'in' == $options['clude'] && !$match ) ) { if ( $debug ) echo '' . __( 'Post not found in an included category, check your Leenk.me Twitter settings or add the post into the included category.', 'leenkme' ) . '
'; continue; } } if ( $leenkme_user->ID != $post['post_author'] && ( 'mine' == $options['message_preference'] || ( 'manual' == $options['message_preference'] && '' == get_post_meta( $post['ID'], '_lm_tweet_type', true ) ) ) ) $prefer_user = true; else $prefer_user = false; if ( $prefer_user ) { $tweet = stripslashes( html_entity_decode( get_leenkme_expanded_tweet( $post['ID'], $options['tweetFormat'], get_the_title( $post['ID'] ) ), ENT_COMPAT, get_bloginfo('charset') ) ); } else { if ( empty( $tweet ) && !( $tweet = get_post_meta( $post['ID'], '_leenkme_tweet', true ) ) ) $tweet = get_leenkme_expanded_tweet( $post['ID'], $options['tweetFormat'], get_the_title( $post['ID'] ) ); $tweet = stripslashes( html_entity_decode( $tweet, ENT_COMPAT, get_bloginfo('charset') ) ); } if ( !has_filter( 'get_shortlink', 'leenkme_get_shortlink_handler', 1, 4 ) ) { if ( !( $url = get_post_meta( $post['ID'], '_leenkme_shortened_url', true ) ) ) $url = leenkme_url_shortener( $post['ID'] ); echo $tweet; if ( preg_match( '/%URL%/i', $tweet ) ) { $urlLen = strlen( $url ); $tweetLen = strlen( utf8_decode( $tweet ) ); $totalLen = $urlLen + $tweetLen - 5; // subtract 5 for "%URL%". if ( 140 >= $totalLen ) $tweet = str_ireplace( "%URL%", $url, $tweet ); else $tweet = str_ireplace( "%URL%", "", $tweet ); // Too Long (need to get rid of URL). } echo $tweet; } $connect_arr[$api_key]['twitter_status'] = $tweet; } } } } return $connect_arr; } // Actions and filters if ( isset( $dl_pluginleenkmeTwitter ) ) { add_action( 'save_post', array( $dl_pluginleenkmeTwitter, 'leenkme_twitter_meta_tags' ) ); // Whenever you publish a post, post to twitter add_filter( 'leenkme_connect', 'leenkme_publish_to_twitter', 10, 2 ); add_action( 'wp_ajax_tweet', 'leenkme_ajax_tweet' ); add_action( 'wp_ajax_retweet', 'leenkme_ajax_retweet' ); }