diff --git a/lib/copy_this/www/lib/groups.php b/lib/copy_this/www/lib/groups.php index 6f4d7d217..294efe060 100644 --- a/lib/copy_this/www/lib/groups.php +++ b/lib/copy_this/www/lib/groups.php @@ -34,37 +34,16 @@ class Groups /** * Get all group rows. */ - public function getAll($orderby = null) + public function getAll() { - $order = ($orderby == null) ? 'name_desc' : $orderby; - $orderArr = explode("_", $order); - switch ($orderArr[0]) { - case 'name': - $orderfield = 'groups.name'; - break; - case 'description': - $orderfield = 'groups.description'; - break; - case 'releases': - $orderfield = 'num_releases'; - break; - case 'updated': - $orderfield = 'groups.last_updated'; - break; - default: - $orderfield = 'groups.name'; - break; - } - $ordersort = (isset($orderArr[1]) && preg_match('/^asc|desc$/i', $orderArr[1])) ? $orderArr[1] : 'desc'; - $orderby = $orderfield . " " . $ordersort; - - - return $this->pdo->query(sprintf("SELECT groups.*, COALESCE(rel.num, 0) AS num_releases - FROM groups - LEFT OUTER JOIN - ( SELECT groupid, COUNT(id) AS num FROM releases group by groupid ) rel ON rel.groupid = groups.id - ORDER BY %s", $orderby - ) + return $this->pdo->query( + "SELECT groups.*, + COALESCE(rel.num, 0) AS num_releases + FROM groups + LEFT OUTER JOIN + (SELECT groupid, COUNT(id) AS num FROM releases GROUP BY groupid) rel + ON rel.groupid = groups.id + ORDER BY groups.name" ); } diff --git a/lib/copy_this/www/pages/browsegroup.php b/lib/copy_this/www/pages/browsegroup.php new file mode 100644 index 000000000..e66e44af1 --- /dev/null +++ b/lib/copy_this/www/pages/browsegroup.php @@ -0,0 +1,17 @@ +isLoggedIn()) { + $page->show403(); +} + +$groups = new Groups(['Settings' => $page->settings]); + +$grouplist = $groups->getAll(); +$page->smarty->assign('results', $grouplist); + +$page->meta_title = "Browse Groups"; +$page->meta_keywords = "browse,groups,description,details"; +$page->meta_description = "Browse groups"; + +$page->content = $page->smarty->fetch('browsegroup.tpl'); +$page->render(); \ No newline at end of file diff --git a/lib/copy_this/www/templates/nntmux/views/frontend/browsegroup.tpl b/lib/copy_this/www/templates/nntmux/views/frontend/browsegroup.tpl index 44f55a5d6..df1a4b1c2 100644 --- a/lib/copy_this/www/templates/nntmux/views/frontend/browsegroup.tpl +++ b/lib/copy_this/www/templates/nntmux/views/frontend/browsegroup.tpl @@ -1,34 +1,31 @@ - -

Browse Groups

- - -{$site->adbrowse} - -{if $results|@count > 0} - - - - - - - - - - {foreach from=$results item=result} - {if $result.num_releases > 0} - - - - - - - {/if} - {/foreach} - -
name
Sort DescendingSort Ascending
description
Sort DescendingSort Ascending
updated
Sort DescendingSort Ascending
releases
Sort DescendingSort Ascending
- {$result.name|replace:"alt.binaries":"a.b"} - - {$result.description} - {$result.last_updated|timeago} ago{$result.num_releases}
- +{if $site->adbrowse} + {$site->adbrowse} {/if} +

Browse Groups

+{if $results|@count > 0} + + + + + + + + + {foreach from=$results item=result} + {if $result.num_releases > 0} + + + + + + + {/if} + {/foreach} + +
namedescriptionupdatedreleases
+ {$result.name|replace:"alt.binaries":"a.b"} + + {$result.description} + {$result.last_updated|timeago} ago{$result.num_releases}
+ +{/if} \ No newline at end of file