toggles "post to facebook, post to twitter", etc.

This commit is contained in:
Friendika 2011-02-11 02:35:19 -08:00
parent 40574589e2
commit c16e86add8
11 changed files with 127 additions and 15 deletions

View file

@ -3,6 +3,9 @@
/** /**
* This module still needs a lot of work, but is functional today. * This module still needs a lot of work, but is functional today.
* Please review this section if you upgrade because things will change. * Please review this section if you upgrade because things will change.
* If you have issues upgrading, remove facebook from the addon list,
* view a page on your site, then add it back to the list. This will reset
* all of the plugin 'hooks'.
* *
* 1. register an API key from developer.facebook.com * 1. register an API key from developer.facebook.com
* a. We'd be very happy if you include "Friendika" in the application name * a. We'd be very happy if you include "Friendika" in the application name
@ -77,7 +80,7 @@ function facebook_init(&$a) {
if(strpos($token,'&') !== false) if(strpos($token,'&') !== false)
$token = substr($token,0,strpos($token,'&')); $token = substr($token,0,strpos($token,'&'));
set_pconfig($uid,'facebook','access_token',$token); set_pconfig($uid,'facebook','access_token',$token);
set_pconfig($uid,'facebook','post','true'); set_pconfig($uid,'facebook','post','1');
} }
// todo: is this a browser session or a server session? where do we go? // todo: is this a browser session or a server session? where do we go?
@ -118,12 +121,41 @@ function facebook_content(&$a) {
} }
function facebook_install() { function facebook_install() {
register_hook('post_local_end', 'addon/facebook/facebook.php', 'facebook_post_hook'); register_hook('post_local_end', 'addon/facebook/facebook.php', 'facebook_post_hook');
register_hook('jot_networks', 'addon/facebook/facebook.php', 'facebook_jot_nets');
register_hook('post_local_start','addon/facebook/facebook.php', 'facebook_post_local');
} }
function facebook_uninstall() { function facebook_uninstall() {
unregister_hook('post_local_end', 'addon/facebook/facebook.php', 'facebook_post_hook'); unregister_hook('post_local_end', 'addon/facebook/facebook.php', 'facebook_post_hook');
unregister_hook('jot_networks', 'addon/facebook/facebook.php', 'facebook_jot_nets');
unregister_hook('post_local_start','addon/facebook/facebook.php', 'facebook_post_local');
}
function facebook_jot_nets(&$a,&$b) {
if(! local_user())
return;
$fb_post = get_pconfig(local_user(),'facebook','post');
if(intval($fb_post) == 1) {
$fb_defpost = get_pconfig(local_user(),'facebook','post_by_default');
$selected = ((intval($fb_defpost == 1)) ? ' selected="selected" ' : '');
$b .= '<div class="profile-jot-net"><input type="checkbox" name="facebook_enable" $selected value="1" /> '
. t('Post to Facebook') . '</div>';
}
}
function facebook_post_local(&$a,&$b) {
if(! local_user())
return;
if((x($b,'facebook_enable')) && (intval($b['facebook_enable'])))
set_pconfig(local_user(),'facebook','enable','1');
else
del_pconfig(local_user(),'facebook','enable');
} }
@ -143,10 +175,11 @@ function facebook_post_hook(&$a,&$b) {
if($appid && $secret) { if($appid && $secret) {
$fb_post = get_pconfig(local_user(),'facebook','post'); $fb_post = intval(get_pconfig(local_user(),'facebook','post'));
$fb_token = get_pconfig(local_user(),'facebook','access_token'); $fb_enable = intval(get_pconfig(local_user(),'facebook','enable'));
$fb_token = get_pconfig(local_user(),'facebook','access_token');
if($fb_post && $fb_token) { if($fb_post && $fb_token && $fb_enable) {
require_once('library/facebook.php'); require_once('library/facebook.php');
require_once('include/bbcode.php'); require_once('include/bbcode.php');

View file

@ -40,6 +40,8 @@ function twitter_install() {
register_hook('plugin_settings', 'addon/twitter/twitter.php', 'twitter_settings'); register_hook('plugin_settings', 'addon/twitter/twitter.php', 'twitter_settings');
register_hook('plugin_settings_post', 'addon/twitter/twitter.php', 'twitter_settings_post'); register_hook('plugin_settings_post', 'addon/twitter/twitter.php', 'twitter_settings_post');
register_hook('post_local_end', 'addon/twitter/twitter.php', 'twitter_post_hook'); register_hook('post_local_end', 'addon/twitter/twitter.php', 'twitter_post_hook');
register_hook('jot_networks', 'addon/twitter/twitter.php', 'twitter_jot_nets');
register_hook('post_local_start', 'addon/twitter/twitter.php', 'twitter_post_start');
logger("installed twitter"); logger("installed twitter");
} }
@ -48,8 +50,39 @@ function twitter_uninstall() {
unregister_hook('plugin_settings', 'addon/twitter/twitter.php', 'twitter_settings'); unregister_hook('plugin_settings', 'addon/twitter/twitter.php', 'twitter_settings');
unregister_hook('plugin_settings_post', 'addon/twitter/twitter.php', 'twitter_settings_post'); unregister_hook('plugin_settings_post', 'addon/twitter/twitter.php', 'twitter_settings_post');
unregister_hook('post_local_end', 'addon/twitter/twitter.php', 'twitter_post_hook'); unregister_hook('post_local_end', 'addon/twitter/twitter.php', 'twitter_post_hook');
unregister_hook('jot_networks', 'addon/twitter/twitter.php', 'twitter_jot_nets');
unregister_hook('post_local_start', 'addon/twitter/twitter.php', 'twitter_post_start');
} }
function twitter_jot_nets(&$a,&$b) {
if(! local_user())
return;
$tw_post = get_pconfig(local_user(),'twitter','post');
if(intval($tw_post) == 1) {
$tw_defpost = get_pconfig(local_user(),'twitter','post_by_default');
$selected = ((intval($tw_defpost == 1)) ? ' selected="selected" ' : '');
$b .= '<div class="profile-jot-net"><input type="checkbox" name="twitter_enable" $selected value="1" /> '
. t('Post to Twitter') . '</div>';
}
}
function twitter_post_start(&$a,&$b) {
if(! local_user())
return;
if((x($b,'twitter_enable')) && (intval($b['twitter_enable'])))
set_pconfig(local_user(),'twitter','enable','1');
else
del_pconfig(local_user(),'twitter','enable');
}
function twitter_settings_post ($a,$post) { function twitter_settings_post ($a,$post) {
if(! local_user()) if(! local_user())
return; return;
@ -181,8 +214,9 @@ function twitter_post_hook(&$a,&$b) {
if($ckey && $csecret && $otoken && $osecret) { if($ckey && $csecret && $otoken && $osecret) {
$twitter_post = get_pconfig(local_user(),'twitter','post'); $twitter_post = get_pconfig(local_user(),'twitter','post');
$twitter_enable = intval(get_pconfig(local_user(),'twitter','enable'));
if($twitter_post) { if($twitter_post && $twitter_enable) {
require_once('addon/twitter/twitteroauth.php'); require_once('addon/twitter/twitteroauth.php');
require_once('include/bbcode.php'); require_once('include/bbcode.php');
$tweet = new TwitterOAuth($ckey,$csecret,$otoken,$osecret); $tweet = new TwitterOAuth($ckey,$csecret,$otoken,$osecret);

View file

@ -516,6 +516,7 @@ function check_config(&$a) {
} }
} }
} }
load_hooks();
return; return;
}} }}
@ -2189,6 +2190,7 @@ function unregister_hook($hook,$file,$function) {
if(! function_exists('load_hooks')) { if(! function_exists('load_hooks')) {
function load_hooks() { function load_hooks() {
$a = get_app(); $a = get_app();
$a->hooks = array();
$r = q("SELECT * FROM `hook` WHERE 1"); $r = q("SELECT * FROM `hook` WHERE 1");
if(count($r)) { if(count($r)) {
foreach($r as $rr) { foreach($r as $rr) {

View file

@ -79,8 +79,10 @@ function network_content(&$a, $update = 0) {
$celeb = ((($a->user['page-flags'] == PAGE_SOAPBOX) || ($a->user['page-flags'] == PAGE_COMMUNITY)) ? true : false); $celeb = ((($a->user['page-flags'] == PAGE_SOAPBOX) || ($a->user['page-flags'] == PAGE_COMMUNITY)) ? true : false);
$jotplugins = ""; $jotplugins = '';
$jotnets = '';
call_hooks('jot_tool', $jotplugins); call_hooks('jot_tool', $jotplugins);
call_hooks('jot_networks', $jotnets);
$tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins)); $tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins));
@ -90,6 +92,7 @@ function network_content(&$a, $update = 0) {
'$defloc' => $a->user['default-location'], '$defloc' => $a->user['default-location'],
'$visitor' => 'block', '$visitor' => 'block',
'$emailcc' => t('CC: email addresses'), '$emailcc' => t('CC: email addresses'),
'$jotnets' => $jotnets,
'$emtitle' => t('Example: bob@example.com, mary@example.com'), '$emtitle' => t('Example: bob@example.com, mary@example.com'),
'$lockstate' => $lockstate, '$lockstate' => $lockstate,
'$acl' => populate_acl((($group) ? $group_acl : $a->user), $celeb), '$acl' => populate_acl((($group) ? $group_acl : $a->user), $celeb),

View file

@ -135,9 +135,12 @@ function profile_content(&$a, $update = 0) {
else else
$lockstate = 'unlock'; $lockstate = 'unlock';
$jotplugins = ""; $jotplugins = '';
$jotnets = '';
call_hooks('jot_tool', $jotplugins); call_hooks('jot_tool', $jotplugins);
call_hooks('jot_networks', $jotnets);
$tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins)); $tpl = replace_macros($tpl,array('$jotplugins' => $jotplugins));
$o .= replace_macros($tpl,array( $o .= replace_macros($tpl,array(
@ -147,6 +150,7 @@ function profile_content(&$a, $update = 0) {
'$visitor' => (($is_owner || $commvisitor) ? 'block' : 'none'), '$visitor' => (($is_owner || $commvisitor) ? 'block' : 'none'),
'$lockstate' => $lockstate, '$lockstate' => $lockstate,
'$emailcc' => t('CC: email addresses'), '$emailcc' => t('CC: email addresses'),
'$jotnets' => $jotnets,
'$emtitle' => t('Example: bob@example.com, mary@example.com'), '$emtitle' => t('Example: bob@example.com, mary@example.com'),
'$bang' => '', '$bang' => '',
'$acl' => (($is_owner) ? populate_acl($a->user, $celeb) : ''), '$acl' => (($is_owner) ? populate_acl($a->user, $celeb) : ''),

View file

@ -42,12 +42,16 @@
<div id="profile-rotator-wrapper" style="display: $visitor;" > <div id="profile-rotator-wrapper" style="display: $visitor;" >
<img id="profile-rotator" src="images/rotator.gif" alt="Bitte warten" title="Bitte warten" style="display: none;" /> <img id="profile-rotator" src="images/rotator.gif" alt="Bitte warten" title="Bitte warten" style="display: none;" />
</div> </div>
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Berechtigungseinstellungen" title="Berechtigungseinstellungen" onClick="openClose('profile-jot-acl-wrapper'); openClose('profile-jot-email-wrapper');" />$bang</div> <div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Berechtigungseinstellungen" title="Berechtigungseinstellungen" onClick="openClose('profile-jot-acl-wrapper'); openClose('profile-jot-email-wrapper'); openClose('profile-jot-networks');" />$bang</div>
<div id="profile-jot-perms-end"></div> <div id="profile-jot-perms-end"></div>
<div id="profile-jot-email-wrapper" style="display: none;" > <div id="profile-jot-email-wrapper" style="display: none;" >
<div id="profile-jot-email-label">$emailcc</div><input type="text" name="emailcc" id="profile-jot-email" title="$emtitle"> <div id="profile-jot-email-label">$emailcc</div><input type="text" name="emailcc" id="profile-jot-email" title="$emtitle">
<div id="profile-jot-email-end"></div> <div id="profile-jot-email-end"></div>
</div> </div>
<div id="profile-jot-networks" style="display: none;" >
$jotnets
</div>
<div id="profile-jot-networks-end"></div>
<div id="profile-jot-acl-wrapper" style="display: none;" >$acl</div> <div id="profile-jot-acl-wrapper" style="display: none;" >$acl</div>
</div> </div>

View file

@ -40,12 +40,16 @@
<div id="profile-rotator-wrapper" style="display: $visitor;" > <div id="profile-rotator-wrapper" style="display: $visitor;" >
<img id="profile-rotator" src="images/rotator.gif" alt="Please wait" title="Please wait" style="display: none;" /> <img id="profile-rotator" src="images/rotator.gif" alt="Please wait" title="Please wait" style="display: none;" />
</div> </div>
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Permission Settings" title="Permission Settings" onClick="openClose('profile-jot-acl-wrapper'); openClose('profile-jot-email-wrapper');" />$bang</div> <div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Permission Settings" title="Permission Settings" onClick="openClose('profile-jot-acl-wrapper'); openClose('profile-jot-email-wrapper'); openClose('profile-jot-networks');" />$bang</div>
<div id="profile-jot-perms-end"></div> <div id="profile-jot-perms-end"></div>
<div id="profile-jot-email-wrapper" style="display: none;" > <div id="profile-jot-email-wrapper" style="display: none;" >
<div id="profile-jot-email-label">$emailcc</div><input type="text" name="emailcc" id="profile-jot-email" title="$emtitle"> <div id="profile-jot-email-label">$emailcc</div><input type="text" name="emailcc" id="profile-jot-email" title="$emtitle">
<div id="profile-jot-email-end"></div> <div id="profile-jot-email-end"></div>
</div> </div>
<div id="profile-jot-networks" style="display: none;" >
$jotnets
</div>
<div id="profile-jot-networks-end"></div>
<div id="profile-jot-acl-wrapper" style="display: none;" >$acl</div> <div id="profile-jot-acl-wrapper" style="display: none;" >$acl</div>
</div> </div>

View file

@ -42,13 +42,16 @@
<div id="profile-rotator-wrapper" style="display: $visitor;" > <div id="profile-rotator-wrapper" style="display: $visitor;" >
<img id="profile-rotator" src="images/rotator.gif" alt="Please wait" title="Please wait" style="display: none;" /> <img id="profile-rotator" src="images/rotator.gif" alt="Please wait" title="Please wait" style="display: none;" />
</div> </div>
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Permission Settings" title="Permission Settings" onClick="openClose('profile-jot-acl-wrapper'); openClose('profile-jot-email-wrapper');" />$bang</div> <div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Permission Settings" title="Permission Settings" onClick="openClose('profile-jot-acl-wrapper'); openClose('profile-jot-email-wrapper'); openClose('profile-jot-networks');" />$bang</div>
<div id="profile-jot-perms-end"></div> <div id="profile-jot-perms-end"></div>
<div id="profile-jot-email-wrapper" style="display: none;" > <div id="profile-jot-email-wrapper" style="display: none;" >
<div id="profile-jot-email-label">$emailcc</div><input type="text" name="emailcc" id="profile-jot-email" title="$emtitle"> <div id="profile-jot-email-label">$emailcc</div><input type="text" name="emailcc" id="profile-jot-email" title="$emtitle">
<div id="profile-jot-email-end"></div> <div id="profile-jot-email-end"></div>
</div> </div>
<div id="profile-jot-networks" style="display: none;" >
$jotnets
</div>
<div id="profile-jot-networks-end"></div>
<div id="profile-jot-acl-wrapper" style="display: none;" >$acl</div> <div id="profile-jot-acl-wrapper" style="display: none;" >$acl</div>
</div> </div>

View file

@ -41,13 +41,16 @@
<div id="profile-rotator-wrapper" style="display: $visitor;" > <div id="profile-rotator-wrapper" style="display: $visitor;" >
<img id="profile-rotator" src="images/rotator.gif" alt="Attendi" title="Attendi" style="display: none;" /> <img id="profile-rotator" src="images/rotator.gif" alt="Attendi" title="Attendi" style="display: none;" />
</div> </div>
<div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Impostazione permessi" title="Impostazione permessi" onClick="openClose('profile-jot-acl-wrapper'); openClose('profile-jot-email-wrapper');" />$bang</div> <div id="profile-jot-perms" class="profile-jot-perms" style="display: $visitor;" ><img id="jot-perms-icon" src="images/$lockstate_icon.gif" alt="Impostazione permessi" title="Impostazione permessi" onClick="openClose('profile-jot-acl-wrapper'); openClose('profile-jot-email-wrapper'); openClose('profile-jot-networks');" />$bang</div>
<div id="profile-jot-perms-end"></div> <div id="profile-jot-perms-end"></div>
<div id="profile-jot-email-wrapper" style="display: none;" > <div id="profile-jot-email-wrapper" style="display: none;" >
<div id="profile-jot-email-label">$emailcc</div><input type="text" name="emailcc" id="profile-jot-email" title="$emtitle"> <div id="profile-jot-email-label">$emailcc</div><input type="text" name="emailcc" id="profile-jot-email" title="$emtitle">
<div id="profile-jot-email-end"></div> <div id="profile-jot-email-end"></div>
</div> </div>
<div id="profile-jot-networks" style="display: none;" >
$jotnets
</div>
<div id="profile-jot-networks-end"></div>
<div id="profile-jot-acl-wrapper" style="display: none;" >$acl</div> <div id="profile-jot-acl-wrapper" style="display: none;" >$acl</div>
</div> </div>

View file

@ -960,6 +960,17 @@ input#dfrn-url {
#profile-jot-plugin-end{ #profile-jot-plugin-end{
clear: both; clear: both;
} }
.profile-jot-net {
float: left;
margin-right: 10px;
margin-top: 5px;
margin-bottom: 5px;
}
#profile-jot-networks-end {
clear: both;
}
#profile-jot-end { #profile-jot-end {
/*clear: both;*/ /*clear: both;*/
margin-bottom: 30px; margin-bottom: 30px;

View file

@ -1085,6 +1085,17 @@ input#dfrn-url {
#profile-jot-plugin-end { #profile-jot-plugin-end {
clear:both; clear:both;
} }
.profile-jot-net {
float: left;
margin-right: 10px;
margin-top: 5px;
margin-bottom: 5px;
}
#profile-jot-networks-end {
clear: both;
}
#profile-jot-end { #profile-jot-end {
clear: both; clear: both;
margin-bottom: 30px; margin-bottom: 30px;