browse apps: Add support for only showing downloadable apps

This commit is contained in:
Alexander Nicolaysen Sørnes
2008-06-15 00:53:34 +02:00
committed by Chris Morgan
parent fc379cb4a1
commit a1410d38c6
4 changed files with 143 additions and 32 deletions

View File

@@ -949,10 +949,20 @@ class Application {
$sExtraTables = '';
$sWhereFilter = $oFilters ? $oFilters->getWhereClause() : '';
if($sWhereFilter)
$aOptions = $oFilters ? $oFilters->getOptions() : array('onlyDownloadable' => 'false');
if($sWhereFilter || $aOptions['onlyDownloadable'] == 'true')
{
$sExtraTables = ',appVersion';
$sWhereFilter = " AND appVersion.appId = appFamily.appId AND $sWhereFilter";
if($sWhereFilter)
$sWhereFilter = " AND $sWhereFilter";
$sWhereFilter = " AND appVersion.state = 'accepted' AND appVersion.appId = appFamily.appId $sWhereFilter";
}
if($aOptions['onlyDownloadable'] == 'true')
{
$sExtraTables .= ',appData';
$sWhereFilter .= " AND appData.type = 'downloadurl' AND appData.versionId = appVersion.versionId AND appData.state = 'accepted'";
}
/* Should we add a limit clause to the query? */
if($iRows || $iStart)
@@ -1025,6 +1035,7 @@ class Application {
$oFilter->AddFilterInfo('appVersion.rating', 'Rating', array(FILTER_EQUALS, FILTER_LESS_THAN, FILTER_GREATER_THAN), FILTER_VALUES_ENUM, array('Platinum', 'Gold', 'Silver', 'Bronze', 'Garbage'));
$oFilter->AddFilterInfo('appFamily.catId', 'Category', array(FILTER_EQUALS), FILTER_VALUES_ENUM, $aCatIds, $aCatNames);
$oFilter->AddFilterInfo('appVersion.license', 'License', array(FILTER_EQUALS), FILTER_VALUES_ENUM, $aLicenses);
$oFilter->AddFilterInfo('onlyDownloadable', 'Only show downloadable apps', array(FILTER_OPTION_BOOL), FILTER_VALUES_OPTION_BOOL, array('false','true'));
return $oFilter;
}
@@ -1167,10 +1178,20 @@ class Application {
{
$sExtraTables = '';
$sWhereFilter = $oFilters ? $oFilters->getWhereClause() : '';
if($sWhereFilter)
$aOptions = $oFilters ? $oFilters->getOptions() : array('onlyDownloadable' => 'false');
if($sWhereFilter || $aOptions['onlyDownloadable'] == 'true')
{
$sExtraTables = ',appVersion';
$sWhereFilter = " AND appVersion.appId = appFamily.appId AND $sWhereFilter";
if($sWhereFilter)
$sWhereFilter = " AND $sWhereFilter";
$sWhereFilter = " AND appVersion.appId = appFamily.appId $sWhereFilter";
}
if($aOptions['onlyDownloadable'] == 'true')
{
$sExtraTables .= ',appData';
$sWhereFilter .= " AND appData.type = 'downloadurl' AND appData.versionId = appVersion.versionId";
}
if($sState != 'accepted' && !application::canEdit())