assign("MOD",$mod_strings); $smarty->assign("APP",$app_strings); $smarty->assign("THEME", $theme); $theme_path="themes/".$theme."/"; $image_path="themes/images/"; $smarty->assign("IMAGE_PATH", $image_path); $module_array=getCustomFieldSupportedModules(); $cfimagecombo = Array($image_path."text.gif", $image_path."number.gif", $image_path."percent.gif", $image_path."currency.gif", $image_path."date.gif", $image_path."email.gif", $image_path."phone.gif", $image_path."picklist.gif", $image_path."url.gif", $image_path."checkbox.gif", $image_path."text.gif", $image_path."picklist.gif"); $cftextcombo = Array($mod_strings['Text'], $mod_strings['Number'], $mod_strings['Percent'], $mod_strings['Currency'], $mod_strings['Date'], $mod_strings['Email'], $mod_strings['Phone'], $mod_strings['PickList'], $mod_strings['LBL_URL'], $mod_strings['LBL_CHECK_BOX'], $mod_strings['LBL_TEXT_AREA'], $mod_strings['LBL_MULTISELECT_COMBO'] ); $smarty->assign("MODULES",$module_array); $smarty->assign("CFTEXTCOMBO",$cftextcombo); $smarty->assign("CFIMAGECOMBO",$cfimagecombo); if($_REQUEST['fld_module'] !='') $fld_module = vtlib_purify($_REQUEST['fld_module']); elseif($_REQUEST['formodule'] != ''){ $fld_module = vtlib_purify($_REQUEST['formodule']); } else $fld_module = 'Leads'; $smarty->assign("MODULE",$fld_module); $smarty->assign("CFENTRIES",getCFListEntries($fld_module)); if(isset($_REQUEST["duplicate"]) && $_REQUEST["duplicate"] == "yes") { $error=getTranslatedString('ERR_CUSTOM_FIELD_WITH_NAME','Settings'). vtlib_purify($_REQUEST["fldlabel"]) .getTranslatedString('ERR_ALREADY_EXISTS','Settings') . ' ' .getTranslatedString('ERR_SPECIFY_DIFFERENT_LABEL','Settings'); $smarty->assign("DUPLICATE_ERROR", $error); } if($_REQUEST['mode'] !='') $mode = vtlib_purify($_REQUEST['mode']); $smarty->assign("MODE", $mode); if($_REQUEST['ajax'] != 'true') $smarty->display(vtlib_getModuleTemplate('Calendar','CustomFieldList.tpl')); else $smarty->display(vtlib_getModuleTemplate('Calendar','CustomFieldEntries.tpl')); /** * Function to get customfield entries * @param string $module - Module name * return array $cflist - customfield entries */ function getCFListEntries($module) { global $adb,$app_strings,$theme,$smarty,$log; $tabid = getTabid($module); if ($module == 'Calendar') { $tabid = array(9, 16); } $theme_path="themes/".$theme."/"; $image_path="themes/images/"; $dbQuery = "select fieldid,columnname,fieldlabel,uitype,displaytype,block,vtiger_convertleadmapping.cfmid,tabid from vtiger_field left join vtiger_convertleadmapping on vtiger_convertleadmapping.leadfid = vtiger_field.fieldid where tabid in (". generateQuestionMarks($tabid) .") and vtiger_field.presence in (0,2) and generatedtype = 2 order by sequence"; $result = $adb->pquery($dbQuery, array($tabid)); $row = $adb->fetch_array($result); $count=1; $cflist=Array(); if($row!='') { do { $cf_element=Array(); $cf_element['no']=$count; $cf_element['label']=getTranslatedString($row["fieldlabel"],$module); $fld_type_name = getCustomFieldTypeName($row["uitype"]); $cf_element['type']=$fld_type_name; $cf_tab_id = $row["tabid"]; if($module == 'Leads') { $mapping_details = getListLeadMapping($row["cfmid"]); $cf_element[]= $mapping_details['accountlabel']; $cf_element[]= $mapping_details['contactlabel']; $cf_element[]= $mapping_details['potentiallabel']; } if($module == 'Calendar') { if ($cf_tab_id == '9') $cf_element['activitytype'] = getTranslatedString('Task',$module); else $cf_element['activitytype'] = getTranslatedString('Event',$module); } if ($module == 'Calendar') { $cf_element['tool']=' '.$app_strings['LBL_DELETE_BUTTON_LABEL'].''; } $cflist[] = $cf_element; $count++; }while($row = $adb->fetch_array($result)); } return $cflist; } /** * Function to Lead customfield Mapping entries * @param integer $cfid - Lead customfield id * return array $label - customfield mapping */ function getListLeadMapping($cfid) { global $adb; $sql="select * from vtiger_convertleadmapping where cfmid =?"; $result = $adb->pquery($sql, array($cfid)); $noofrows = $adb->num_rows($result); for($i =0;$i <$noofrows;$i++) { $leadid = $adb->query_result($result,$i,'leadfid'); $accountid = $adb->query_result($result,$i,'accountfid'); $contactid = $adb->query_result($result,$i,'contactfid'); $potentialid = $adb->query_result($result,$i,'potentialfid'); $cfmid = $adb->query_result($result,$i,'cfmid'); $sql2="select fieldlabel from vtiger_field where fieldid =?"; $result2 = $adb->pquery($sql2, array($accountid)); $accountfield = $adb->query_result($result2,0,'fieldlabel'); $label['accountlabel'] = getTranslatedString($accountfield,'Accounts'); $sql3="select fieldlabel from vtiger_field where fieldid =?"; $result3 = $adb->pquery($sql3, array($contactid)); $contactfield = $adb->query_result($result3,0,'fieldlabel'); $label['contactlabel'] = getTranslatedString($contactfield,'Contacts'); $sql4="select fieldlabel from vtiger_field where fieldid =?"; $result4 = $adb->pquery($sql4, array($potentialid)); $potentialfield = $adb->query_result($result4,0,'fieldlabel'); $label['potentiallabel'] = getTranslatedString($potentialfield,'Potentials'); } return $label; } /* function to get the modules supports Custom Fields */ function getCustomFieldSupportedModules() { global $adb; // vtlib customization: Do not list disabled modules. //$sql="select distinct vtiger_field.tabid,name from vtiger_field inner join vtiger_tab on vtiger_field.tabid=vtiger_tab.tabid where vtiger_field.tabid not in(9,10,16,15,8,29)"; $sql="select distinct vtiger_field.tabid,name from vtiger_field inner join vtiger_tab on vtiger_field.tabid=vtiger_tab.tabid where vtiger_field.tabid not in(10,16,15,8,29) and vtiger_tab.presence != 1"; // 16 is still here as we do not want duplicates for Calendar - Both 9 and 16 point to Calendar itself // END $result = $adb->pquery($sql, array()); while($moduleinfo=$adb->fetch_array($result)) { $modulelist[$moduleinfo['name']] = $moduleinfo['name']; } return $modulelist; } ?>