Plugin Directory

Changeset 589800


Ignore:
Timestamp:
08/24/2012 02:18:49 PM (14 years ago)
Author:
O-Zone
Message:

Bugs fixed. Start Facebook connect support

Location:
wp-meetup-activity/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • wp-meetup-activity/trunk/default.css

    r588826 r589800  
     1.wpmeetupactivity-icon {
     2    vertical-align: middle;
     3    border: 0px;
     4    padding: 2px;
     5}
    16
    27.wpmeetupactivity-setup-fieldset {
  • wp-meetup-activity/trunk/readme.txt

    r589202 r589800  
    3939== Changelog ==
    4040
     41= 0.1.2 =
     42*
     43
    4144= 0.1.1 =
    4245* Fixed bug on ranking
  • wp-meetup-activity/trunk/wp-meetup-activity.php

    r589202 r589800  
    44Plugin URI: http://www.zerozone.it/wordpress-meetup-plugin/
    55Description: Display group activity from Meetup.com in a widget for your wordpress
    6 Version: 0.1.1
     6Version: 0.1.2
    77Author: Michele "O-Zone" Pinassi
    88Author URI: http://www.zerozone.it/
     
    2424*/
    2525
    26 include(dirname(__FILE__) . DIRECTORY_SEPARATOR . "meetup_api/Meetup.php");
    27 
     26/* Meetup API */
     27include(dirname(__FILE__).DIRECTORY_SEPARATOR."meetup_api/Meetup.php");
     28
     29/* Facebook PHP SDK */
     30require_once(dirname(__FILE__).DIRECTORY_SEPARATOR.'facebook-sdk/facebook.php');
    2831
    2932add_option('wpmeetupactivity_apikey', '', '', 'yes');
     
    3235add_action('plugins_loaded', 'wpmeetupactivity_update_db_check');
    3336add_action('init', 'wpmeetupactivity_register_styles');
     37add_action('init', 'wpmeetupactivity_fb_init');
    3438
    3539register_activation_hook(__FILE__,'wpmeetupactivity_install');
     
    3842global $wpdb;
    3943
    40 define(WP_MEETUP_ACTIVITY,'0.1.1');
     44define(WP_MEETUP_ACTIVITY,'0.1.2');
    4145define(WP_MEETUP_ACTIVITY_TABLE, $wpdb->prefix."meetup_activity");
    4246
     
    179183                if(intval($messageId) > intval($result['message_id'])) {
    180184                    /* Update ! */
    181                     $ranking = $result['ranking']; /* Min val=0 Max val=1 */
     185                    $ranking = $result['ranking'];
    182186                    $tdelta = $result['tdelta'];
    183 
    184                     $ranking += (1/$tdelta);
    185 
    186                     $wpdb->query($wpdb->prepare("UPDATE ".WP_MEETUP_ACTIVITY_TABLE."_act SET message_id=%d,author=%s,ranking=%f,chg_date=NOW() WHERE group_id=$groupId AND thread_id=$threadId;",$messageId,$act['member_name'],$ranking));
     187                    if($tdelta > 0) {
     188                    $ranking += (1/$tdelta);
     189                    }
     190                   
     191                    $wpdb->query($wpdb->prepare("UPDATE ".WP_MEETUP_ACTIVITY_TABLE."_act SET message_id=%d,author=%s,ranking=%f,item_type=%s,chg_date=NOW() WHERE group_id=$groupId AND thread_id=$threadId;",$messageId,$act['member_name'],$ranking,$act['item_type']));
    187192                }
    188193                } else {
    189                 /* Add new thread row */
    190                 $wpdb->query($wpdb->prepare("INSERT INTO ".WP_MEETUP_ACTIVITY_TABLE."_act (group_id, thread_id, message_id, author, item_type, item_title, item_url, ranking, chg_date, add_date) VALUES ( %d, %d, %d, %s, %s, %s, %s, 0, NOW(), NOW())", $groupId, $threadId, $messageId, $act['member_name'], $act['item_type'], $act['discussion_title'], $act['link']));
     194                /* Add new thread row - Ranking: 1 */
     195                $wpdb->query($wpdb->prepare("INSERT INTO ".WP_MEETUP_ACTIVITY_TABLE."_act (group_id, thread_id, message_id, author, item_type, item_title, item_url, ranking, chg_date, add_date) VALUES ( %d, %d, %d, %s, %s, %s, %s, 1, NOW(), NOW())", $groupId, $threadId, $messageId, $act['member_name'], $act['item_type'], $act['discussion_title'], $act['link']));
    191196                }
    192197            }
    193198            }
    194199        }
     200        // Degrade ranking for older items
     201        $wpdb->query($wpdb->prepare("UPDATE ".WP_MEETUP_ACTIVITY_TABLE."_act SET ranking=ranking-0.1 WHERE DATEDIFF(NOW(),chg_date) > 7;"));
    195202        }  catch (Exception $e) {
    196203        echo "Meetup API error: $e";
     
    222229}
    223230
     231function wpmeetupactivity_get_plugin_dir($type='url') {
     232    if ( !defined('WP_CONTENT_URL') )
     233        define( 'WP_CONTENT_URL', get_option('siteurl') . '/wp-content');
     234    if ( !defined('WP_CONTENT_DIR') )
     235        define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
     236    if ($type=='path') { return WP_CONTENT_DIR.'/plugins/'.plugin_basename(dirname(__FILE__)); }
     237    else { return WP_CONTENT_URL.'/plugins/'.plugin_basename(dirname(__FILE__)); }
     238   
     239}
     240
    224241function wpmeetupactivity_widget($args) {
    225242    global $wpdb;
     
    237254    $myPrefs = get_option('wpmeetupactivity_prefs');
    238255   
     256    $orderBy = $myPrefs['orderBy'];
     257    if(empty($orderBy)) {
     258    $orderBy = 'add_date';
     259    }
     260   
    239261    if(count($groupsArray) > 0) {
    240     $activities = $wpdb->get_results("SELECT * FROM ".WP_MEETUP_ACTIVITY_TABLE."_act ORDER BY ranking,chg_date DESC;",ARRAY_A);
     262    $activities = $wpdb->get_results("SELECT * FROM ".WP_MEETUP_ACTIVITY_TABLE."_act ORDER BY ".$orderBy." DESC;",ARRAY_A);
    241263   
    242264    if($activities) {
     
    257279        */
    258280        $title = wpmeetupactivity_stripbbcode($act["item_title"]);
    259         echo "<li><a href='".$act["item_url"]."'";
     281        echo "<li>";
     282        if($act['ranking'] > 1) { /* Hot topic ! */
     283            echo "<img src='".wpmeetupactivity_get_plugin_dir()."/img/hot.png' class='wpmeetupactivity-icon'>";
     284        } else if($act['item_type'] == 'new_discussion') {
     285            echo "<img src='".wpmeetupactivity_get_plugin_dir()."/img/new.png' class='wpmeetupactivity-icon'>";
     286        } else {
     287            echo "<img src='".wpmeetupactivity_get_plugin_dir()."/img/reply.png' class='wpmeetupactivity-icon'>";
     288        }
     289       
     290        echo "<a href='".$act["item_url"]."'";
    260291        if($myPrefs["openInNewWindow"]) {
    261292            echo " target='_new'";
     
    314345}
    315346
    316 
     347/*
     348
     349Facebook functions for auto-post of new threads on FB page
     350
     351*/
     352
     353
     354function wpmeetupactivity_fb_posttopage($message,$title,$link,$tags,$description='') {
     355    global $facebook;
     356
     357    $options = get_option('wpmeetupactivity_fb_options');
     358
     359
     360}
     361
     362function wpmeetupactivity_fb_getuserpages() {
     363    global $facebook;
     364
     365    $options = get_option('wpmeetupactivity_fb_options');
     366
     367    $accounts = array();
     368
     369    if ( ! isset( $facebook ) )
     370        return $accounts;
     371
     372    $facebook->setAccessToken($options['access_token']);
     373
     374    try {
     375        $accounts = $facebook->api('/me/accounts', 'GET', array('ref' => 'fbwpp'));
     376    } catch (FacebookApiException $e) {
     377        echo $e;
     378        return $accounts;
     379    }
     380
     381    return $accounts['data'];
     382}
     383
     384
     385function wpmeetupactivity_fb_init() {
     386    global $facebook;
     387
     388    $options = get_option('wpmeetupactivity_fb_options');
     389
     390    // appId and secret are required by BaseFacebook
     391    if ( ( ! empty( $options['app_id'] ) && ! empty( $options['app_secret'] ) ) ) {
     392    $facebook = new Facebook(array(
     393      'appId'  => $options['app_id'],
     394      'secret' => $options['app_secret'],
     395    ));
     396   
     397    $options['access_token'] = $facebook->getAccessToken();
     398   
     399    update_option('wpmeetupactivity_fb_options',$options);
     400    }
     401}
     402
     403/*
     404
     405WP-Meetup-Activity options page
     406
     407*/
    317408function wpmeetupactivity_plugin_options() {
    318409    global $wpdb;
     410    global $facebook;
    319411
    320412    load_plugin_textdomain($wpmeetupactivity_textdomain, PLUGINDIR . '/' . dirname(plugin_basename(__FILE__)), dirname(plugin_basename(__FILE__)));
     
    355447
    356448    $myPrefs["displayAct"] = intval($_POST["wpmeetupactivity_prefs_displayact"]);
     449    $myPrefs["orderBy"] = intval($_POST["wpmeetupactivity_prefs_orderby"]);
    357450
    358451    // Salva opzioni
     
    361454    update_option('wpmeetupactivity_groups',$myGroups);
    362455    update_option('wpmeetupactivity_prefs',$myPrefs);
     456
     457    // FB options
     458   
     459    $fb_options['app_id'] = $_POST['wpmeetupactivity_fb_appid'];
     460    $fb_options['app_secret'] = $_POST['wpmeetupactivity_fb_appsecret'];
     461
     462    update_option('wpmeetupactivity_fb_options',$fb_options);
     463   
     464    // Saved !
    363465
    364466    echo "<div class=\"updated\"><p><strong>";
     
    453555    </select>
    454556    </p>
     557    <p>
     558    Order activities by: <select name='wpmeetupactivity_prefs_orderby'>
     559        <option value='add_date' ".wpmeetupactivity_is_selected($myPrefs["orderBy"],'add_date').">Add date</option>
     560        <option value='chg_date' ".wpmeetupactivity_is_selected($myPrefs["orderBy"],'chg_date').">Change date</option>
     561        <option value='ranking' ".wpmeetupactivity_is_selected($myPrefs["orderBy"],'ranking').">Ranking</option>
     562    </select>
     563    </p>
     564   
     565    </fieldset>";
     566   
     567    $fb_options = get_option('wpmeetupactivity_fb_options');
     568
     569    echo "<fieldset class='wpmeetupactivity-setup-fieldset'><legend> Facebook settings </legend>";
     570   
     571    if ((empty($fb_options['app_id']) || empty($fb_options['app_secret'])) && current_user_can( 'manage_options' ) ) {
     572    echo "<div class=\"error\"><p><strong>";
     573    echo __('Need to configure Facebook Setting to use the post to page function !', $wpmeetupactivity_textdomain);
     574    echo "</strong></p></div>";
     575    } else {
     576    $user = $facebook->getUser();
     577
     578    if ($user) {
     579        try {
     580        // Proceed knowing you have a logged in user who's authenticated.
     581        echo "<b>User: ".$facebook->api('/me')."</b><br/>";
     582        } catch (FacebookApiException $e) {
     583        echo $e;
     584        }
     585    } else {
     586        $params = array( 'scope' => 'read_stream, friends_likes, publish_stream, offline_access' );
     587        echo "<a href='".$facebook->getLoginUrl($params)."'>Connect with Facebook App</a>";
     588    }
     589   
     590    print_r(wpmeetupactivity_fb_getuserpages());
     591    }
     592    echo "
     593    <p>
     594    App Id: <input type='text' size='64' name='wpmeetupactivity_fb_appid' value='".$fb_options['app_id']."' />
     595    </p>
     596    <p>
     597    App Secret: <input type='text' size='128' name='wpmeetupactivity_fb_appsecret' value='".$fb_options['app_secret']."' />
     598    </p>
     599    <p>
     600    Access Token is <b>".$fb_options['access_token']."</b>
     601    </p>
    455602    </fieldset>
    456603    <p class='submit'><input type='submit' name='Submit' value='Save changes' /></p>
    457604    </form>
    458605    </div><!-- /WRAP -->";
     606   
    459607}
    460608
Note: See TracChangeset for help on using the changeset viewer.