/** * Function to get the list view entries * @param Vtiger_Paging_Model $pagingModel * @return <Array> - Associative array of record id mapped to Vtiger_Record_Model instance. */ public function getListViewEntries($pagingModel) { $db = PearDatabase::getInstance(); $startIndex = $pagingModel->getStartIndex(); $pageLimit = $pagingModel->getPageLimit(); $orderBy = $this->getForSql('orderby'); $sortOrder = $this->getForSql('sortorder'); $listQuery = $this->getQuery(); $searchKey = $this->get('search_key'); $searchValue = $this->get('search_value'); if (!empty($searchKey) && !empty($searchValue)) { $listQuery .= " WHERE {$searchKey} LIKE '{$searchValue}%'"; } if ($orderBy) { $listQuery .= " ORDER BY {$orderBy} {$sortOrder}"; } $listQuery .= " LIMIT {$startIndex}," . ($pageLimit + 1); $result = $db->pquery($listQuery, array()); $num_rows = $db->num_rows($result); $listViewRecordModels = array(); for ($i = 0; $i < $num_rows; $i++) { $recordModel = new EmailTemplates_Record_Model(); $recordModel->setModule('EmailTemplates'); $row = $db->query_result_rowdata($result, $i); $listViewRecordModels[$row['templateid']] = $recordModel->setData($row); } $pagingModel->calculatePageRange($listViewRecordModels); if ($num_rows > $pageLimit) { array_pop($listViewRecordModels); $pagingModel->set('nextPageExists', true); } else { $pagingModel->set('nextPageExists', false); } return $listViewRecordModels; }
/** * Function to get the list view entries * @param Vtiger_Paging_Model $pagingModel * @return <Array> - Associative array of record id mapped to Vtiger_Record_Model instance. */ public function getListViewEntries($pagingModel) { $db = PearDatabase::getInstance(); $startIndex = $pagingModel->getStartIndex(); $pageLimit = $pagingModel->getPageLimit(); $orderBy = $this->getForSql('orderby'); $sortOrder = $this->getForSql('sortorder'); $listQuery = $this->getQuery(); $searchKey = $this->get('search_key'); $searchValue = $this->get('search_value'); if (!empty($searchKey) && !empty($searchValue)) { $listQuery .= " WHERE {$searchKey} LIKE '{$searchValue}%'"; } if (!empty($orderBy) && $orderBy === 'smownerid') { $fieldModel = Vtiger_Field_Model::getInstance('assigned_user_id', $moduleModel); if ($fieldModel->getFieldDataType() == 'owner') { $orderBy = 'COALESCE(CONCAT(vtiger_users.first_name,vtiger_users.last_name),vtiger_groups.groupname)'; } } if ($orderBy) { $listQuery .= " ORDER BY {$orderBy} {$sortOrder}"; } $listQuery .= " LIMIT {$startIndex}," . ($pageLimit + 1); $result = $db->pquery($listQuery, array()); $num_rows = $db->num_rows($result); $listViewRecordModels = array(); for ($i = 0; $i < $num_rows; $i++) { $recordModel = new EmailTemplates_Record_Model(); $recordModel->setModule('EmailTemplates'); $row = $db->query_result_rowdata($result, $i); $listViewRecordModels[$row['templateid']] = $recordModel->setData($row); } $pagingModel->calculatePageRange($listViewRecordModels); if ($num_rows > $pageLimit) { array_pop($listViewRecordModels); $pagingModel->set('nextPageExists', true); } else { $pagingModel->set('nextPageExists', false); } return $listViewRecordModels; }