Module: appdb Branch: master Commit: ee0f672aa360dc0fc2f8e4dbdbae72b72dfc426e URL: http://source.winehq.org/git/appdb.git/?a=commit;h=ee0f672aa360dc0fc2f8e4dbd...
Author: Alexander Nicolaysen Sørnes <alexander@linux-xqqm.(none)> Date: Thu Nov 12 17:58:37 2009 +0100
Comments Management: Allow showing only comments for unmaintained versions
---
include/comment.php | 38 ++++++++++++++++++++++++++++++++++---- 1 files changed, 34 insertions(+), 4 deletions(-)
diff --git a/include/comment.php b/include/comment.php index a4732f7..8625236 100644 --- a/include/comment.php +++ b/include/comment.php @@ -312,8 +312,27 @@ class Comment { return false; }
- public static function objectGetEntries($sState, $iNumRows = 0, $iStart = 0, $sOrderBy = 'commentId') + public function objectGetFilterInfo() { + $oFilter = new FilterInterface(); + $oFilter->AddFilterInfo('onlyWithoutMaintainers', 'Only show comments for versions without maintainers', array(FILTER_OPTION_BOOL), FILTER_VALUES_OPTION_BOOL, array('false','true')); + return $oFilter; + } + + + public static function objectGetEntries($sState, $iNumRows = 0, $iStart = 0, $sOrderBy = 'commentId', $bAscending = true, $oFilters = null) + { + $sExtraTables = ''; + $aOptions = $oFilters ? $oFilters->getOptions() : array('onlyWithoutMaintainers' => 'false'); + $sWhereFilter = ''; + + if($aOptions['onlyWithoutMaintainers'] == 'true') + { + $sExtraTables = ',appVersion'; + + $sWhereFilter .= " WHERE appVersion.hasMaintainer = 'false' AND appVersion.versionId = appComments.versionId"; + } + $sLimit = '';
if($iNumRows) @@ -326,7 +345,7 @@ class Comment { if($sOrderBy) $sOrderBy = " ORDER BY ".mysql_real_escape_string($sOrderBy);
- $hResult = query_parameters("SELECT * FROM appComments$sOrderBy$sLimit"); + $hResult = query_parameters("SELECT * FROM appComments$sExtraTables$sWhereFilter$sOrderBy$sLimit");
return $hResult; } @@ -336,9 +355,20 @@ class Comment { return 'commentId'; }
- public static function objectGetEntriesCount($sState) + public static function objectGetEntriesCount($sState, $oFilters = null) { - $hResult = query_parameters("SELECT COUNT(commentId) as count FROM appComments"); + $sExtraTables = ''; + $aOptions = $oFilters ? $oFilters->getOptions() : array('onlyWithoutMaintainers' => 'false'); + $sWhereFilter = ''; + + if($aOptions['onlyWithoutMaintainers'] == 'true') + { + $sExtraTables = ',appVersion'; + + $sWhereFilter .= " WHERE appVersion.hasMaintainer = 'false' AND appVersion.versionId = appComments.versionId"; + } + + $hResult = query_parameters("SELECT COUNT(commentId) as count FROM appComments$sExtraTables$sWhereFilter");
if(!$hResult) return null;