diff --git a/INSTALL.txt b/INSTALL.txt
new file mode 100644
index 000000000..ec9372e84
--- /dev/null
+++ b/INSTALL.txt
@@ -0,0 +1,18 @@
+*********************
+* Install Using Git *
+*********************
+
+To install all addons using git, cd into your top level Friendica directory and
+
+git clone https://github.com/friendica/friendica-addons.git addon
+
+This will clone the entire repository in a directory called addon. They can now be activated in the plugins section of your admin panel.
+
+********************
+* Install Manually *
+********************
+
+1. Download the archive (AddonName.tgz) containing the addon you want to install.
+2. Unzip the contents of the archive to your harddrive.
+3. Upload the extracted directory and all it's contents to /path/to/friendica/addon. You will need to create the addon directory if this is the first addon you have installed.
+4. Activate the addon in the plugins section of your admin panel.
diff --git a/altpager.tgz b/altpager.tgz
index 87bb2f8fc..fbfd55949 100644
Binary files a/altpager.tgz and b/altpager.tgz differ
diff --git a/altpager/altpager.php b/altpager/altpager.php
index 20517d2f1..c6f537bd4 100755
--- a/altpager/altpager.php
+++ b/altpager/altpager.php
@@ -93,7 +93,7 @@ function altpager_settings(&$a,&$s) {
}
function altpager_plugin_admin(&$a, &$o){
- $t = file_get_contents( "addon/altpager/admin.tpl" );
+ $t = get_markup_template( "admin.tpl", "addon/altpager/" );
$o = replace_macros($t, array(
'$submit' => t('Submit'),
'$global' => array('altpagerchoice', t('Global'), 1, t('Force global use of the alternate pager'), get_config('alt_pager', 'global') == 1),
@@ -106,3 +106,4 @@ function altpager_plugin_admin_post(&$a){
set_config('alt_pager','global',($choice == 1 ? 1 : 0));
info( t('Settings updated.'). EOL );
}
+
diff --git a/altpager/admin.tpl b/altpager/view/admin.tpl
old mode 100755
new mode 100644
similarity index 100%
rename from altpager/admin.tpl
rename to altpager/view/admin.tpl
diff --git a/remote_permissions/admin.tpl b/altpager/view/admin.tpl.old
old mode 100644
new mode 100755
similarity index 100%
rename from remote_permissions/admin.tpl
rename to altpager/view/admin.tpl.old
diff --git a/altpager/view/smarty3/admin.tpl b/altpager/view/smarty3/admin.tpl
new file mode 100644
index 000000000..e67afd737
--- /dev/null
+++ b/altpager/view/smarty3/admin.tpl
@@ -0,0 +1,3 @@
+{{include file="field_radio.tpl" field=$global}}
+{{include file="field_radio.tpl" field=$individual}}
+
diff --git a/blackout.tgz b/blackout.tgz
index 4b5a5d312..6d081dc4a 100644
Binary files a/blackout.tgz and b/blackout.tgz differ
diff --git a/blackout/blackout.php b/blackout/blackout.php
index 2cb7c041d..834956114 100644
--- a/blackout/blackout.php
+++ b/blackout/blackout.php
@@ -93,8 +93,9 @@ function blackout_plugin_admin(&$a, &$o) {
if (! is_string($myend)) { $myend = "YYYY-MM-DD:hhmm"; }
$myurl = get_config('blackout','url');
if (! is_string($myurl)) { $myurl = "http://www.example.com"; }
- $t = file_get_contents( dirname(__file__)."/admin.tpl" );
- $o = replace_macros($t, array(
+ $t = get_markup_template( "admin.tpl", "addon/blackout/" );
+
+ $o = replace_macros($t, array(
'$submit' => t('Submit'),
'$rurl' => array("rurl", "Redirect URL", $myurl, "all your visitors from the web will be redirected to this URL"),
'$startdate' => array("startdate", "Begin of the Blackout (YYYY-MM-DD hh:mm)", $mystart, "format is YYYY year, MM month, DD day, hh hour and mm minute"),
diff --git a/blackout/admin.tpl b/blackout/view/admin.tpl
similarity index 100%
rename from blackout/admin.tpl
rename to blackout/view/admin.tpl
diff --git a/blackout/view/smarty3/admin.tpl b/blackout/view/smarty3/admin.tpl
new file mode 100644
index 000000000..11a4d9140
--- /dev/null
+++ b/blackout/view/smarty3/admin.tpl
@@ -0,0 +1,11 @@
+{{include file="field_input.tpl" field=$startdate}}
+{{include file="field_input.tpl" field=$enddate}}
+{{include file="field_input.tpl" field=$rurl}}
+
+
Note: The redirect will be active from the moment you
+press the submit button. Users currently logged in will not be
+thrown out but can't login again after logging out should the blackout is
+still in place.
+
+
diff --git a/communityhome.tgz b/communityhome.tgz
index 129081b61..ab251425b 100755
Binary files a/communityhome.tgz and b/communityhome.tgz differ
diff --git a/communityhome/README.md b/communityhome/README.md
index 3cf610ec1..21f2a9465 100755
--- a/communityhome/README.md
+++ b/communityhome/README.md
@@ -9,3 +9,26 @@ choosed to be in site directory), last ten public photos and last ten
In main content is shown the community stream. This plugin doesn't
honour your community page visibility site setting: the community
stream is shown also if you have choose to not show the community page.
+
+If 'home.html' is found in your friendica root, its content is inserted
+before community stream
+
+Each elements can be show or not. At the moment, there is no admin page
+for settings, so this settings must be added to yout .htconfig.php
+
+
+ $a->config['communityhome']['showcommunitystream'] = true;
+ $a->config['communityhome']['showlastlike'] = true;
+ $a->config['communityhome']['showlastphotos'] = true;
+ $a->config['communityhome']['showactiveusers'] = true;
+ $a->config['communityhome']['showlastusers'] = true;
+
+If you don't want to show something, set it to false.
+
+Note:
+-----
+
+- Default is "false". With no settings in .htconfig.php, nothing is
+shown, except login form and content of 'home.html'
+
+- Active users query can be heavy for db, and on some system don't work
diff --git a/communityhome/communityhome.css b/communityhome/communityhome.css
index 2efb6ebd5..45a655374 100755
--- a/communityhome/communityhome.css
+++ b/communityhome/communityhome.css
@@ -39,4 +39,5 @@ aside .directory-photo-img { max-width: 48px; max-height: 48px; }
aside #likes { margin: 0px; padding: 0px; list-style: none; }
-aside #login-extra-links { overflow: auto; width: 100%; padding-top:120px;}
+aside #div_id_remember { overflow: auto; width: 100%; padding-top:120px;}
+#login_openid input { width: 160px; }
diff --git a/communityhome/communityhome.php b/communityhome/communityhome.php
index 2b14fd338..ba2af6de6 100755
--- a/communityhome/communityhome.php
+++ b/communityhome/communityhome.php
@@ -2,7 +2,7 @@
/**
* Name: Community home
* Description: Show last community activity in homepage
- * Version: 1.0
+ * Version: 2.0
* Author: Fabio Comuni
*/
@@ -35,151 +35,166 @@ function communityhome_home(&$a, &$o){
$aside['$login_form'] = login(($a->config['register_policy'] == REGISTER_CLOSED) ? false : true);
// last 12 users
- $aside['$lastusers_title'] = t('Latest users');
- $aside['$lastusers_items'] = array();
- $sql_extra = "";
- $publish = (get_config('system','publish_all') ? '' : " AND `publish` = 1 " );
- $order = " ORDER BY `register_date` DESC ";
+ if (get_config('communityhome','showlastusers')===true){
+ $aside['$lastusers_title'] = t('Latest users');
+ $aside['$lastusers_items'] = array();
+ $sql_extra = "";
+ $publish = (get_config('system','publish_all') ? '' : " AND `publish` = 1 " );
+ $order = " ORDER BY `register_date` DESC ";
- $r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`
- FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`
- WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 $sql_extra $order LIMIT %d , %d ",
- 0,
- 12
- );
- $tpl = file_get_contents( dirname(__file__).'/directory_item.tpl');
- if(count($r)) {
- $photo = 'thumb';
- foreach($r as $rr) {
- $profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
- $entry = replace_macros($tpl,array(
- '$id' => $rr['id'],
- '$profile-link' => $profile_link,
- '$photo' => $a->get_cached_avatar_image($rr[$photo]),
- '$alt-text' => $rr['name'],
- ));
- $aside['$lastusers_items'][] = $entry;
+ $r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`
+ FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid`
+ WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 $sql_extra $order LIMIT %d , %d ",
+ 0,
+ 12
+ );
+ # $tpl = file_get_contents( dirname(__file__).'/directory_item.tpl');
+ $tpl = get_markup_template( 'directory_item.tpl', 'addon/communityhome/' );
+ if(count($r)) {
+ $photo = 'thumb';
+ foreach($r as $rr) {
+ $profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
+ $entry = replace_macros($tpl,array(
+ '$id' => $rr['id'],
+ '$profile_link' => $profile_link,
+ '$photo' => $a->get_cached_avatar_image($rr[$photo]),
+ '$alt_text' => $rr['name'],
+ ));
+ $aside['$lastusers_items'][] = $entry;
+ }
}
}
-
// 12 most active users (by posts and contacts)
// this query don't work on some mysql versions
- $r = q("SELECT `uni`.`contacts`,`uni`.`items`, `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname` FROM
- (SELECT COUNT(`id`) as `contacts`, `uid` FROM `contact` WHERE `self`=0 GROUP BY `uid`) AS `con`,
- (SELECT COUNT(`id`) as `items`, `uid` FROM `item` WHERE `item`.`changed` > DATE(NOW() - INTERVAL 1 MONTH) AND `item`.`wall` = 1 GROUP BY `uid`) AS `ite`,
- (
- SELECT `contacts`,`items`,`ite`.`uid` FROM `con` RIGHT OUTER JOIN `ite` ON `con`.`uid`=`ite`.`uid`
- UNION ALL
- SELECT `contacts`,`items`,`con`.`uid` FROM `con` LEFT OUTER JOIN `ite` ON `con`.`uid`=`ite`.`uid`
- ) AS `uni`, `user`, `profile`
- WHERE `uni`.`uid`=`user`.`uid`
- AND `uni`.`uid`=`profile`.`uid` AND `profile`.`publish`=1
- GROUP BY `uid`
- ORDER BY `items` DESC,`contacts` DESC
- LIMIT 0,10");
- if($r && count($r)) {
- $aside['$activeusers_title'] = t('Most active users');
- $aside['$activeusers_items'] = array();
-
- $photo = 'thumb';
- foreach($r as $rr) {
- $profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
- $entry = replace_macros($tpl,array(
- '$id' => $rr['id'],
- '$profile-link' => $profile_link,
- '$photo' => $rr[$photo],
- '$alt-text' => sprintf("%s (%s posts, %s contacts)",$rr['name'], ($rr['items']?$rr['items']:'0'), ($rr['contacts']?$rr['contacts']:'0'))
- ));
- $aside['$activeusers_items'][] = $entry;
+ if (get_config('communityhome','showactiveusers')===true){
+ $r = q("SELECT `uni`.`contacts`,`uni`.`items`, `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname` FROM
+ (SELECT COUNT(`id`) as `contacts`, `uid` FROM `contact` WHERE `self`=0 GROUP BY `uid`) AS `con`,
+ (SELECT COUNT(`id`) as `items`, `uid` FROM `item` WHERE `item`.`changed` > DATE(NOW() - INTERVAL 1 MONTH) AND `item`.`wall` = 1 GROUP BY `uid`) AS `ite`,
+ (
+ SELECT `contacts`,`items`,`ite`.`uid` FROM `con` RIGHT OUTER JOIN `ite` ON `con`.`uid`=`ite`.`uid`
+ UNION ALL
+ SELECT `contacts`,`items`,`con`.`uid` FROM `con` LEFT OUTER JOIN `ite` ON `con`.`uid`=`ite`.`uid`
+ ) AS `uni`, `user`, `profile`
+ WHERE `uni`.`uid`=`user`.`uid`
+ AND `uni`.`uid`=`profile`.`uid` AND `profile`.`publish`=1
+ GROUP BY `uid`
+ ORDER BY `items` DESC,`contacts` DESC
+ LIMIT 0,10");
+ if($r && count($r)) {
+ $aside['$activeusers_title'] = t('Most active users');
+ $aside['$activeusers_items'] = array();
+
+ $photo = 'thumb';
+ foreach($r as $rr) {
+ $profile_link = $a->get_baseurl() . '/profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']);
+ $entry = replace_macros($tpl,array(
+ '$id' => $rr['id'],
+ '$profile_link' => $profile_link,
+ '$photo' => $rr[$photo],
+ '$alt_text' => sprintf("%s (%s posts, %s contacts)",$rr['name'], ($rr['items']?$rr['items']:'0'), ($rr['contacts']?$rr['contacts']:'0'))
+ ));
+ $aside['$activeusers_items'][] = $entry;
+ }
}
}
-
// last 12 photos
- $aside['$photos_title'] = t('Latest photos');
- $aside['$photos_items'] = array();
- $r = q("SELECT `photo`.`id`, `photo`.`resource-id`, `photo`.`scale`, `photo`.`desc`, `user`.`nickname`, `user`.`username` FROM
- (SELECT `resource-id`, MAX(`scale`) as maxscale FROM `photo`
- WHERE `profile`=0 AND `contact-id`=0 AND `album` NOT IN ('Contact Photos', '%s', 'Profile Photos', '%s')
- AND `allow_cid`='' AND `allow_gid`='' AND `deny_cid`='' AND `deny_gid`='' GROUP BY `resource-id`) AS `t1`
- INNER JOIN `photo` ON `photo`.`resource-id`=`t1`.`resource-id` AND `photo`.`scale` = `t1`.`maxscale`,
- `user`
- WHERE `user`.`uid` = `photo`.`uid`
- AND `user`.`blockwall`=0
- ORDER BY `photo`.`edited` DESC
- LIMIT 0, 12",
- dbesc(t('Contact Photos')),
- dbesc(t('Profile Photos'))
- );
+ if (get_config('communityhome','showlastphotos')===true){
+ $aside['$photos_title'] = t('Latest photos');
+ $aside['$photos_items'] = array();
+ $r = q("SELECT `photo`.`id`, `photo`.`resource-id`, `photo`.`scale`, `photo`.`desc`, `user`.`nickname`, `user`.`username` FROM
+ (SELECT `resource-id`, MAX(`scale`) as maxscale FROM `photo`
+ WHERE `profile`=0 AND `contact-id`=0 AND `album` NOT IN ('Contact Photos', '%s', 'Profile Photos', '%s')
+ AND `allow_cid`='' AND `allow_gid`='' AND `deny_cid`='' AND `deny_gid`='' GROUP BY `resource-id`) AS `t1`
+ INNER JOIN `photo` ON `photo`.`resource-id`=`t1`.`resource-id` AND `photo`.`scale` = `t1`.`maxscale`,
+ `user`
+ WHERE `user`.`uid` = `photo`.`uid`
+ AND `user`.`blockwall`=0
+ AND `user`.`hidewall` = 0
+ ORDER BY `photo`.`edited` DESC
+ LIMIT 0, 12",
+ dbesc(t('Contact Photos')),
+ dbesc(t('Profile Photos'))
+ );
-
- if(count($r)) {
- $tpl = file_get_contents( dirname(__file__).'/directory_item.tpl');
- foreach($r as $rr) {
- $photo_page = $a->get_baseurl() . '/photos/' . $rr['nickname'] . '/image/' . $rr['resource-id'];
- $photo_url = $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['scale'] .'.jpg';
-
- $entry = replace_macros($tpl,array(
- '$id' => $rr['id'],
- '$profile-link' => $photo_page,
- '$photo' => $photo_url,
- '$alt-text' => $rr['username']." : ".$rr['desc'],
- ));
+
+ if(count($r)) {
+ # $tpl = file_get_contents( dirname(__file__).'/directory_item.tpl');
+ $tpl = get_markup_template( 'directory_item.tpl', 'addon/communityhome/' );
+ foreach($r as $rr) {
+ $photo_page = $a->get_baseurl() . '/photos/' . $rr['nickname'] . '/image/' . $rr['resource-id'];
+ $photo_url = $a->get_baseurl() . '/photo/' . $rr['resource-id'] . '-' . $rr['scale'] .'.jpg';
+
+ $entry = replace_macros($tpl,array(
+ '$id' => $rr['id'],
+ '$profile_link' => $photo_page,
+ '$photo' => $photo_url,
+ '$alt_text' => $rr['username']." : ".$rr['desc'],
+ ));
- $aside['$photos_items'][] = $entry;
+ $aside['$photos_items'][] = $entry;
+ }
}
}
// last 10 liked items
- $aside['$like_title'] = t('Latest likes');
- $aside['$like_items'] = array();
- $r = q("SELECT `T1`.`created`, `T1`.`liker`, `T1`.`liker-link`, `item`.* FROM
- (SELECT `parent-uri`, `created`, `author-name` AS `liker`,`author-link` AS `liker-link`
- FROM `item` WHERE `verb`='http://activitystrea.ms/schema/1.0/like' GROUP BY `parent-uri` ORDER BY `created` DESC) AS T1
- INNER JOIN `item` ON `item`.`uri`=`T1`.`parent-uri`
- WHERE `T1`.`liker-link` LIKE '%s%%' OR `item`.`author-link` LIKE '%s%%'
- GROUP BY `uri`
- ORDER BY `T1`.`created` DESC
- LIMIT 0,10",
- $a->get_baseurl(),$a->get_baseurl()
- );
+ if (get_config('communityhome','showlastlike')===true){
+ $aside['$like_title'] = t('Latest likes');
+ $aside['$like_items'] = array();
+ $r = q("SELECT `T1`.`created`, `T1`.`liker`, `T1`.`liker-link`, `item`.* FROM
+ (SELECT `parent-uri`, `created`, `author-name` AS `liker`,`author-link` AS `liker-link`
+ FROM `item` WHERE `verb`='http://activitystrea.ms/schema/1.0/like' GROUP BY `parent-uri` ORDER BY `created` DESC) AS T1
+ INNER JOIN `item` ON `item`.`uri`=`T1`.`parent-uri`
+ WHERE `T1`.`liker-link` LIKE '%s%%' OR `item`.`author-link` LIKE '%s%%'
+ GROUP BY `uri`
+ ORDER BY `T1`.`created` DESC
+ LIMIT 0,10",
+ $a->get_baseurl(),$a->get_baseurl()
+ );
- foreach ($r as $rr) {
- $author = '' . $rr['liker'] . '';
- $objauthor = '' . $rr['author-name'] . '';
-
- //var_dump($rr['verb'],$rr['object-type']); killme();
- switch($rr['verb']){
- case 'http://activitystrea.ms/schema/1.0/post':
- switch ($rr['object-type']){
- case 'http://activitystrea.ms/schema/1.0/event':
- $post_type = t('event');
- break;
- default:
+ foreach ($r as $rr) {
+ $author = '' . $rr['liker'] . '';
+ $objauthor = '' . $rr['author-name'] . '';
+
+ //var_dump($rr['verb'],$rr['object-type']); killme();
+ switch($rr['verb']){
+ case 'http://activitystrea.ms/schema/1.0/post':
+ switch ($rr['object-type']){
+ case 'http://activitystrea.ms/schema/1.0/event':
+ $post_type = t('event');
+ break;
+ default:
+ $post_type = t('status');
+ }
+ break;
+ default:
+ if ($rr['resource-id']){
+ $post_type = t('photo');
+ $m=array(); preg_match("/\[url=([^]]*)\]/", $rr['body'], $m);
+ $rr['plink'] = $m[1];
+ } else {
$post_type = t('status');
- }
- break;
- default:
- if ($rr['resource-id']){
- $post_type = t('photo');
- $m=array(); preg_match("/\[url=([^]]*)\]/", $rr['body'], $m);
- $rr['plink'] = $m[1];
- } else {
- $post_type = t('status');
- }
- }
- $plink = '' . $post_type . '';
+ }
+ }
+ $plink = '' . $post_type . '';
- $aside['$like_items'][] = sprintf( t('%1$s likes %2$s\'s %3$s'), $author, $objauthor, $plink);
-
+ $aside['$like_items'][] = sprintf( t('%1$s likes %2$s\'s %3$s'), $author, $objauthor, $plink);
+
+ }
}
- $tpl = file_get_contents(dirname(__file__).'/communityhome.tpl');
+# $tpl = file_get_contents(dirname(__file__).'/communityhome.tpl');
+ $tpl = get_markup_template('communityhome.tpl', 'addon/communityhome/');
$a->page['aside'] = replace_macros($tpl, $aside);
$o = '
+ {{/if}}
+
+{{/foreach}}
+
+
+
diff --git a/tumblr.tgz b/tumblr.tgz
index 4c0fecf33..b4f6ff9b7 100755
Binary files a/tumblr.tgz and b/tumblr.tgz differ
diff --git a/tumblr/tumblr.php b/tumblr/tumblr.php
index 01ba04bb0..4bbae8e6c 100755
--- a/tumblr/tumblr.php
+++ b/tumblr/tumblr.php
@@ -1,379 +1,380 @@
-
- */
-
-require_once('library/OAuth1.php');
-require_once('addon/tumblr/tumblroauth/tumblroauth.php');
-
-function tumblr_install() {
- register_hook('post_local', 'addon/tumblr/tumblr.php', 'tumblr_post_local');
- register_hook('notifier_normal', 'addon/tumblr/tumblr.php', 'tumblr_send');
- register_hook('jot_networks', 'addon/tumblr/tumblr.php', 'tumblr_jot_nets');
- register_hook('connector_settings', 'addon/tumblr/tumblr.php', 'tumblr_settings');
- register_hook('connector_settings_post', 'addon/tumblr/tumblr.php', 'tumblr_settings_post');
-
-}
-function tumblr_uninstall() {
- unregister_hook('post_local', 'addon/tumblr/tumblr.php', 'tumblr_post_local');
- unregister_hook('notifier_normal', 'addon/tumblr/tumblr.php', 'tumblr_send');
- unregister_hook('jot_networks', 'addon/tumblr/tumblr.php', 'tumblr_jot_nets');
- unregister_hook('connector_settings', 'addon/tumblr/tumblr.php', 'tumblr_settings');
- unregister_hook('connector_settings_post', 'addon/tumblr/tumblr.php', 'tumblr_settings_post');
-}
-
-function tumblr_module() {}
-
-function tumblr_content(&$a) {
-
- if(! local_user()) {
- notice( t('Permission denied.') . EOL);
- return '';
- }
-
- if (isset($a->argv[1]))
- switch ($a->argv[1]) {
- case "connect":
- $o = tumblr_connect($a);
- break;
- case "callback":
- $o = tumblr_callback($a);
- break;
- default:
- $o = print_r($a->argv, true);
- break;
- }
- else
- $o = tumblr_connect($a);
-
- return $o;
-}
-
-function tumblr_connect($a) {
- // Start a session. This is necessary to hold on to a few keys the callback script will also need
- session_start();
-
- // Include the TumblrOAuth library
- //require_once('addon/tumblr/tumblroauth/tumblroauth.php');
-
- // Define the needed keys
- $consumer_key = get_config('tumblr','consumer_key');
- $consumer_secret = get_config('tumblr','consumer_secret');
-
- // The callback URL is the script that gets called after the user authenticates with tumblr
- // In this example, it would be the included callback.php
- $callback_url = $a->get_baseurl()."/tumblr/callback";
-
- // Let's begin. First we need a Request Token. The request token is required to send the user
- // to Tumblr's login page.
-
- // Create a new instance of the TumblrOAuth library. For this step, all we need to give the library is our
- // Consumer Key and Consumer Secret
- $tum_oauth = new TumblrOAuth($consumer_key, $consumer_secret);
-
- // Ask Tumblr for a Request Token. Specify the Callback URL here too (although this should be optional)
- $request_token = $tum_oauth->getRequestToken($callback_url);
-
- // Store the request token and Request Token Secret as out callback.php script will need this
- $_SESSION['request_token'] = $token = $request_token['oauth_token'];
- $_SESSION['request_token_secret'] = $request_token['oauth_token_secret'];
-
- // Check the HTTP Code. It should be a 200 (OK), if it's anything else then something didn't work.
- switch ($tum_oauth->http_code) {
- case 200:
- // Ask Tumblr to give us a special address to their login page
- $url = $tum_oauth->getAuthorizeURL($token);
-
- // Redirect the user to the login URL given to us by Tumblr
- header('Location: ' . $url);
-
- // That's it for our side. The user is sent to a Tumblr Login page and
- // asked to authroize our app. After that, Tumblr sends the user back to
- // our Callback URL (callback.php) along with some information we need to get
- // an access token.
-
- break;
- default:
- // Give an error message
- $o = 'Could not connect to Tumblr. Refresh the page or try again later.';
- }
- return($o);
-}
-
-function tumblr_callback($a) {
-
- // Start a session, load the library
- session_start();
- //require_once('addon/tumblr/tumblroauth/tumblroauth.php');
-
- // Define the needed keys
- $consumer_key = get_config('tumblr','consumer_key');
- $consumer_secret = get_config('tumblr','consumer_secret');
-
- // Once the user approves your app at Tumblr, they are sent back to this script.
- // This script is passed two parameters in the URL, oauth_token (our Request Token)
- // and oauth_verifier (Key that we need to get Access Token).
- // We'll also need out Request Token Secret, which we stored in a session.
-
- // Create instance of TumblrOAuth.
- // It'll need our Consumer Key and Secret as well as our Request Token and Secret
- $tum_oauth = new TumblrOAuth($consumer_key, $consumer_secret, $_SESSION['request_token'], $_SESSION['request_token_secret']);
-
- // Ok, let's get an Access Token. We'll need to pass along our oauth_verifier which was given to us in the URL.
- $access_token = $tum_oauth->getAccessToken($_REQUEST['oauth_verifier']);
-
- // We're done with the Request Token and Secret so let's remove those.
- unset($_SESSION['request_token']);
- unset($_SESSION['request_token_secret']);
-
- // Make sure nothing went wrong.
- if (200 == $tum_oauth->http_code) {
- // good to go
- } else {
- return('Unable to authenticate');
- }
-
- // What's next? Now that we have an Access Token and Secret, we can make an API call.
- set_pconfig(local_user(), "tumblr", "oauth_token", $access_token['oauth_token']);
- set_pconfig(local_user(), "tumblr", "oauth_token_secret", $access_token['oauth_token_secret']);
-
- $o = t("You are now authenticated to tumblr.");
- $o .= ' '.t("return to the connector page").'';
- return($o);
-}
-
-function tumblr_jot_nets(&$a,&$b) {
- if(! local_user())
- return;
-
- $tmbl_post = get_pconfig(local_user(),'tumblr','post');
- if(intval($tmbl_post) == 1) {
- $tmbl_defpost = get_pconfig(local_user(),'tumblr','post_by_default');
- $selected = ((intval($tmbl_defpost) == 1) ? ' checked="checked" ' : '');
- $b .= '
'
- . t('Post to Tumblr') . '
';
- }
-}
-
-
-function tumblr_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 variables */
-
- $enabled = get_pconfig(local_user(),'tumblr','post');
-
- $checked = (($enabled) ? ' checked="checked" ' : '');
-
- $def_enabled = get_pconfig(local_user(),'tumblr','post_by_default');
-
- $def_checked = (($def_enabled) ? ' checked="checked" ' : '');
-
- /* Add some HTML to the existing form */
-
- $s .= '
";
- else
- $params['caption'] = bbcode($body, false, false);
- } else if (($link != '') and !$video) {
- $params['type'] = "link";
- $params['title'] = $title;
- $params['url'] = $link;
- $params['description'] = bbcode($b["body"], false, false);
- } else {
- $params['type'] = "text";
- $params['title'] = $title;
- $params['body'] = bbcode($b['body'], false, false);
- }
-
- $consumer_key = get_config('tumblr','consumer_key');
- $consumer_secret = get_config('tumblr','consumer_secret');
-
- $tum_oauth = new TumblrOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
-
- // Make an API call with the TumblrOAuth instance.
- $x = $tum_oauth->post($tmbl_blog,$params);
-
- $ret_code = $tum_oauth->http_code;
-
- if($ret_code == 201)
- logger('tumblr_send: success');
- elseif($ret_code == 403)
- logger('tumblr_send: authentication failure');
- else
- logger('tumblr_send: general error: ' . print_r($x,true));
-
- }
-}
+
+ */
+
+require_once('library/OAuth1.php');
+require_once('addon/tumblr/tumblroauth/tumblroauth.php');
+
+function tumblr_install() {
+ register_hook('post_local', 'addon/tumblr/tumblr.php', 'tumblr_post_local');
+ register_hook('notifier_normal', 'addon/tumblr/tumblr.php', 'tumblr_send');
+ register_hook('jot_networks', 'addon/tumblr/tumblr.php', 'tumblr_jot_nets');
+ register_hook('connector_settings', 'addon/tumblr/tumblr.php', 'tumblr_settings');
+ register_hook('connector_settings_post', 'addon/tumblr/tumblr.php', 'tumblr_settings_post');
+
+}
+function tumblr_uninstall() {
+ unregister_hook('post_local', 'addon/tumblr/tumblr.php', 'tumblr_post_local');
+ unregister_hook('notifier_normal', 'addon/tumblr/tumblr.php', 'tumblr_send');
+ unregister_hook('jot_networks', 'addon/tumblr/tumblr.php', 'tumblr_jot_nets');
+ unregister_hook('connector_settings', 'addon/tumblr/tumblr.php', 'tumblr_settings');
+ unregister_hook('connector_settings_post', 'addon/tumblr/tumblr.php', 'tumblr_settings_post');
+}
+
+function tumblr_module() {}
+
+function tumblr_content(&$a) {
+
+ if(! local_user()) {
+ notice( t('Permission denied.') . EOL);
+ return '';
+ }
+
+ if (isset($a->argv[1]))
+ switch ($a->argv[1]) {
+ case "connect":
+ $o = tumblr_connect($a);
+ break;
+ case "callback":
+ $o = tumblr_callback($a);
+ break;
+ default:
+ $o = print_r($a->argv, true);
+ break;
+ }
+ else
+ $o = tumblr_connect($a);
+
+ return $o;
+}
+
+function tumblr_connect($a) {
+ // Start a session. This is necessary to hold on to a few keys the callback script will also need
+ session_start();
+
+ // Include the TumblrOAuth library
+ //require_once('addon/tumblr/tumblroauth/tumblroauth.php');
+
+ // Define the needed keys
+ $consumer_key = get_config('tumblr','consumer_key');
+ $consumer_secret = get_config('tumblr','consumer_secret');
+
+ // The callback URL is the script that gets called after the user authenticates with tumblr
+ // In this example, it would be the included callback.php
+ $callback_url = $a->get_baseurl()."/tumblr/callback";
+
+ // Let's begin. First we need a Request Token. The request token is required to send the user
+ // to Tumblr's login page.
+
+ // Create a new instance of the TumblrOAuth library. For this step, all we need to give the library is our
+ // Consumer Key and Consumer Secret
+ $tum_oauth = new TumblrOAuth($consumer_key, $consumer_secret);
+
+ // Ask Tumblr for a Request Token. Specify the Callback URL here too (although this should be optional)
+ $request_token = $tum_oauth->getRequestToken($callback_url);
+
+ // Store the request token and Request Token Secret as out callback.php script will need this
+ $_SESSION['request_token'] = $token = $request_token['oauth_token'];
+ $_SESSION['request_token_secret'] = $request_token['oauth_token_secret'];
+
+ // Check the HTTP Code. It should be a 200 (OK), if it's anything else then something didn't work.
+ switch ($tum_oauth->http_code) {
+ case 200:
+ // Ask Tumblr to give us a special address to their login page
+ $url = $tum_oauth->getAuthorizeURL($token);
+
+ // Redirect the user to the login URL given to us by Tumblr
+ header('Location: ' . $url);
+
+ // That's it for our side. The user is sent to a Tumblr Login page and
+ // asked to authroize our app. After that, Tumblr sends the user back to
+ // our Callback URL (callback.php) along with some information we need to get
+ // an access token.
+
+ break;
+ default:
+ // Give an error message
+ $o = 'Could not connect to Tumblr. Refresh the page or try again later.';
+ }
+ return($o);
+}
+
+function tumblr_callback($a) {
+
+ // Start a session, load the library
+ session_start();
+ //require_once('addon/tumblr/tumblroauth/tumblroauth.php');
+
+ // Define the needed keys
+ $consumer_key = get_config('tumblr','consumer_key');
+ $consumer_secret = get_config('tumblr','consumer_secret');
+
+ // Once the user approves your app at Tumblr, they are sent back to this script.
+ // This script is passed two parameters in the URL, oauth_token (our Request Token)
+ // and oauth_verifier (Key that we need to get Access Token).
+ // We'll also need out Request Token Secret, which we stored in a session.
+
+ // Create instance of TumblrOAuth.
+ // It'll need our Consumer Key and Secret as well as our Request Token and Secret
+ $tum_oauth = new TumblrOAuth($consumer_key, $consumer_secret, $_SESSION['request_token'], $_SESSION['request_token_secret']);
+
+ // Ok, let's get an Access Token. We'll need to pass along our oauth_verifier which was given to us in the URL.
+ $access_token = $tum_oauth->getAccessToken($_REQUEST['oauth_verifier']);
+
+ // We're done with the Request Token and Secret so let's remove those.
+ unset($_SESSION['request_token']);
+ unset($_SESSION['request_token_secret']);
+
+ // Make sure nothing went wrong.
+ if (200 == $tum_oauth->http_code) {
+ // good to go
+ } else {
+ return('Unable to authenticate');
+ }
+
+ // What's next? Now that we have an Access Token and Secret, we can make an API call.
+ set_pconfig(local_user(), "tumblr", "oauth_token", $access_token['oauth_token']);
+ set_pconfig(local_user(), "tumblr", "oauth_token_secret", $access_token['oauth_token_secret']);
+
+ $o = t("You are now authenticated to tumblr.");
+ $o .= ' '.t("return to the connector page").'';
+ return($o);
+}
+
+function tumblr_jot_nets(&$a,&$b) {
+ if(! local_user())
+ return;
+
+ $tmbl_post = get_pconfig(local_user(),'tumblr','post');
+ if(intval($tmbl_post) == 1) {
+ $tmbl_defpost = get_pconfig(local_user(),'tumblr','post_by_default');
+ $selected = ((intval($tmbl_defpost) == 1) ? ' checked="checked" ' : '');
+ $b .= '
'
+ . t('Post to Tumblr') . '
';
+ }
+}
+
+
+function tumblr_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 variables */
+
+ $enabled = get_pconfig(local_user(),'tumblr','post');
+
+ $checked = (($enabled) ? ' checked="checked" ' : '');
+
+ $def_enabled = get_pconfig(local_user(),'tumblr','post_by_default');
+
+ $def_checked = (($def_enabled) ? ' checked="checked" ' : '');
+
+ /* Add some HTML to the existing form */
+
+ $s .= '