diff --git a/facebook/facebook.php b/facebook/facebook.php index 9c8c8f08..3ed40c91 100755 --- a/facebook/facebook.php +++ b/facebook/facebook.php @@ -46,6 +46,12 @@ * authenticate to your site to establish identity. We will address this * in a future release. */ + + /** TODO + * - Implement a method for the administrator to delete all configuration data the plugin has created, + * e.g. the app_access_token + * - Implement a configuration option to set the polling interval system-wide + */ define('FACEBOOK_MAXPOSTLEN', 420); @@ -57,8 +63,6 @@ function facebook_install() { register_hook('connector_settings', 'addon/facebook/facebook.php', 'facebook_plugin_settings'); register_hook('cron', 'addon/facebook/facebook.php', 'facebook_cron'); register_hook('queue_predeliver', 'addon/facebook/facebook.php', 'fb_queue_hook'); - - if (get_config('facebook', 'realtime_active') == 1) facebook_subscription_add_users(); // Restore settings, if the plugin was installed before } @@ -73,8 +77,6 @@ function facebook_uninstall() { // hook moved unregister_hook('post_local_end', 'addon/facebook/facebook.php', 'facebook_post_hook'); unregister_hook('plugin_settings', 'addon/facebook/facebook.php', 'facebook_plugin_settings'); - - if (get_config('facebook', 'realtime_active') == 1) facebook_subscription_del_users(); } @@ -150,8 +152,12 @@ function facebook_init(&$a) { $s = fetch_url('https://graph.facebook.com/me/feed?access_token=' . $access_token); if($s) { $j = json_decode($s); - logger('facebook_init: wall: ' . print_r($j,true), LOGGER_DATA); - fb_consume_stream($uid,$j,($private_wall) ? false : true); + if (isset($j->data)) { + logger('facebook_init: wall: ' . print_r($j,true), LOGGER_DATA); + fb_consume_stream($uid,$j,($private_wall) ? false : true); + } else { + logger('facebook_init: wall: got no data from Facebook: ' . print_r($j,true), LOGGER_NORMAL); + } } } @@ -1018,15 +1024,23 @@ function fb_consume_all($uid) { $s = fetch_url('https://graph.facebook.com/me/feed?access_token=' . $access_token); if($s) { $j = json_decode($s); - logger('fb_consume_stream: wall: ' . print_r($j,true), LOGGER_DATA); - fb_consume_stream($uid,$j,($private_wall) ? false : true); + if (isset($j->data)) { + logger('fb_consume_stream: wall: ' . print_r($j,true), LOGGER_DATA); + fb_consume_stream($uid,$j,($private_wall) ? false : true); + } else { + logger('fb_consume_stream: wall: got no data from Facebook: ' . print_r($j,true), LOGGER_NORMAL); + } } } $s = fetch_url('https://graph.facebook.com/me/home?access_token=' . $access_token); if($s) { $j = json_decode($s); - logger('fb_consume_stream: feed: ' . print_r($j,true), LOGGER_DATA); - fb_consume_stream($uid,$j,false); + if (isset($j->data)) { + logger('fb_consume_stream: feed: ' . print_r($j,true), LOGGER_DATA); + fb_consume_stream($uid,$j,false); + } else { + logger('fb_consume_stream: feed: got no data from Facebook: ' . print_r($j,true), LOGGER_NORMAL); + } } } diff --git a/frown.tgz b/frown.tgz new file mode 100644 index 00000000..6a2343f0 Binary files /dev/null and b/frown.tgz differ diff --git a/frown/frown.css b/frown/frown.css new file mode 100755 index 00000000..3690b62a --- /dev/null +++ b/frown/frown.css @@ -0,0 +1,14 @@ + + + +#frown-enable-label { + float: left; + width: 200px; + margin-bottom: 25px; +} + +#frown-checkbox { + float: left; +} + + diff --git a/frown/frown.php b/frown/frown.php new file mode 100755 index 00000000..003039df --- /dev/null +++ b/frown/frown.php @@ -0,0 +1,86 @@ + + * + * + */ + + +function frown_install() { + + register_hook('plugin_settings', 'addon/frown/frown.php', 'frown_settings'); + register_hook('plugin_settings_post', 'addon/frown/frown.php', 'frown_settings_post'); + + logger("installed frown"); +} + + +function frown_uninstall() { + + unregister_hook('plugin_settings', 'addon/frown/frown.php', 'frown_settings'); + unregister_hook('plugin_settings_post', 'addon/frown/frown.php', 'frown_settings_post'); + + + logger("removed frown"); +} + + + +/** + * + * Callback from the settings post function. + * $post contains the $_POST array. + * We will make sure we've got a valid user account + * and if so set our configuration setting for this person. + * + */ + +function frown_settings_post($a,$post) { + if(! local_user() || (! x($_POST,'frown-submit'))) + return; + set_pconfig(local_user(),'system','no_smilies',intval($_POST['frown'])); + + info( t('Frown settings updated.') . EOL); +} + + +/** + * + * Called from the Plugin Setting form. + * Add our own settings info to the page. + * + */ + + + +function frown_settings(&$a,&$s) { + + if(! local_user()) + return; + + /* Add our stylesheet to the page so we can make our settings look nice */ + + $a->page['htmlhead'] .= '' . "\r\n"; + + /* Get the current state of our config variable */ + + $enabled = get_pconfig(local_user(),'system','no_smilies'); + $checked = (($enabled) ? ' checked="checked" ' : ''); + + /* Add some HTML to the existing form */ + + $s .= '