pquery("SELECT tablename,entityidfield, fieldname from vtiger_entityname WHERE modulename = ?",array($sModule));
$table_name = $adb->query_result($query,0,'tablename');
$field_name = $adb->query_result($query,0,'fieldname');
$id_field = $adb->query_result($query,0,'entityidfield');
$fieldname = split(",",$field_name);
$fields_array = array($sModule=>$fieldname);
$id_array = array($sModule=>$id_field);
$tables_array = array($sModule=>$table_name);
$permittedFieldNameList = array();
foreach ($fieldname as $fieldName) {
$checkForFieldAccess = $fieldName;
// Handling case where fieldname in vtiger_entityname mismatches fieldname in vtiger_field
if($sModule == 'HelpDesk' && $checkForFieldAccess == 'title') {
$checkForFieldAccess = 'ticket_title';
} else if($sModule == 'Documents' && $checkForFieldAccess == 'title') {
$checkForFieldAccess = 'notes_title';
}
// END
if(getFieldVisibilityPermission($sModule,$current_user->id, $checkForFieldAccess) == '0'){
$permittedFieldNameList[] = $fieldName;
}
}
$cv = new CustomView();
$viewId = $cv->getViewId($sModule);
if(!empty($_SESSION[$sModule.'_DetailView_Navigation'.$viewId])){
$recordNavigationInfo = Zend_Json::decode($_SESSION[$sModule.'_DetailView_Navigation'.$viewId]);
$recordList = array();
$recordIndex = null;
$recordPageMapping = array();
foreach ($recordNavigationInfo as $start=>$recordIdList){
foreach ($recordIdList as $index=>$recordId) {
if(!isRecordExists($recordId)) continue;
$recordList[] = $recordId;
$recordPageMapping[$recordId] = $start;
if($recordId == $iCurRecord){
$recordIndex = count($recordList)-1;
}
}
}
}else{
$recordList = array();
}
$output = '
Jump to '.$app_strings[$sModule].': |
.') |
';
$output .= '';
$output .= ' ';
if(count($recordList) > 0){
$displayRecordCount = 10;
$count = count($recordList);
$idListEndIndex = ($count < ($recordIndex+$displayRecordCount))? ($count+1) : ($recordIndex+$displayRecordCount+1);
$idListStartIndex = $recordIndex-$displayRecordCount;
if($idListStartIndex < 0){
$idListStartIndex = 0;
}
$idsArray = array_slice($recordList,$idListStartIndex,($idListEndIndex - $idListStartIndex));
$selectColString = implode(',',$permittedFieldNameList).', '.$id_array[$sModule];
$fieldQuery = "SELECT $selectColString from ".$tables_array[$sModule]." WHERE ".$id_array[$sModule]." IN (". generateQuestionMarks($idsArray) .")";
$fieldResult = $adb->pquery($fieldQuery,$idsArray);
$numOfRows = $adb->num_rows($fieldResult);
$recordNameMapping = array();
for($i=0; $i<$numOfRows; ++$i) {
$recordId = $adb->query_result($fieldResult,$i,$id_array[$sModule]);
$fieldValue = '';
foreach ($permittedFieldNameList as $fieldName) {
$fieldValue .= " ".$adb->query_result($fieldResult,$i,$fieldName);
}
$fieldValue = textlength_check($fieldValue);
$recordNameMapping[$recordId] = $fieldValue;
}
foreach ($idsArray as $id) {
if($id===$iCurRecord){
$output .= ''.$recordNameMapping[$id].' | ';
}else{
$output .= ''.$recordNameMapping[$id].' | ';
}
}
}
$output .= ' ';
$output .= ' | |
';
echo $output;
?>