/** * @param CHelpdeskUser $oHelpdeskUser * @param int $iOffset = 0 * @param int $iLimit = 20 * @param int $iFilter = EHelpdeskThreadFilterType::All * @param string $sSearch = '' * @param int $iSearchOwner = 0 * * @return string */ public function GetThreads(CHelpdeskUser $oHelpdeskUser, $iOffset = 0, $iLimit = 20, $iFilter = EHelpdeskThreadFilterType::All, $sSearch = '', $iSearchOwner = 0) { $sSearch = trim($sSearch); $aWhere = array(); $aMap = api_AContainer::DbReadKeys(CHelpdeskThread::GetStaticMap()); $aMap = array_map(array($this, 'escapeColumn'), $aMap); $sSql = 'SELECT %s FROM %sahd_threads'; $sSql = sprintf($sSql, implode(', ', $aMap), $this->Prefix()); $aWhere = $this->buildThreadsWhere($oHelpdeskUser, $iFilter, $sSearch, $iSearchOwner); if (is_array($aWhere) && 0 < count($aWhere)) { $sSql .= ' WHERE ' . implode(' AND ', $aWhere); } else { $sSql .= ' WHERE 1 = 0'; } $sSql .= ' ORDER BY updated desc LIMIT ' . (int) $iLimit . ' OFFSET ' . (int) $iOffset; return $sSql; }