MetaModels\MetaModel::getIdsFromFilter PHP Method

getIdsFromFilter() public method

public getIdsFromFilter ( $objFilter, $strSortBy = '', $intOffset, $intLimit, $strSortOrder = 'ASC' )
    public function getIdsFromFilter($objFilter, $strSortBy = '', $intOffset = 0, $intLimit = 0, $strSortOrder = 'ASC')
    {
        $arrFilteredIds = $this->getMatchingIds($objFilter);
        // If desired, sort the entries.
        if ($arrFilteredIds && $strSortBy != '') {
            if ($objSortAttribute = $this->getAttribute($strSortBy)) {
                $arrFilteredIds = $objSortAttribute->sortIds($arrFilteredIds, $strSortOrder);
            } elseif (in_array($strSortBy, array('id', 'pid', 'tstamp', 'sorting'))) {
                // Sort by database values.
                $arrFilteredIds = $this->getDatabase()->prepare(sprintf('SELECT id FROM %s WHERE id IN(%s) ORDER BY %s %s', $this->getTableName(), $this->buildDatabaseParameterList($arrFilteredIds), $strSortBy, $strSortOrder))->execute($arrFilteredIds)->fetchEach('id');
            } elseif ($strSortBy == 'random') {
                shuffle($arrFilteredIds);
            }
        }
        // Apply limiting then.
        if ($intOffset > 0 || $intLimit > 0) {
            $arrFilteredIds = array_slice($arrFilteredIds, $intOffset, $intLimit ?: null);
        }
        return $arrFilteredIds;
    }