From d261a47f76a5176bf62aca797ebaefd4ad160256 Mon Sep 17 00:00:00 2001 From: fabrixxm Date: Thu, 14 Jun 2012 06:50:22 -0400 Subject: [PATCH 1/5] new plugin: profilehome redirects from homepage to a selectable profile. --- profilehome/admin.tpl | 2 ++ profilehome/profilehome.php | 50 +++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100755 profilehome/admin.tpl create mode 100755 profilehome/profilehome.php diff --git a/profilehome/admin.tpl b/profilehome/admin.tpl new file mode 100755 index 00000000..cf7bc1a7 --- /dev/null +++ b/profilehome/admin.tpl @@ -0,0 +1,2 @@ +{{ inc field_select.tpl with $field=$user }}{{ endinc }} +
\ No newline at end of file diff --git a/profilehome/profilehome.php b/profilehome/profilehome.php new file mode 100755 index 00000000..ad0421b8 --- /dev/null +++ b/profilehome/profilehome.php @@ -0,0 +1,50 @@ + + */ + + + +function profilehome_install() { + register_hook('home_content', 'addon/profilehome/profilehome.php', 'profilehome_home'); + logger("installed profilehome"); +} + +function profilehome_uninstall() { + unregister_hook('home_content', 'addon/profilehome/profilehome.php', 'profilehome_home'); + logger("removed profilehome"); +} + +function profilehome_home(&$a, &$o){ + $user = get_config("profilehome","user"); + if ($user!==false) goaway($a->get_baseurl()."/profile/".$user); +} + +function profilehome_plugin_admin(&$a, &$o){ + $r = q("SELECT nickname, username FROM user WHERE verified=1 AND account_removed=0 AND account_expired=0"); + $users = array("##no##"=>"No redirect (use default home)"); + foreach ($r as $u) { + $users[$u['nickname']] = $u['username']." (".$u['nickname'].")"; + } + + $user = get_config("profilehome","user"); + + $t = file_get_contents(dirname(__file__)."/admin.tpl"); + $o = ''; + $o .= replace_macros( $t, array( + '$submit' => t('Submit'), + '$user' => array('user', t('Profile to use as home page'), $user, "", $users), + )); +} + +function profilehome_plugin_admin_post(&$a){ + check_form_security_token('profilehomesave'); + + $user = ((x($_POST, 'user')) ? notags(trim($_POST['user'])) : false); + if ($user=='##no##') $user=false; + set_config('profilehome', 'user', $user); + info( t('Profile home settings updated.') .EOL); +} \ No newline at end of file From 9bbadf951c0d290821342b91a1a84a2e23ae43e3 Mon Sep 17 00:00:00 2001 From: fabrixxm Date: Wed, 11 Jul 2012 03:42:05 -0400 Subject: [PATCH 2/5] move profilehome to friendicablog repo --- profilehome/admin.tpl | 2 -- profilehome/profilehome.php | 50 ------------------------------------- 2 files changed, 52 deletions(-) delete mode 100755 profilehome/admin.tpl delete mode 100755 profilehome/profilehome.php diff --git a/profilehome/admin.tpl b/profilehome/admin.tpl deleted file mode 100755 index cf7bc1a7..00000000 --- a/profilehome/admin.tpl +++ /dev/null @@ -1,2 +0,0 @@ -{{ inc field_select.tpl with $field=$user }}{{ endinc }} -
\ No newline at end of file diff --git a/profilehome/profilehome.php b/profilehome/profilehome.php deleted file mode 100755 index ad0421b8..00000000 --- a/profilehome/profilehome.php +++ /dev/null @@ -1,50 +0,0 @@ - - */ - - - -function profilehome_install() { - register_hook('home_content', 'addon/profilehome/profilehome.php', 'profilehome_home'); - logger("installed profilehome"); -} - -function profilehome_uninstall() { - unregister_hook('home_content', 'addon/profilehome/profilehome.php', 'profilehome_home'); - logger("removed profilehome"); -} - -function profilehome_home(&$a, &$o){ - $user = get_config("profilehome","user"); - if ($user!==false) goaway($a->get_baseurl()."/profile/".$user); -} - -function profilehome_plugin_admin(&$a, &$o){ - $r = q("SELECT nickname, username FROM user WHERE verified=1 AND account_removed=0 AND account_expired=0"); - $users = array("##no##"=>"No redirect (use default home)"); - foreach ($r as $u) { - $users[$u['nickname']] = $u['username']." (".$u['nickname'].")"; - } - - $user = get_config("profilehome","user"); - - $t = file_get_contents(dirname(__file__)."/admin.tpl"); - $o = ''; - $o .= replace_macros( $t, array( - '$submit' => t('Submit'), - '$user' => array('user', t('Profile to use as home page'), $user, "", $users), - )); -} - -function profilehome_plugin_admin_post(&$a){ - check_form_security_token('profilehomesave'); - - $user = ((x($_POST, 'user')) ? notags(trim($_POST['user'])) : false); - if ($user=='##no##') $user=false; - set_config('profilehome', 'user', $user); - info( t('Profile home settings updated.') .EOL); -} \ No newline at end of file From b87ef672f18443a8d0a8f6ec05dd895533471999 Mon Sep 17 00:00:00 2001 From: fabrixxm Date: Fri, 28 Dec 2012 10:53:32 -0500 Subject: [PATCH 3/5] communityhome: load 'home.html', more config settings, remove twillingham folder update README --- communityhome/README.md | 23 ++ communityhome/communityhome.css | 3 +- communityhome/communityhome.php | 263 ++++++++++---------- communityhome/twillingham/README | 3 - communityhome/twillingham/communityhome.php | 107 -------- communityhome/view/directory_item.tpl | 4 +- 6 files changed, 164 insertions(+), 239 deletions(-) delete mode 100644 communityhome/twillingham/README delete mode 100644 communityhome/twillingham/communityhome.php 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 8b831888..e2c3deeb 100755 --- a/communityhome/communityhome.php +++ b/communityhome/communityhome.php @@ -35,145 +35,151 @@ 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'); - $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; + $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 - AND `user`.`hidewall` = 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'); - $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'], - )); + + 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'); @@ -182,8 +188,13 @@ function communityhome_home(&$a, &$o){ $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/view/directory_item.tpl b/communityhome/view/directory_item.tpl index db1936e4..f32f5a4f 100755 --- a/communityhome/view/directory_item.tpl +++ b/communityhome/view/directory_item.tpl @@ -2,8 +2,8 @@
From 0ae7a3f42050b234741a258d1302f18c5ce6c6a2 Mon Sep 17 00:00:00 2001 From: fabrixxm Date: Fri, 28 Dec 2012 11:00:07 -0500 Subject: [PATCH 4/5] community home: update version --- communityhome/communityhome.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/communityhome/communityhome.php b/communityhome/communityhome.php index e2c3deeb..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 */ From 9c00bd1608cea9aa86fd00691c23d838758607bc Mon Sep 17 00:00:00 2001 From: fabrixxm Date: Fri, 28 Dec 2012 11:01:14 -0500 Subject: [PATCH 5/5] community home: update tgz --- communityhome.tgz | Bin 4331 -> 4471 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/communityhome.tgz b/communityhome.tgz index 71f1f8e30f3e38731dbf8efd496e65f82623ba94..ab251425b711a5e6749dedbf1c4a8f56b036d49a 100755 GIT binary patch literal 4471 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 J8212p001{+!v_EW literal 4331 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 ZQ<=(CrZSbOOlA7g^k3O2d({AV008SYo=^Y)