screenshot: Allow filtering by category when browsing
This commit is contained in:
@@ -226,13 +226,24 @@ class appData
|
|||||||
return $hResult;
|
return $hResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
function objectGetEntriesCount($sState, $sType = null)
|
function objectGetEntriesCount($sState, $sType = null, $oFilters = null)
|
||||||
{
|
{
|
||||||
/* Not implemented for appData */
|
/* Not implemented for appData */
|
||||||
if($sState == 'rejected')
|
if($sState == 'rejected')
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
$sSelectType = "";
|
$sSelectType = "";
|
||||||
|
$sWhereFilter = '';
|
||||||
|
|
||||||
|
if($oFilters)
|
||||||
|
{
|
||||||
|
$aOptions = $oFilters->getOptions();
|
||||||
|
if($aOptions['appCategory'])
|
||||||
|
{
|
||||||
|
$oCategory = new category($aOptions['appCategory']);
|
||||||
|
$sWhereFilter .= ' AND ' . $oCategory->getSqlQueryPart();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(($sState != 'accepted') &&
|
if(($sState != 'accepted') &&
|
||||||
!$_SESSION['current']->hasPriv("admin"))
|
!$_SESSION['current']->hasPriv("admin"))
|
||||||
@@ -275,7 +286,7 @@ class appData
|
|||||||
AND
|
AND
|
||||||
appVersion.state = 'accepted'
|
appVersion.state = 'accepted'
|
||||||
AND
|
AND
|
||||||
appFamily.state = 'accepted'";
|
appFamily.state = 'accepted'$sWhereFilter";
|
||||||
|
|
||||||
if($sState != 'all')
|
if($sState != 'all')
|
||||||
$sQuery .= " AND appData.state = '$sState'";
|
$sQuery .= " AND appData.state = '$sState'";
|
||||||
@@ -307,7 +318,7 @@ class appData
|
|||||||
appData.versionId = '0'
|
appData.versionId = '0'
|
||||||
)
|
)
|
||||||
AND
|
AND
|
||||||
appFamily.state = 'accepted'$sAppDataQueued$sSelectType) UNION
|
appFamily.state = 'accepted'$sAppDataQueued$sSelectType$sWhereFilter) UNION
|
||||||
(
|
(
|
||||||
SELECT COUNT(DISTINCT appData.id) as count FROM appData,
|
SELECT COUNT(DISTINCT appData.id) as count FROM appData,
|
||||||
appFamily, appVersion WHERE
|
appFamily, appVersion WHERE
|
||||||
@@ -319,7 +330,7 @@ class appData
|
|||||||
AND
|
AND
|
||||||
appVersion.state = 'accepted'
|
appVersion.state = 'accepted'
|
||||||
AND
|
AND
|
||||||
appFamily.state = 'accepted'$sAppDataQueued$sSelectType)";
|
appFamily.state = 'accepted'$sAppDataQueued$sSelectType$sWhereFilter)";
|
||||||
|
|
||||||
if($sType)
|
if($sType)
|
||||||
$hResult = query_parameters($sQuery, $sType, $sType);
|
$hResult = query_parameters($sQuery, $sType, $sType);
|
||||||
@@ -346,7 +357,7 @@ class appData
|
|||||||
return $oTableRow;
|
return $oTableRow;
|
||||||
}
|
}
|
||||||
|
|
||||||
function objectGetEntries($sState, $iRows = 0, $iStart = 0, $sOrderBy = '', $bAscending = true, $sType = null)
|
function objectGetEntries($sState, $iRows = 0, $iStart = 0, $sOrderBy = '', $bAscending = true, $sType = null, $oFilters = null)
|
||||||
{
|
{
|
||||||
/* Not implemented for appData */
|
/* Not implemented for appData */
|
||||||
if($sState == 'rejected')
|
if($sState == 'rejected')
|
||||||
@@ -354,6 +365,17 @@ class appData
|
|||||||
|
|
||||||
$sSelectType = "";
|
$sSelectType = "";
|
||||||
$sLimit = "";
|
$sLimit = "";
|
||||||
|
$sWhereFilter = '';
|
||||||
|
|
||||||
|
if($oFilters)
|
||||||
|
{
|
||||||
|
$aOptions = $oFilters->getOptions();
|
||||||
|
if($aOptions['appCategory'])
|
||||||
|
{
|
||||||
|
$oCategory = new category($aOptions['appCategory']);
|
||||||
|
$sWhereFilter .= ' AND ' . $oCategory->getSqlQueryPart();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if($sState != 'accepted' && !$_SESSION['current']->hasPriv("admin"))
|
if($sState != 'accepted' && !$_SESSION['current']->hasPriv("admin"))
|
||||||
{
|
{
|
||||||
@@ -402,6 +424,7 @@ class appData
|
|||||||
appData.state = '?'
|
appData.state = '?'
|
||||||
AND
|
AND
|
||||||
appData.type = '?'
|
appData.type = '?'
|
||||||
|
$sWhereFilter
|
||||||
ORDER BY appFamily.appName";
|
ORDER BY appFamily.appName";
|
||||||
if(!$iRows && !$iStart)
|
if(!$iRows && !$iStart)
|
||||||
{
|
{
|
||||||
@@ -410,7 +433,7 @@ class appData
|
|||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
if(!$iRows)
|
if(!$iRows)
|
||||||
$iRows = appData::objectGetEntriesCount($sState, $sType);
|
$iRows = appData::objectGetEntriesCount($sState, $sType, $oFilters);
|
||||||
$sQuery .= " LIMIT ?,?";
|
$sQuery .= " LIMIT ?,?";
|
||||||
$hResult = query_parameters($sQuery, $_SESSION['current']->iUserId,
|
$hResult = query_parameters($sQuery, $_SESSION['current']->iUserId,
|
||||||
$sState, $sType,
|
$sState, $sType,
|
||||||
@@ -435,7 +458,7 @@ class appData
|
|||||||
AND
|
AND
|
||||||
appData.state = '?'
|
appData.state = '?'
|
||||||
AND
|
AND
|
||||||
appData.type = '?' ORDER BY appFamily.appName $sLimit
|
appData.type = '?' $sWhereFilter ORDER BY appFamily.appName $sLimit
|
||||||
)
|
)
|
||||||
UNION
|
UNION
|
||||||
(
|
(
|
||||||
@@ -453,7 +476,7 @@ class appData
|
|||||||
AND
|
AND
|
||||||
appData.state = '?'
|
appData.state = '?'
|
||||||
AND
|
AND
|
||||||
appData.type = '?' ORDER BY appFamily.appName $sLimit
|
appData.type = '?' $sWhereFilter ORDER BY appFamily.appName $sLimit
|
||||||
)";
|
)";
|
||||||
if(!$iRows && !$iStart)
|
if(!$iRows && !$iStart)
|
||||||
{
|
{
|
||||||
@@ -462,7 +485,7 @@ class appData
|
|||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
if(!$iRows)
|
if(!$iRows)
|
||||||
$iRows = appData::objectGetEntriesCount($sState, $sType);
|
$iRows = appData::objectGetEntriesCount($sState, $sType, $oFilters);
|
||||||
$hResult = query_parameters($sQuery, $sState, $sType,
|
$hResult = query_parameters($sQuery, $sState, $sType,
|
||||||
$iStart, $iRows,
|
$iStart, $iRows,
|
||||||
$sState, $sType,
|
$sState, $sType,
|
||||||
|
|||||||
@@ -668,15 +668,34 @@ class screenshot
|
|||||||
echo "</tr></table></div><br>\n";
|
echo "</tr></table></div><br>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
function objectGetEntries($sState, $iRows = 0, $iStart = 0, $sOrderBy = '', $bAscending = true)
|
public function objectGetFilterInfo()
|
||||||
{
|
{
|
||||||
return appData::objectGetEntries($sState, $iRows, $iStart, $sOrderBy, $bAscending,
|
$oFilter = new filterInterface();
|
||||||
'screenshot');
|
|
||||||
|
$aCatNames = array();
|
||||||
|
$aCatIds = array();
|
||||||
|
|
||||||
|
$aCategories = category::getOrderedList();
|
||||||
|
foreach($aCategories as $oCategory)
|
||||||
|
{
|
||||||
|
$aCatNames[] = $oCategory->sName;
|
||||||
|
$aCatIds[] = $oCategory->objectGetId();
|
||||||
|
}
|
||||||
|
|
||||||
|
$oFilter->addFilterInfo('appCategory', 'App category', array(FILTER_OPTION_ENUM), FILTER_VALUES_OPTION_ENUM, $aCatIds, $aCatNames);
|
||||||
|
|
||||||
|
return $oFilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
function objectGetEntriesCount($sState)
|
function objectGetEntries($sState, $iRows = 0, $iStart = 0, $sOrderBy = '', $bAscending = true, $oFilters = true)
|
||||||
{
|
{
|
||||||
return appData::objectGetEntriesCount($sState, 'screenshot');
|
return appData::objectGetEntries($sState, $iRows, $iStart, $sOrderBy, $bAscending,
|
||||||
|
'screenshot', $oFilters);
|
||||||
|
}
|
||||||
|
|
||||||
|
function objectGetEntriesCount($sState, $oFilters = true)
|
||||||
|
{
|
||||||
|
return appData::objectGetEntriesCount($sState, 'screenshot', $oFilters);
|
||||||
}
|
}
|
||||||
|
|
||||||
function objectGetHeader()
|
function objectGetHeader()
|
||||||
|
|||||||
Reference in New Issue
Block a user