2009-01-23 05:17:05 +09:00
< ? php
/**
* Laconica , the distributed open - source microblogging tool
*
* Groups with the most posts section
*
* PHP version 5
*
* LICENCE : This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU Affero General Public License for more details .
*
* You should have received a copy of the GNU Affero General Public License
* along with this program . If not , see < http :// www . gnu . org / licenses />.
*
* @ category Widget
* @ package Laconica
* @ author Evan Prodromou < evan @ controlyourself . ca >
* @ copyright 2009 Control Yourself , Inc .
* @ license http :// www . fsf . org / licensing / licenses / agpl - 3.0 . html GNU Affero General Public License version 3.0
* @ link http :// laconi . ca /
*/
if ( ! defined ( 'LACONICA' )) {
exit ( 1 );
}
/**
* Groups with the most posts section
*
* @ category Widget
* @ package Laconica
* @ author Evan Prodromou < evan @ controlyourself . ca >
* @ license http :// www . fsf . org / licensing / licenses / agpl - 3.0 . html GNU Affero General Public License version 3.0
* @ link http :// laconi . ca /
*/
class GroupsByPostsSection extends GroupSection
{
function getGroups ()
{
2009-03-07 04:28:15 +09:00
$qry = 'SELECT user_group.*, count(*) as value ' .
2009-01-23 05:17:05 +09:00
'FROM user_group JOIN group_inbox ' .
'ON user_group.id = group_inbox.group_id ' .
2009-03-07 04:28:15 +09:00
'GROUP BY user_group.id,user_group.nickname,user_group.fullname,user_group.homepage,user_group.description,user_group.location,user_group.original_logo,user_group.homepage_logo,user_group.stream_logo,user_group.mini_logo,user_group.created,user_group.modified ' .
2009-01-23 05:17:05 +09:00
'ORDER BY value DESC ' ;
$limit = GROUPS_PER_SECTION ;
$offset = 0 ;
if ( common_config ( 'db' , 'type' ) == 'pgsql' ) {
$qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset ;
} else {
$qry .= ' LIMIT ' . $offset . ', ' . $limit ;
}
$group = Memcached_DataObject :: cachedQuery ( 'User_group' ,
$qry ,
3600 );
return $group ;
}
function title ()
{
return _ ( 'Groups with most posts' );
}
function divId ()
{
return 'top_groups_by_post' ;
}
}