From b616382cbd07855c64a429ba03e81f5594cfeb55 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 29 Feb 2012 16:28:28 -0800 Subject: [PATCH] Add Thomas Willingham contributed alternate version --- communityhome.tgz | Bin 3662 -> 4127 bytes communityhome/twillingham/README | 7 ++ communityhome/twillingham/communityhome.php | 107 ++++++++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 communityhome/twillingham/README create mode 100644 communityhome/twillingham/communityhome.php diff --git a/communityhome.tgz b/communityhome.tgz index b08abd2ec236c20a20c24d7b8083cff317798e8c..33c6abc12fee0a7042e3aa38e0850d9ec3f55dd9 100755 GIT binary patch literal 4127 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 diff --git a/communityhome/twillingham/README b/communityhome/twillingham/README new file mode 100644 index 00000000..bb574278 --- /dev/null +++ b/communityhome/twillingham/README @@ -0,0 +1,7 @@ +Thomas Willingham + +This isn't even close to being worth a pull request, but some people might find it useful. + +Enable community home in your admin panel, then replace communityhome.php with this one to get a front page like mine (a normal front page, but with latest users shown in the sidebar, which looks bleak when there's nothing in it). + +There are more graceful ways of doing this, I used communityhome as I plan to make use of a limited stream and likes in future. diff --git a/communityhome/twillingham/communityhome.php b/communityhome/twillingham/communityhome.php new file mode 100644 index 00000000..102732ac --- /dev/null +++ b/communityhome/twillingham/communityhome.php @@ -0,0 +1,107 @@ + + */ + + +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'); + +}