diff --git a/INSTALL.txt b/INSTALL.txt new file mode 100644 index 00000000..ec9372e8 --- /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 87bb2f8f..fbfd5594 100644 Binary files a/altpager.tgz and b/altpager.tgz differ diff --git a/altpager/altpager.php b/altpager/altpager.php index 20517d2f..c6f537bd 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 00000000..e67afd73 --- /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 4b5a5d31..6d081dc4 100644 Binary files a/blackout.tgz and b/blackout.tgz differ diff --git a/blackout/blackout.php b/blackout/blackout.php index 2cb7c041..83495611 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 00000000..11a4d914 --- /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 129081b6..ab251425 100755 Binary files a/communityhome.tgz and b/communityhome.tgz differ diff --git a/communityhome/README.md b/communityhome/README.md index 3cf610ec..21f2a946 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 2efb6ebd..45a65537 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 2b14fd33..ba2af6de 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 = '

' . ((x($a->config,'sitename')) ? sprintf( t("Welcome to %s") ,$a->config['sitename']) : "" ) . '

'; - $oldset = get_config('system','no_community_page'); - set_config('system','no_community_page', false); - $o .= community_content($a,1); - set_config('system','no_community_page', $oldset); + if(file_exists('home.html')) + $o = file_get_contents('home.html'); + + if (get_config('communityhome','showcommunitystream')===true){ + $oldset = get_config('system','no_community_page'); + set_config('system','no_community_page', false); + $o .= community_content($a,1); + set_config('system','no_community_page', $oldset); + } } diff --git a/communityhome/twillingham/README b/communityhome/twillingham/README deleted file mode 100644 index dbbe1419..00000000 --- a/communityhome/twillingham/README +++ /dev/null @@ -1,3 +0,0 @@ -This is a variant of the community home. Instead of displaying the community tab in the front page, we still use home.html, but we also add the latest users to the sidebar. - -Simply replace addon/communityhome/communityhome.php with this version then enable community home in your admin panel as usual. \ No newline at end of file diff --git a/communityhome/twillingham/communityhome.php b/communityhome/twillingham/communityhome.php deleted file mode 100644 index 102732ac..00000000 --- a/communityhome/twillingham/communityhome.php +++ /dev/null @@ -1,107 +0,0 @@ - - */ - - -require_once('mod/community.php'); - - -function communityhome_install() { - register_hook('home_content', 'addon/communityhome/communityhome.php', 'communityhome_home'); - logger("installed communityhome"); -} - -function communityhome_uninstall() { - unregister_hook('home_content', 'addon/communityhome/communityhome.php', 'communityhome_home'); - logger("removed communityhome"); -} - -function communityhome_home(&$a, &$o){ - // custom css - $a->page['htmlhead'] .= ''; - - $aside = array( - '$tab_1' => t('Login'), - '$tab_2' => t('OpenID'), - '$noOid' => get_config('system','no_openid'), - ); - - // login form - $aside['$login_title'] = t('Login'); - $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 "; - - $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' => $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; - } - } - - - - - $tpl = file_get_contents(dirname(__file__).'/communityhome.tpl'); - $a->page['aside'] = replace_macros($tpl, $aside); - $o = ''; - if(file_exists('home.html')) - - $o .= file_get_contents('home.html'); - -} diff --git a/communityhome/communityhome.tpl b/communityhome/view/communityhome.tpl similarity index 100% rename from communityhome/communityhome.tpl rename to communityhome/view/communityhome.tpl diff --git a/communityhome/directory_item.tpl b/communityhome/view/directory_item.tpl similarity index 62% rename from communityhome/directory_item.tpl rename to communityhome/view/directory_item.tpl index db1936e4..f32f5a4f 100755 --- a/communityhome/directory_item.tpl +++ b/communityhome/view/directory_item.tpl @@ -2,8 +2,8 @@
diff --git a/communityhome/view/smarty3/communityhome.tpl b/communityhome/view/smarty3/communityhome.tpl new file mode 100644 index 00000000..b8f80381 --- /dev/null +++ b/communityhome/view/smarty3/communityhome.tpl @@ -0,0 +1,70 @@ + +{{if $noOid}} +

{{$login_title}}

+{{else}} + +{{/if}} +{{$login_form}} + + +{{if $lastusers_title}} +

{{$lastusers_title}}

+
+{{foreach $lastusers_items as $i}} + {{$i}} +{{/foreach}} +
+{{/if}} + + +{{if $activeusers_title}} +

{{$activeusers_title}}

+
+{{foreach $activeusers_items as $i}} + {{$i}} +{{/foreach}} +
+{{/if}} + +{{if $photos_title}} +

{{$photos_title}}

+
+{{foreach $photos_items as $i}} + {{$i}} +{{/foreach}} +
+{{/if}} + + +{{if $like_title}} +

{{$like_title}}

+ +{{/if}} diff --git a/communityhome/view/smarty3/directory_item.tpl b/communityhome/view/smarty3/directory_item.tpl new file mode 100644 index 00000000..5fb11986 --- /dev/null +++ b/communityhome/view/smarty3/directory_item.tpl @@ -0,0 +1,10 @@ + +
+
+
+ + {{$alt}}-text + +
+
+
diff --git a/forumdirectory.tgz b/forumdirectory.tgz index 09fcb4ce..249cd226 100644 Binary files a/forumdirectory.tgz and b/forumdirectory.tgz differ diff --git a/forumdirectory/forumdirectory.php b/forumdirectory/forumdirectory.php index 83f19d01..0d7fbee8 100644 --- a/forumdirectory/forumdirectory.php +++ b/forumdirectory/forumdirectory.php @@ -163,7 +163,8 @@ function forumdirectory_content(&$a) { $about = ((x($profile,'about') == 1) ? t('About:') : False); - $tpl = file_get_contents( dirname(__file__).'/forumdirectory_item.tpl'); +# $tpl = file_get_contents( dirname(__file__).'/forumdirectory_item.tpl'); + $tpl = get_markup_template( 'forumdirectory_item.tpl', 'addon/forumdirectory/' ); $entry = replace_macros($tpl,array( '$id' => $rr['id'], diff --git a/forumdirectory/forumdirectory_item.tpl b/forumdirectory/view/forumdirectory_item.tpl similarity index 100% rename from forumdirectory/forumdirectory_item.tpl rename to forumdirectory/view/forumdirectory_item.tpl diff --git a/forumdirectory/view/smarty3/forumdirectory_item.tpl b/forumdirectory/view/smarty3/forumdirectory_item.tpl new file mode 100644 index 00000000..540a5aea --- /dev/null +++ b/forumdirectory/view/smarty3/forumdirectory_item.tpl @@ -0,0 +1,42 @@ + +
+
+
+ + {{$alt}}-text + +
+
+
+
{{$name}}
+
{{$page}}-type
+ {{if $pdesc}}
{{$profile.pdesc}}
{{/if}} +
+
+ {{if $location}} +
{{$location}}
+
+ {{if $profile.address}}
{{$profile.address}}
{{/if}} + + {{$profile.locality}}{{if $profile.locality}}, {{/if}} + {{$profile.region}} + {{$profile.postal-code}} + + {{if $profile.country-name}}{{$profile.country-name}}{{/if}} +
+
+ {{/if}} + + {{if $gender}}
{{$gender}}
{{$profile.gender}}
{{/if}} +
+
+ {{if $marital}}
{{$marital}}
{{$profile.marital}}
{{/if}} + + {{if $homepage}}
{{$homepage}}
{{$profile.homepage}}
{{/if}} +
+
+
+ {{if $about}}
{{$about}}
{{$profile.about}}
{{/if}} +
+
+
diff --git a/fromgplus.tgz b/fromgplus.tgz index 712019e4..0a402b76 100644 Binary files a/fromgplus.tgz and b/fromgplus.tgz differ diff --git a/gravatar.tgz b/gravatar.tgz index 25106f26..561c4aae 100644 Binary files a/gravatar.tgz and b/gravatar.tgz differ diff --git a/gravatar/gravatar.php b/gravatar/gravatar.php index fc5358eb..12a8e44f 100644 --- a/gravatar/gravatar.php +++ b/gravatar/gravatar.php @@ -55,7 +55,7 @@ function gravatar_lookup($a, &$b) { * Display admin settings for this addon */ function gravatar_plugin_admin (&$a, &$o) { - $t = file_get_contents( dirname(__file__)."/admin.tpl"); + $t = get_markup_template( "admin.tpl", "addon/gravatar/" ); $default_avatar = get_config('gravatar', 'default_img'); $rating = get_config('gravatar', 'rating'); diff --git a/gravatar/admin.tpl b/gravatar/view/admin.tpl similarity index 100% rename from gravatar/admin.tpl rename to gravatar/view/admin.tpl diff --git a/gravatar/view/smarty3/admin.tpl b/gravatar/view/smarty3/admin.tpl new file mode 100644 index 00000000..5dfd4488 --- /dev/null +++ b/gravatar/view/smarty3/admin.tpl @@ -0,0 +1,3 @@ +{{include file="field_select.tpl" field=$default_avatar}} +{{include file="field_select.tpl" field=$rating}} +
diff --git a/impressum.tgz b/impressum.tgz index 8c36df6f..b47b625c 100755 Binary files a/impressum.tgz and b/impressum.tgz differ diff --git a/impressum/impressum.php b/impressum/impressum.php index 9d038178..3c1106c9 100755 --- a/impressum/impressum.php +++ b/impressum/impressum.php @@ -78,7 +78,7 @@ function impressum_plugin_admin_post (&$a) { info( t('Settings updated.'). EOL ); } function impressum_plugin_admin (&$a, &$o) { - $t = file_get_contents( dirname(__file__). "/admin.tpl" ); + $t = get_markup_template( "admin.tpl", "addon/impressum/" ); $o = replace_macros($t, array( '$submit' => t('Submit'), '$owner' => array('owner', t('Site Owner'), get_config('impressum','owner'), t('The page operators name.')), diff --git a/impressum/admin.tpl b/impressum/view/admin.tpl old mode 100755 new mode 100644 similarity index 100% rename from impressum/admin.tpl rename to impressum/view/admin.tpl diff --git a/impressum/view/smarty3/admin.tpl b/impressum/view/smarty3/admin.tpl new file mode 100644 index 00000000..80b67824 --- /dev/null +++ b/impressum/view/smarty3/admin.tpl @@ -0,0 +1,7 @@ +{{include file="field_input.tpl" field=$owner}} +{{include file="field_input.tpl" field=$ownerprofile}} +{{include file="field_textarea.tpl" field=$postal}} +{{include file="field_textarea.tpl" field=$notes}} +{{include file="field_input.tpl" field=$email}} +{{include file="field_textarea.tpl" field=$footer_text}} +
diff --git a/libravatar.tgz b/libravatar.tgz index 0405af9b..d61f63ba 100644 Binary files a/libravatar.tgz and b/libravatar.tgz differ diff --git a/libravatar/libravatar.php b/libravatar/libravatar.php index 08ed6d00..8cbf1e98 100644 --- a/libravatar/libravatar.php +++ b/libravatar/libravatar.php @@ -60,7 +60,7 @@ function libravatar_lookup($a, &$b) { * Display admin settings for this addon */ function libravatar_plugin_admin (&$a, &$o) { - $t = file_get_contents( dirname(__file__)."/admin.tpl"); + $t = get_markup_template( "admin.tpl", "addon/libravatar" ); $default_avatar = get_config('libravatar', 'default_img'); diff --git a/libravatar/admin.tpl b/libravatar/view/admin.tpl similarity index 100% rename from libravatar/admin.tpl rename to libravatar/view/admin.tpl diff --git a/libravatar/view/smarty3/admin.tpl b/libravatar/view/smarty3/admin.tpl new file mode 100644 index 00000000..ee958287 --- /dev/null +++ b/libravatar/view/smarty3/admin.tpl @@ -0,0 +1,2 @@ +{{include file="field_select.tpl" field=$default_avatar}} +
diff --git a/mathjax.tgz b/mathjax.tgz index 37bfbf61..a340aee4 100644 Binary files a/mathjax.tgz and b/mathjax.tgz differ diff --git a/mathjax/mathjax.php b/mathjax/mathjax.php index 7105772b..e57d69bf 100644 --- a/mathjax/mathjax.php +++ b/mathjax/mathjax.php @@ -66,11 +66,12 @@ function mathjax_plugin_admin_post (&$a) { info( t('Settings updated.'). EOL); } function mathjax_plugin_admin (&$a, &$o) { - $t = file_get_contents( dirname(__file__)."/admin.tpl"); - if (get_config('mathjax','baseurl','') == '') { - set_config('mathjax','baseurl','http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'); - } - $o = replace_macros( $t, array( + $t = get_markup_template( "admin.tpl", "addon/mathjax/" ); + if (get_config('mathjax','baseurl','') == '') { + set_config('mathjax','baseurl','http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML'); + } + + $o = replace_macros( $t, array( '$baseurl' => array('baseurl', t('MathJax Base URL'), get_config('mathjax','baseurl' ), t('The URL for the javascript file that should be included to use MathJax. Can be either the MathJax CDN or another installation of MathJax.')), - )); + )); } diff --git a/mathjax/admin.tpl b/mathjax/view/admin.tpl similarity index 100% rename from mathjax/admin.tpl rename to mathjax/view/admin.tpl diff --git a/mathjax/view/smarty3/admin.tpl b/mathjax/view/smarty3/admin.tpl new file mode 100644 index 00000000..f6ec03e0 --- /dev/null +++ b/mathjax/view/smarty3/admin.tpl @@ -0,0 +1,2 @@ +{{include file="field_input.tpl" field=$baseurl}} +
diff --git a/openstreetmap.tgz b/openstreetmap.tgz index c195d151..967b5601 100644 Binary files a/openstreetmap.tgz and b/openstreetmap.tgz differ diff --git a/openstreetmap/openstreetmap.php b/openstreetmap/openstreetmap.php index fda29905..cb9abcd7 100755 --- a/openstreetmap/openstreetmap.php +++ b/openstreetmap/openstreetmap.php @@ -58,7 +58,7 @@ function openstreetmap_location($a, &$item) { function openstreetmap_plugin_admin (&$a, &$o) { - $t = file_get_contents( dirname(__file__)."/admin.tpl"); + $t = get_markup_template( "admin.tpl", "addon/openstreetmap/" ); $tmsserver = get_config('openstreetmap','tmsserver'); if(! $tmsserver) $tmsserver = 'http://openstreetmap.org'; diff --git a/openstreetmap/admin.tpl b/openstreetmap/view/admin.tpl similarity index 100% rename from openstreetmap/admin.tpl rename to openstreetmap/view/admin.tpl diff --git a/openstreetmap/view/smarty3/admin.tpl b/openstreetmap/view/smarty3/admin.tpl new file mode 100644 index 00000000..6ee07174 --- /dev/null +++ b/openstreetmap/view/smarty3/admin.tpl @@ -0,0 +1,3 @@ +{{include file="field_input.tpl" field=$tmsserver}} +{{include file="field_input.tpl" field=$zoom}} +
diff --git a/page.tgz b/page.tgz index 02140ce9..c9610e28 100644 Binary files a/page.tgz and b/page.tgz differ diff --git a/piwik.tgz b/piwik.tgz index 080dd9e3..a5bd437a 100755 Binary files a/piwik.tgz and b/piwik.tgz differ diff --git a/piwik/piwik.php b/piwik/piwik.php index 9ba15db6..3501b2c8 100755 --- a/piwik/piwik.php +++ b/piwik/piwik.php @@ -84,7 +84,7 @@ function piwik_analytics($a,&$b) { } } function piwik_plugin_admin (&$a, &$o) { - $t = file_get_contents( dirname(__file__)."/admin.tpl"); + $t = get_markup_template( "admin.tpl", "addon/piwik/" ); $o = replace_macros( $t, array( '$submit' => t('Submit'), '$baseurl' => array('baseurl', t('Piwik Base URL'), get_config('piwik','baseurl' ), t('Absolute path to your Piwik installation. (without protocol (http/s), with trailing slash)')), diff --git a/piwik/admin.tpl b/piwik/view/admin.tpl old mode 100755 new mode 100644 similarity index 100% rename from piwik/admin.tpl rename to piwik/view/admin.tpl diff --git a/piwik/view/smarty3/admin.tpl b/piwik/view/smarty3/admin.tpl new file mode 100644 index 00000000..bfe04aa3 --- /dev/null +++ b/piwik/view/smarty3/admin.tpl @@ -0,0 +1,5 @@ +{{include file="field_input.tpl" field=$baseurl}} +{{include file="field_input.tpl" field=$siteid}} +{{include file="field_checkbox.tpl" field=$optout}} +{{include file="field_checkbox.tpl" field=$async}} +
diff --git a/privacy_image_cache.tgz b/privacy_image_cache.tgz index 13239d90..b0690fc2 100644 Binary files a/privacy_image_cache.tgz and b/privacy_image_cache.tgz differ diff --git a/remote_permissions.tgz b/remote_permissions.tgz index 8c137d10..fef4f39b 100644 Binary files a/remote_permissions.tgz and b/remote_permissions.tgz differ diff --git a/remote_permissions/remote_permissions.php b/remote_permissions/remote_permissions.php index 95e74ee1..8955130f 100644 --- a/remote_permissions/remote_permissions.php +++ b/remote_permissions/remote_permissions.php @@ -39,7 +39,8 @@ function remote_permissions_settings(&$a,&$o) { /* Add some HTML to the existing form */ - $t = file_get_contents("addon/remote_permissions/settings.tpl" ); +// $t = file_get_contents("addon/remote_permissions/settings.tpl" ); + $t = get_markup_template("settings.tpl", "addon/remote_permissions/" ); $o .= replace_macros($t, array( '$remote_perms_title' => t('Remote Permissions Settings'), '$remote_perms_label' => t('Allow recipients of your private posts to see the other recipients of the posts'), @@ -190,7 +191,7 @@ function remote_permissions_content($a, $item_copy) { } function remote_permissions_plugin_admin(&$a, &$o){ - $t = file_get_contents( "addon/remote_permissions/admin.tpl" ); + $t = get_markup_template( "admin.tpl", "addon/remote_permissions/" ); $o = replace_macros($t, array( '$submit' => t('Submit'), '$global' => array('remotepermschoice', t('Global'), 1, t('The posts of every user on this server show the post recipients'), get_config('remote_perms', 'global') == 1), diff --git a/remote_permissions/view/admin.tpl b/remote_permissions/view/admin.tpl new file mode 100644 index 00000000..60558808 --- /dev/null +++ b/remote_permissions/view/admin.tpl @@ -0,0 +1,3 @@ +{{ inc field_radio.tpl with $field=$global }}{{ endinc }} +{{ inc field_radio.tpl with $field=$individual }}{{ endinc }} +
diff --git a/remote_permissions/settings.tpl b/remote_permissions/view/settings.tpl similarity index 100% rename from remote_permissions/settings.tpl rename to remote_permissions/view/settings.tpl diff --git a/remote_permissions/view/smarty3/admin.tpl b/remote_permissions/view/smarty3/admin.tpl new file mode 100644 index 00000000..e67afd73 --- /dev/null +++ b/remote_permissions/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/remote_permissions/view/smarty3/settings.tpl b/remote_permissions/view/smarty3/settings.tpl new file mode 100644 index 00000000..df89a32e --- /dev/null +++ b/remote_permissions/view/smarty3/settings.tpl @@ -0,0 +1,8 @@ +
+

{{$remote_perms_title}}

+
+ + +
+
+ diff --git a/statusnet.tgz b/statusnet.tgz index 92a10317..9801af55 100755 Binary files a/statusnet.tgz and b/statusnet.tgz differ diff --git a/statusnet/statusnet.php b/statusnet/statusnet.php index d7d490fd..4781fcc2 100755 --- a/statusnet/statusnet.php +++ b/statusnet/statusnet.php @@ -698,7 +698,7 @@ function statusnet_plugin_admin(&$a, &$o){ ); - $t = file_get_contents( dirname(__file__). "/admin.tpl" ); + $t = get_markup_template( "admin.tpl", "addon/statusnet/" ); $o = replace_macros($t, array( '$submit' => t('Submit'), diff --git a/statusnet/admin.tpl b/statusnet/view/admin.tpl old mode 100755 new mode 100644 similarity index 100% rename from statusnet/admin.tpl rename to statusnet/view/admin.tpl diff --git a/statusnet/view/smarty3/admin.tpl b/statusnet/view/smarty3/admin.tpl new file mode 100644 index 00000000..e2a8408f --- /dev/null +++ b/statusnet/view/smarty3/admin.tpl @@ -0,0 +1,16 @@ +{{foreach $sites as $s}} + {{include file="field_input.tpl" field=$s.sitename}} + {{include file="field_input.tpl" field=$s.apiurl}} + {{include file="field_input.tpl" field=$s.secret}} + {{include file="field_input.tpl" field=$s.key}} + {{if $s.delete}} + {{include file="field_checkbox.tpl" field=$s.delete}} +
+ {{else}} +

Fill this form to add a new site

+ {{/if}} + +{{/foreach}} + + +
diff --git a/tumblr.tgz b/tumblr.tgz index 4c0fecf3..b4f6ff9b 100755 Binary files a/tumblr.tgz and b/tumblr.tgz differ diff --git a/tumblr/tumblr.php b/tumblr/tumblr.php index 01ba04bb..4bbae8e6 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 .= '
'; - $s .= '

' . t('Tumblr Post Settings') . '

'; - - $s .= '
'; - - $s .= '
'; - $s .= ''; - $s .= ''; - $s .= '
'; - - $s .= '
'; - $s .= ''; - $s .= ''; - $s .= '
'; - - $oauth_token = get_pconfig(local_user(), "tumblr", "oauth_token"); - $oauth_token_secret = get_pconfig(local_user(), "tumblr", "oauth_token_secret"); - - $s .= '
'; - if (($oauth_token != "") and ($oauth_token_secret != "")) { - - $page = get_pconfig(local_user(),'tumblr','page'); - $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); - - $userinfo = $tum_oauth->get('user/info'); - - $blogs = array(); - - $s .= t("Post to page:").""; - } else - $s .= t("You are not authenticated to tumblr"); - $s .= '
'; - - /* provide a submit button */ - - $s .= '
'; - -} - - -function tumblr_settings_post(&$a,&$b) { - - if(x($_POST,'tumblr-submit')) { - - set_pconfig(local_user(),'tumblr','post',intval($_POST['tumblr'])); - set_pconfig(local_user(),'tumblr','page',$_POST['tumblr_page']); - set_pconfig(local_user(),'tumblr','post_by_default',intval($_POST['tumblr_bydefault'])); - - } - -} - -function tumblr_post_local(&$a,&$b) { - - // This can probably be changed to allow editing by pointing to a different API endpoint - - if($b['edit']) - return; - - if((! local_user()) || (local_user() != $b['uid'])) - return; - - if($b['private'] || $b['parent']) - return; - - $tmbl_post = intval(get_pconfig(local_user(),'tumblr','post')); - - $tmbl_enable = (($tmbl_post && x($_REQUEST,'tumblr_enable')) ? intval($_REQUEST['tumblr_enable']) : 0); - - if($_REQUEST['api_source'] && intval(get_pconfig(local_user(),'tumblr','post_by_default'))) - $tmbl_enable = 1; - - if(! $tmbl_enable) - return; - - if(strlen($b['postopts'])) - $b['postopts'] .= ','; - $b['postopts'] .= 'tumblr'; -} - - - - -function tumblr_send(&$a,&$b) { - - if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) - return; - - if(! strstr($b['postopts'],'tumblr')) - return; - - if($b['parent'] != $b['id']) - return; - - $oauth_token = get_pconfig($b['uid'], "tumblr", "oauth_token"); - $oauth_token_secret = get_pconfig($b['uid'], "tumblr", "oauth_token_secret"); - $page = get_pconfig($b['uid'], "tumblr", "page"); - $tmbl_blog = 'blog/'.$page.'/post'; - - if($oauth_token && $oauth_token_secret && $tmbl_blog) { - - require_once('include/bbcode.php'); - - $tag_arr = array(); - $tags = ''; - $x = preg_match_all('/\#\[(.*?)\](.*?)\[/',$b['tag'],$matches,PREG_SET_ORDER); - - if($x) { - foreach($matches as $mtch) { - $tag_arr[] = $mtch[2]; - } - } - if(count($tag_arr)) - $tags = implode(',',$tag_arr); - - $link = ""; - $video = false; - $title = trim($b['title']); - - // Checking for a bookmark - if(preg_match("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/is",$b['body'],$matches)) { - $link = $matches[1]; - if ($title == '') - $title = html_entity_decode($matches[2],ENT_QUOTES,'UTF-8'); - - $body = $b['body']; - // splitting the text in two parts: - // before and after the bookmark - $pos = strpos($body, "[bookmark"); - $body1 = substr($body, 0, $pos); - $body2 = substr($body, $pos); - - // Removing the bookmark - $body2 = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",'',$body2); - $body = $body1.$body2; - - $video = ((stristr($link,'youtube')) || (stristr($link,'youtu.be')) || (stristr($mtch[1],'vimeo'))); - } - - $params = array( - 'format' => 'html', - 'tweet' => 'off', - 'tags' => $tags); - - if (($link != '') and $video) { - $params['type'] = "video"; - $params['embed'] = $link; - if ($title != '') - $params['caption'] = '

'.$title. - "

".bbcode($body, false, false)."

"; - 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 .= '
'; + $s .= '

' . t('Tumblr Post Settings') . '

'; + + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $oauth_token = get_pconfig(local_user(), "tumblr", "oauth_token"); + $oauth_token_secret = get_pconfig(local_user(), "tumblr", "oauth_token_secret"); + + $s .= '
'; + if (($oauth_token != "") and ($oauth_token_secret != "")) { + + $page = get_pconfig(local_user(),'tumblr','page'); + $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); + + $userinfo = $tum_oauth->get('user/info'); + + $blogs = array(); + + $s .= t("Post to page:").""; + } else + $s .= t("You are not authenticated to tumblr"); + $s .= '
'; + + /* provide a submit button */ + + $s .= '
'; + +} + + +function tumblr_settings_post(&$a,&$b) { + + if(x($_POST,'tumblr-submit')) { + + set_pconfig(local_user(),'tumblr','post',intval($_POST['tumblr'])); + set_pconfig(local_user(),'tumblr','page',$_POST['tumblr_page']); + set_pconfig(local_user(),'tumblr','post_by_default',intval($_POST['tumblr_bydefault'])); + + } + +} + +function tumblr_post_local(&$a,&$b) { + + // This can probably be changed to allow editing by pointing to a different API endpoint + + if($b['edit']) + return; + + if((! local_user()) || (local_user() != $b['uid'])) + return; + + if($b['private'] || $b['parent']) + return; + + $tmbl_post = intval(get_pconfig(local_user(),'tumblr','post')); + + $tmbl_enable = (($tmbl_post && x($_REQUEST,'tumblr_enable')) ? intval($_REQUEST['tumblr_enable']) : 0); + + if($_REQUEST['api_source'] && intval(get_pconfig(local_user(),'tumblr','post_by_default'))) + $tmbl_enable = 1; + + if(! $tmbl_enable) + return; + + if(strlen($b['postopts'])) + $b['postopts'] .= ','; + $b['postopts'] .= 'tumblr'; +} + + + + +function tumblr_send(&$a,&$b) { + + if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) + return; + + if(! strstr($b['postopts'],'tumblr')) + return; + + if($b['parent'] != $b['id']) + return; + + $oauth_token = get_pconfig($b['uid'], "tumblr", "oauth_token"); + $oauth_token_secret = get_pconfig($b['uid'], "tumblr", "oauth_token_secret"); + $page = get_pconfig($b['uid'], "tumblr", "page"); + $tmbl_blog = 'blog/'.$page.'/post'; + + if($oauth_token && $oauth_token_secret && $tmbl_blog) { + + require_once('include/bbcode.php'); + + $tag_arr = array(); + $tags = ''; + $x = preg_match_all('/\#\[(.*?)\](.*?)\[/',$b['tag'],$matches,PREG_SET_ORDER); + + if($x) { + foreach($matches as $mtch) { + $tag_arr[] = $mtch[2]; + } + } + if(count($tag_arr)) + $tags = implode(',',$tag_arr); + + $link = ""; + $video = false; + $title = trim($b['title']); + + // Checking for a bookmark + if(preg_match("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/is",$b['body'],$matches)) { + $link = $matches[1]; + if ($title == '') + $title = html_entity_decode($matches[2],ENT_QUOTES,'UTF-8'); + + $body = $b['body']; + // splitting the text in two parts: + // before and after the bookmark + $pos = strpos($body, "[bookmark"); + $body1 = substr($body, 0, $pos); + $body2 = substr($body, $pos); + + // Removing the bookmark + $body2 = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",'',$body2); + $body = $body1.$body2; + + $video = ((stristr($link,'youtube')) || (stristr($link,'youtu.be')) || (stristr($mtch[1],'vimeo'))); + } + + $params = array( + 'format' => 'html', + 'tweet' => 'off', + 'tags' => $tags); + + if (($link != '') and $video) { + $params['type'] = "video"; + $params['embed'] = $link; + if ($title != '') + $params['caption'] = '

'.$title. + "

".bbcode($body, false, false)."

"; + 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)); + + } +} + diff --git a/twitter.tgz b/twitter.tgz index 287619c2..0505830c 100755 Binary files a/twitter.tgz and b/twitter.tgz differ diff --git a/twitter/twitter.php b/twitter/twitter.php index ee3bd0fb..6cb2d9cd 100755 --- a/twitter/twitter.php +++ b/twitter/twitter.php @@ -504,8 +504,14 @@ function twitter_plugin_admin_post(&$a){ info( t('Settings updated.'). EOL ); } function twitter_plugin_admin(&$a, &$o){ - $t = file_get_contents( dirname(__file__). "/admin.tpl" ); - $o = replace_macros($t, array( + $t = get_markup_template( "admin.tpl", "addon/twitter/" ); + + $includes = array( + '$field_input' => 'field_input.tpl', + ); + $includes = set_template_includes($a->theme['template_engine'], $includes); + + $o = replace_macros($t, $includes + array( '$submit' => t('Submit'), // name, label, value, help, [extra values] '$consumerkey' => array('consumerkey', t('Consumer key'), get_config('twitter', 'consumerkey' ), ''), diff --git a/twitter/admin.tpl b/twitter/view/admin.tpl old mode 100755 new mode 100644 similarity index 100% rename from twitter/admin.tpl rename to twitter/view/admin.tpl diff --git a/twitter/view/smarty3/admin.tpl b/twitter/view/smarty3/admin.tpl new file mode 100644 index 00000000..9efcb065 --- /dev/null +++ b/twitter/view/smarty3/admin.tpl @@ -0,0 +1,3 @@ +{{include file="field_input.tpl" field=$consumerkey}} +{{include file="field_input.tpl" field=$consumersecret}} +
diff --git a/uhremotestorage.tgz b/uhremotestorage.tgz index 4aa58096..7a758b00 100755 Binary files a/uhremotestorage.tgz and b/uhremotestorage.tgz differ diff --git a/uhremotestorage/uhremotestorage.php b/uhremotestorage/uhremotestorage.php index a2a8cc3d..85d6b13e 100755 --- a/uhremotestorage/uhremotestorage.php +++ b/uhremotestorage/uhremotestorage.php @@ -78,7 +78,7 @@ function uhremotestorage_settings($a, &$s){ 'Dropbox' => 'Dropbox', ); */ - $tpl = file_get_contents(dirname(__file__)."/settings.tpl"); + $tpl = get_markup_template("settings.tpl", "addon/uhremotestorage/"); $s .= replace_macros($tpl, array( '$title' => 'Unhosted remote storage', '$desc' => sprintf( t('Allow to use your friendica id (%s) to connecto to external unhosted-enabled storage (like ownCloud). See RemoteStorage WebFinger'), $uid ), diff --git a/uhremotestorage/settings.tpl b/uhremotestorage/view/settings.tpl old mode 100755 new mode 100644 similarity index 100% rename from uhremotestorage/settings.tpl rename to uhremotestorage/view/settings.tpl diff --git a/uhremotestorage/view/smarty3/settings.tpl b/uhremotestorage/view/smarty3/settings.tpl new file mode 100644 index 00000000..9a0a55f3 --- /dev/null +++ b/uhremotestorage/view/smarty3/settings.tpl @@ -0,0 +1,9 @@ +
+

{{$title}}

+

{{$desc}}

+ {{include file="field_input.tpl" field=$url}} + {{include file="field_input.tpl" field=$auth}} + {{include file="field_select.tpl" field=$api}} +
+ +
diff --git a/widgets.tgz b/widgets.tgz index f3b18578..d89204f5 100755 Binary files a/widgets.tgz and b/widgets.tgz differ diff --git a/widgets/settings.tpl b/widgets/view/settings.tpl similarity index 100% rename from widgets/settings.tpl rename to widgets/view/settings.tpl diff --git a/widgets/view/smarty3/settings.tpl b/widgets/view/smarty3/settings.tpl new file mode 100644 index 00000000..017fa120 --- /dev/null +++ b/widgets/view/smarty3/settings.tpl @@ -0,0 +1,19 @@ +
+

{{$title}}

+
+ + {{$key}} +
+ +
+ +
+ +

{{$widgets_h}}

+
    + {{foreach $widgets as $w}} +
  • {{$w.1}}
  • + {{/foreach}} +
+ +
diff --git a/widgets/view/smarty3/widget_like.tpl b/widgets/view/smarty3/widget_like.tpl new file mode 100644 index 00000000..ad529575 --- /dev/null +++ b/widgets/view/smarty3/widget_like.tpl @@ -0,0 +1,3 @@ + +{{$like}} like +{{$dislike}} dislike diff --git a/widgets/widget_like.tpl b/widgets/view/widget_like.tpl similarity index 100% rename from widgets/widget_like.tpl rename to widgets/view/widget_like.tpl diff --git a/widgets/widget_like.php b/widgets/widget_like.php index 649d4a76..8f356da9 100755 --- a/widgets/widget_like.php +++ b/widgets/widget_like.php @@ -52,7 +52,8 @@ function like_widget_content(&$a, $conf){ $o = ""; - $t = file_get_contents( dirname(__file__). "/widget_like.tpl" ); +# $t = file_get_contents( dirname(__file__). "/widget_like.tpl" ); + $t = get_markup_template("widget_like.tpl", "addon/widgets/"); $o .= replace_macros($t, array( '$like' => $likes, '$strlike' => sprintf( tt("%d person likes this", "%d people like this", $likes), $likes), diff --git a/widgets/widgets.php b/widgets/widgets.php index 47a6e48a..72534ce3 100755 --- a/widgets/widgets.php +++ b/widgets/widgets.php @@ -51,7 +51,8 @@ function widgets_settings(&$a,&$o) { - $t = file_get_contents( dirname(__file__). "/settings.tpl" ); +# $t = file_get_contents( dirname(__file__). "/settings.tpl" ); + $t = get_markup_template("settings.tpl", "addon/widgets/"); $o .= replace_macros($t, array( '$submit' => t('Generate new key'), '$baseurl' => $a->get_baseurl(),