示例#1
0
文件: Record.php 项目: yunter/crm
 /**
  * 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;
 }