/** * Static Function to get the list of records matching the search key * @param <String> $searchKey * @return <Array> - List of Vtiger_Record_Model or Module Specific Record Model instances */ public static function getSearchResult($searchKey, $module = false) { $db = PearDatabase::getInstance(); $deletedCondition = parent::getModule()->getDeletedRecordCondition(); $query = 'SELECT * FROM vtiger_crmentity INNER JOIN vtiger_leaddetails ON vtiger_leaddetails.leadid = vtiger_crmentity.crmid WHERE label LIKE ? AND ' . $deletedCondition; $params = array("%{$searchKey}%"); $result = $db->pquery($query, $params); $noOfRows = $db->num_rows($result); $moduleModels = array(); $matchingRecords = array(); for ($i = 0; $i < $noOfRows; ++$i) { $row = $db->query_result_rowdata($result, $i); $row['id'] = $row['crmid']; $moduleName = $row['setype']; if (!array_key_exists($moduleName, $moduleModels)) { $moduleModels[$moduleName] = Vtiger_Module_Model::getInstance($moduleName); } $moduleModel = $moduleModels[$moduleName]; $modelClassName = Vtiger_Loader::getComponentClassName('Model', 'Record', $moduleName); $recordInstance = new $modelClassName(); $matchingRecords[$moduleName][$row['id']] = $recordInstance->setData($row)->setModuleFromInstance($moduleModel); } return $matchingRecords; }