. * */ namespace SP\Mgmt\Files; use SP\DataModel\ItemSearchData; use SP\Mgmt\ItemSearchInterface; use SP\Storage\DB; use SP\Storage\QueryData; /** * Class FileSearch * * @package SP\Mgmt\Files */ class FileSearch extends FileBase implements ItemSearchInterface { /** * @param ItemSearchData $SearchData * @return mixed */ public function getMgmtSearch(ItemSearchData $SearchData) { $query = /** @lang SQL */ 'SELECT accfile_id, accfile_name, CONCAT(ROUND(accfile_size/1000, 2), "KB") AS accfile_size, accfile_thumb, accfile_type, account_name, customer_name FROM accFiles JOIN accounts ON account_id = accfile_accountId JOIN customers ON customer_id = account_customerId'; $Data = new QueryData(); $Data->setMapClassName('SP\DataModel\FileExtData'); if ($SearchData->getSeachString() !== '') { $query .= /** @lang SQL */ ' WHERE accfile_name LIKE ? OR accfile_type LIKE ? OR account_name LIKE ? OR customer_name LIKE ?'; $search = '%' . $SearchData->getSeachString() . '%'; $Data->addParam($search); $Data->addParam($search); $Data->addParam($search); $Data->addParam($search); } $query .= /** @lang SQL */ ' ORDER BY accfile_name LIMIT ?,?'; $Data->addParam($SearchData->getLimitStart()); $Data->addParam($SearchData->getLimitCount()); $Data->setQuery($query); DB::setReturnArray(); DB::setFullRowCount(); $queryRes = DB::getResults($Data); if ($queryRes === false) { return array(); } $queryRes['count'] = $Data->getQueryNumRows(); return $queryRes; } }