. /** * The GroupFavorited plugin adds a menu item for popular notices in groups. * * @package GroupFavoritedPlugin * @author Brion Vibber * @copyright 2010-2019 Free Software Foundation, Inc http://www.fsf.org * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later */ defined('GNUSOCIAL') || die(); class GroupFavoritedAction extends ShowgroupAction { /** * Title of the page * * @return string page title, with page number * @throws Exception */ public function title() { $base = $this->group->getFancyName(); if ($this->page == 1) { // TRANS: %s is a group name. return sprintf(_m('Popular posts in %s group'), $base); } else { // TRANS: %1$s is a group name, %2$s is a group number. return sprintf( _m('Popular posts in %1$s group, page %2$d'), $base, $this->page ); } } /** * Content area * * Shows the list of popular notices * * @return void */ public function showContent() { $groupId = (int)$this->group->id; $weightexpr = common_sql_weight('fave.modified', common_config('popular', 'dropoff')); $cutoff = sprintf( "fave.modified > CURRENT_TIMESTAMP - INTERVAL '%d' SECOND", common_config('popular', 'cutoff') ); $offset = ($this->page - 1) * NOTICES_PER_PAGE; $limit = NOTICES_PER_PAGE + 1; $qry = <<show(); /*if ($cnt == 0) { $this->showEmptyList(); }*/ $this->pagination( $this->page > 1, $cnt > NOTICES_PER_PAGE, $this->page, 'groupfavorited', array('nickname' => $this->group->nickname) ); } }