debug("Entering getListQuery(" . $module . "," . $where . ") method ..."); global $current_user; require('user_privileges/user_privileges_' . $current_user->id . '.php'); require('user_privileges/sharing_privileges_' . $current_user->id . '.php'); $tab_id = getTabid($module); $userNameSql = getSqlForNameInDisplayFormat(array('first_name' => 'vtiger_users.first_name', 'last_name' => 'vtiger_users.last_name'), 'Users'); switch ($module) { Case "HelpDesk": $query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_troubletickets.title, vtiger_troubletickets.status, vtiger_troubletickets.priority, vtiger_troubletickets.parent_id, vtiger_contactdetails.contactid, vtiger_contactdetails.firstname, vtiger_contactdetails.lastname, vtiger_account.accountid, vtiger_account.accountname, vtiger_ticketcf.*, vtiger_troubletickets.ticket_no FROM vtiger_troubletickets INNER JOIN vtiger_ticketcf ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_contactdetails ON vtiger_troubletickets.parent_id = vtiger_contactdetails.contactid LEFT JOIN vtiger_account ON vtiger_account.accountid = vtiger_troubletickets.parent_id LEFT JOIN vtiger_users ON vtiger_crmentity.smownerid = vtiger_users.id LEFT JOIN vtiger_products ON vtiger_products.productid = vtiger_troubletickets.product_id"; $query .= ' ' . getNonAdminAccessControlQuery($module, $current_user); $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where; break; Case "Accounts": //Query modified to sort by assigned to $query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_account.accountname, vtiger_account.email1, vtiger_account.email2, vtiger_account.website, vtiger_account.phone, vtiger_accountbillads.bill_city, vtiger_accountscf.* FROM vtiger_account INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_account.accountid INNER JOIN vtiger_accountbillads ON vtiger_account.accountid = vtiger_accountbillads.accountaddressid INNER JOIN vtiger_accountshipads ON vtiger_account.accountid = vtiger_accountshipads.accountaddressid INNER JOIN vtiger_accountscf ON vtiger_account.accountid = vtiger_accountscf.accountid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid LEFT JOIN vtiger_account vtiger_account2 ON vtiger_account.parentid = vtiger_account2.accountid"; $query .= getNonAdminAccessControlQuery($module, $current_user); $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where; break; Case "Potentials": //Query modified to sort by assigned to $query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_account.accountname, vtiger_potential.related_to, vtiger_potential.potentialname, vtiger_potential.sales_stage, vtiger_potential.amount, vtiger_potential.currency, vtiger_potential.closingdate, vtiger_potential.typeofrevenue, vtiger_potential.contact_id, vtiger_potentialscf.* FROM vtiger_potential INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_potential.potentialid INNER JOIN vtiger_potentialscf ON vtiger_potentialscf.potentialid = vtiger_potential.potentialid LEFT JOIN vtiger_account ON vtiger_potential.related_to = vtiger_account.accountid LEFT JOIN vtiger_contactdetails ON vtiger_potential.contact_id = vtiger_contactdetails.contactid LEFT JOIN vtiger_campaign ON vtiger_campaign.campaignid = vtiger_potential.campaignid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid"; $query .= getNonAdminAccessControlQuery($module, $current_user); $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where; break; Case "Leads": $query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_leaddetails.firstname, vtiger_leaddetails.lastname, vtiger_leaddetails.company, vtiger_leadaddress.phone, vtiger_leadsubdetails.website, vtiger_leaddetails.email, vtiger_leadscf.* FROM vtiger_leaddetails INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_leaddetails.leadid INNER JOIN vtiger_leadsubdetails ON vtiger_leadsubdetails.leadsubscriptionid = vtiger_leaddetails.leadid INNER JOIN vtiger_leadaddress ON vtiger_leadaddress.leadaddressid = vtiger_leadsubdetails.leadsubscriptionid INNER JOIN vtiger_leadscf ON vtiger_leaddetails.leadid = vtiger_leadscf.leadid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid"; $query .= getNonAdminAccessControlQuery($module, $current_user); $query .= "WHERE vtiger_crmentity.deleted = 0 AND vtiger_leaddetails.converted = 0 " . $where; break; Case "Products": $query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_crmentity.description, vtiger_products.*, vtiger_productcf.* FROM vtiger_products INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_products.productid INNER JOIN vtiger_productcf ON vtiger_products.productid = vtiger_productcf.productid LEFT JOIN vtiger_vendor ON vtiger_vendor.vendorid = vtiger_products.vendor_id LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid"; if ((isset($_REQUEST["from_dashboard"]) && $_REQUEST["from_dashboard"] == true) && (isset($_REQUEST["type"]) && $_REQUEST["type"] == "dbrd")) $query .= " INNER JOIN vtiger_inventoryproductrel on vtiger_inventoryproductrel.productid = vtiger_products.productid"; $query .= getNonAdminAccessControlQuery($module, $current_user); $query .= " WHERE vtiger_crmentity.deleted = 0 " . $where; break; Case "Documents": $query = "SELECT case when (vtiger_users.user_name not like '') then $userNameSql else vtiger_groups.groupname end as user_name,vtiger_crmentity.crmid, vtiger_crmentity.modifiedtime, vtiger_crmentity.smownerid,vtiger_attachmentsfolder.*,vtiger_notes.* FROM vtiger_notes INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_notes.notesid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid LEFT JOIN vtiger_attachmentsfolder ON vtiger_notes.folderid = vtiger_attachmentsfolder.folderid"; $query .= getNonAdminAccessControlQuery($module, $current_user); $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where; break; Case "Contacts": //Query modified to sort by assigned to $query = "SELECT vtiger_contactdetails.firstname, vtiger_contactdetails.lastname, vtiger_contactdetails.title, vtiger_contactdetails.accountid, vtiger_contactdetails.email, vtiger_contactdetails.phone, vtiger_crmentity.smownerid, vtiger_crmentity.crmid FROM vtiger_contactdetails INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_contactdetails.contactid INNER JOIN vtiger_contactaddress ON vtiger_contactaddress.contactaddressid = vtiger_contactdetails.contactid INNER JOIN vtiger_contactsubdetails ON vtiger_contactsubdetails.contactsubscriptionid = vtiger_contactdetails.contactid INNER JOIN vtiger_contactscf ON vtiger_contactscf.contactid = vtiger_contactdetails.contactid LEFT JOIN vtiger_account ON vtiger_account.accountid = vtiger_contactdetails.accountid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid LEFT JOIN vtiger_contactdetails vtiger_contactdetails2 ON vtiger_contactdetails.reportsto = vtiger_contactdetails2.contactid LEFT JOIN vtiger_customerdetails ON vtiger_customerdetails.customerid = vtiger_contactdetails.contactid"; if ((isset($_REQUEST["from_dashboard"]) && $_REQUEST["from_dashboard"] == true) && (isset($_REQUEST["type"]) && $_REQUEST["type"] == "dbrd")) { $query .= " INNER JOIN vtiger_campaigncontrel on vtiger_campaigncontrel.contactid = " . "vtiger_contactdetails.contactid"; } $query .= getNonAdminAccessControlQuery($module, $current_user); $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where; break; Case "Calendar": $query = "SELECT vtiger_activity.activityid as act_id,vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_crmentity.setype, vtiger_activity.*, vtiger_contactdetails.lastname, vtiger_contactdetails.firstname, vtiger_contactdetails.contactid, vtiger_account.accountid, vtiger_account.accountname FROM vtiger_activity LEFT JOIN vtiger_activitycf ON vtiger_activitycf.activityid = vtiger_activity.activityid LEFT JOIN vtiger_cntactivityrel ON vtiger_cntactivityrel.activityid = vtiger_activity.activityid LEFT JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid = vtiger_cntactivityrel.contactid LEFT JOIN vtiger_seactivityrel ON vtiger_seactivityrel.activityid = vtiger_activity.activityid LEFT OUTER JOIN vtiger_activity_reminder ON vtiger_activity_reminder.activity_id = vtiger_activity.activityid LEFT JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_activity.activityid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_users vtiger_users2 ON vtiger_crmentity.modifiedby = vtiger_users2.id LEFT JOIN vtiger_groups vtiger_groups2 ON vtiger_crmentity.modifiedby = vtiger_groups2.groupid LEFT OUTER JOIN vtiger_account ON vtiger_account.accountid = vtiger_contactdetails.accountid LEFT OUTER JOIN vtiger_leaddetails ON vtiger_leaddetails.leadid = vtiger_seactivityrel.crmid LEFT OUTER JOIN vtiger_account vtiger_account2 ON vtiger_account2.accountid = vtiger_seactivityrel.crmid LEFT OUTER JOIN vtiger_potential ON vtiger_potential.potentialid = vtiger_seactivityrel.crmid LEFT OUTER JOIN vtiger_troubletickets ON vtiger_troubletickets.ticketid = vtiger_seactivityrel.crmid LEFT OUTER JOIN vtiger_salesorder ON vtiger_salesorder.salesorderid = vtiger_seactivityrel.crmid LEFT OUTER JOIN vtiger_purchaseorder ON vtiger_purchaseorder.purchaseorderid = vtiger_seactivityrel.crmid LEFT OUTER JOIN vtiger_quotes ON vtiger_quotes.quoteid = vtiger_seactivityrel.crmid LEFT OUTER JOIN vtiger_invoice ON vtiger_invoice.invoiceid = vtiger_seactivityrel.crmid LEFT OUTER JOIN vtiger_campaign ON vtiger_campaign.campaignid = vtiger_seactivityrel.crmid"; //added to fix #5135 if (isset($_REQUEST['from_homepage']) && ($_REQUEST['from_homepage'] == "upcoming_activities" || $_REQUEST['from_homepage'] == "pending_activities")) { $query.=" LEFT OUTER JOIN vtiger_recurringevents ON vtiger_recurringevents.activityid=vtiger_activity.activityid"; } //end $query .= getNonAdminAccessControlQuery($module, $current_user); $query.=" WHERE vtiger_crmentity.deleted = 0 AND activitytype != 'Emails' " . $where; break; Case "Emails": $query = "SELECT DISTINCT vtiger_crmentity.crmid, vtiger_crmentity.smownerid, vtiger_activity.activityid, vtiger_activity.subject, vtiger_activity.date_start, vtiger_contactdetails.lastname, vtiger_contactdetails.firstname, vtiger_contactdetails.contactid FROM vtiger_activity INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_activity.activityid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid LEFT JOIN vtiger_seactivityrel ON vtiger_seactivityrel.activityid = vtiger_activity.activityid LEFT JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid = vtiger_seactivityrel.crmid LEFT JOIN vtiger_cntactivityrel ON vtiger_cntactivityrel.activityid = vtiger_activity.activityid AND vtiger_cntactivityrel.contactid = vtiger_cntactivityrel.contactid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_salesmanactivityrel ON vtiger_salesmanactivityrel.activityid = vtiger_activity.activityid LEFT JOIN vtiger_emaildetails ON vtiger_emaildetails.emailid = vtiger_activity.activityid"; $query .= getNonAdminAccessControlQuery($module, $current_user); $query .= "WHERE vtiger_activity.activitytype = 'Emails'"; $query .= "AND vtiger_crmentity.deleted = 0 " . $where; break; Case "Faq": $query = "SELECT vtiger_crmentity.crmid, vtiger_crmentity.createdtime, vtiger_crmentity.modifiedtime, vtiger_faq.* FROM vtiger_faq INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_faq.id LEFT JOIN vtiger_products ON vtiger_faq.product_id = vtiger_products.productid"; $query .= getNonAdminAccessControlQuery($module, $current_user); $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where; break; Case "Vendors": $query = "SELECT vtiger_crmentity.crmid, vtiger_vendor.* FROM vtiger_vendor INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_vendor.vendorid INNER JOIN vtiger_vendorcf ON vtiger_vendor.vendorid = vtiger_vendorcf.vendorid WHERE vtiger_crmentity.deleted = 0 " . $where; break; Case "PriceBooks": $query = "SELECT vtiger_crmentity.crmid, vtiger_pricebook.*, vtiger_currency_info.currency_name FROM vtiger_pricebook INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_pricebook.pricebookid INNER JOIN vtiger_pricebookcf ON vtiger_pricebook.pricebookid = vtiger_pricebookcf.pricebookid LEFT JOIN vtiger_currency_info ON vtiger_pricebook.currency_id = vtiger_currency_info.id WHERE vtiger_crmentity.deleted = 0 " . $where; break; Case "Quotes": //Query modified to sort by assigned to $query = "SELECT vtiger_crmentity.*, vtiger_quotes.*, vtiger_quotesbillads.*, vtiger_quotesshipads.*, vtiger_potential.potentialname, vtiger_account.accountname, vtiger_currency_info.currency_name FROM vtiger_quotes INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_quotes.quoteid INNER JOIN vtiger_quotesbillads ON vtiger_quotes.quoteid = vtiger_quotesbillads.quotebilladdressid INNER JOIN vtiger_quotesshipads ON vtiger_quotes.quoteid = vtiger_quotesshipads.quoteshipaddressid LEFT JOIN vtiger_quotescf ON vtiger_quotes.quoteid = vtiger_quotescf.quoteid LEFT JOIN vtiger_currency_info ON vtiger_quotes.currency_id = vtiger_currency_info.id LEFT OUTER JOIN vtiger_account ON vtiger_account.accountid = vtiger_quotes.accountid LEFT OUTER JOIN vtiger_potential ON vtiger_potential.potentialid = vtiger_quotes.potentialid LEFT JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid = vtiger_quotes.contactid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid LEFT JOIN vtiger_users as vtiger_usersQuotes ON vtiger_usersQuotes.id = vtiger_quotes.inventorymanager"; $query .= getNonAdminAccessControlQuery($module, $current_user); $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where; break; Case "PurchaseOrder": //Query modified to sort by assigned to $query = "SELECT vtiger_crmentity.*, vtiger_purchaseorder.*, vtiger_pobillads.*, vtiger_poshipads.*, vtiger_vendor.vendorname, vtiger_currency_info.currency_name FROM vtiger_purchaseorder INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_purchaseorder.purchaseorderid LEFT OUTER JOIN vtiger_vendor ON vtiger_purchaseorder.vendorid = vtiger_vendor.vendorid LEFT JOIN vtiger_contactdetails ON vtiger_purchaseorder.contactid = vtiger_contactdetails.contactid INNER JOIN vtiger_pobillads ON vtiger_purchaseorder.purchaseorderid = vtiger_pobillads.pobilladdressid INNER JOIN vtiger_poshipads ON vtiger_purchaseorder.purchaseorderid = vtiger_poshipads.poshipaddressid LEFT JOIN vtiger_purchaseordercf ON vtiger_purchaseordercf.purchaseorderid = vtiger_purchaseorder.purchaseorderid LEFT JOIN vtiger_currency_info ON vtiger_purchaseorder.currency_id = vtiger_currency_info.id LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid"; $query .= getNonAdminAccessControlQuery($module, $current_user); $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where; break; Case "SalesOrder": //Query modified to sort by assigned to $query = "SELECT vtiger_crmentity.*, vtiger_salesorder.*, vtiger_sobillads.*, vtiger_soshipads.*, vtiger_quotes.subject AS quotename, vtiger_account.accountname, vtiger_currency_info.currency_name FROM vtiger_salesorder INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_salesorder.salesorderid INNER JOIN vtiger_sobillads ON vtiger_salesorder.salesorderid = vtiger_sobillads.sobilladdressid INNER JOIN vtiger_soshipads ON vtiger_salesorder.salesorderid = vtiger_soshipads.soshipaddressid LEFT JOIN vtiger_salesordercf ON vtiger_salesordercf.salesorderid = vtiger_salesorder.salesorderid LEFT JOIN vtiger_currency_info ON vtiger_salesorder.currency_id = vtiger_currency_info.id LEFT OUTER JOIN vtiger_quotes ON vtiger_quotes.quoteid = vtiger_salesorder.quoteid LEFT OUTER JOIN vtiger_account ON vtiger_account.accountid = vtiger_salesorder.accountid LEFT JOIN vtiger_contactdetails ON vtiger_salesorder.contactid = vtiger_contactdetails.contactid LEFT JOIN vtiger_potential ON vtiger_potential.potentialid = vtiger_salesorder.potentialid LEFT JOIN vtiger_invoice_recurring_info ON vtiger_invoice_recurring_info.salesorderid = vtiger_salesorder.salesorderid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid"; $query .= getNonAdminAccessControlQuery($module, $current_user); $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where; break; Case "Invoice": //Query modified to sort by assigned to //query modified -Code contribute by Geoff(http://forums.vtiger.com/viewtopic.php?t=3376) $query = "SELECT vtiger_crmentity.*, vtiger_invoice.*, vtiger_invoicebillads.*, vtiger_invoiceshipads.*, vtiger_salesorder.subject AS salessubject, vtiger_account.accountname, vtiger_currency_info.currency_name FROM vtiger_invoice INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_invoice.invoiceid INNER JOIN vtiger_invoicebillads ON vtiger_invoice.invoiceid = vtiger_invoicebillads.invoicebilladdressid INNER JOIN vtiger_invoiceshipads ON vtiger_invoice.invoiceid = vtiger_invoiceshipads.invoiceshipaddressid LEFT JOIN vtiger_currency_info ON vtiger_invoice.currency_id = vtiger_currency_info.id LEFT OUTER JOIN vtiger_salesorder ON vtiger_salesorder.salesorderid = vtiger_invoice.salesorderid LEFT OUTER JOIN vtiger_account ON vtiger_account.accountid = vtiger_invoice.accountid LEFT JOIN vtiger_contactdetails ON vtiger_contactdetails.contactid = vtiger_invoice.contactid INNER JOIN vtiger_invoicecf ON vtiger_invoice.invoiceid = vtiger_invoicecf.invoiceid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid"; $query .= getNonAdminAccessControlQuery($module, $current_user); $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where; break; Case "Campaigns": //Query modified to sort by assigned to //query modified -Code contribute by Geoff(http://forums.vtiger.com/viewtopic.php?t=3376) $query = "SELECT vtiger_crmentity.*, vtiger_campaign.* FROM vtiger_campaign INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = vtiger_campaign.campaignid INNER JOIN vtiger_campaignscf ON vtiger_campaign.campaignid = vtiger_campaignscf.campaignid LEFT JOIN vtiger_groups ON vtiger_groups.groupid = vtiger_crmentity.smownerid LEFT JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smownerid LEFT JOIN vtiger_products ON vtiger_products.productid = vtiger_campaign.product_id"; $query .= getNonAdminAccessControlQuery($module, $current_user); $query .= "WHERE vtiger_crmentity.deleted = 0 " . $where; break; Case "Users": $query = "SELECT id,user_name,first_name,last_name,email1,phone_mobile,phone_work,is_admin,status,email2, vtiger_user2role.roleid as roleid,vtiger_role.depth as depth FROM vtiger_users INNER JOIN vtiger_user2role ON vtiger_users.id = vtiger_user2role.userid INNER JOIN vtiger_role ON vtiger_user2role.roleid = vtiger_role.roleid WHERE deleted=0 AND status <> 'Inactive'" . $where; break; default: // vtlib customization: Include the module file $focus = CRMEntity::getInstance($module); $query = $focus->getListQuery($module, $where); // END } if ($module != 'Users') { $query = listQueryNonAdminChange($query, $module); } $log->debug("Exiting getListQuery method ..."); return $query; } /* * This function stores the variables in session sent in list view url string. * Param $lv_array - list view session array * Param $noofrows - no of rows * Param $max_ent - maximum entires * Param $module - module name * Param $related - related module * Return type void. */ function setSessionVar($lv_array, $noofrows, $max_ent, $module = '', $related = '') { $start = ''; if ($noofrows >= 1) { $lv_array['start'] = 1; $start = 1; } elseif ($related != '' && $noofrows == 0) { $lv_array['start'] = 1; $start = 1; } else { $lv_array['start'] = 0; $start = 0; } if (isset($_REQUEST['start']) && $_REQUEST['start'] != '') { $lv_array['start'] = ListViewSession::getRequestStartPage(); $start = ListViewSession::getRequestStartPage(); } elseif ($_SESSION['rlvs'][$module][$related]['start'] != '') { if ($related != '') { $lv_array['start'] = $_SESSION['rlvs'][$module][$related]['start']; $start = $_SESSION['rlvs'][$module][$related]['start']; } } if (isset($_REQUEST['viewname']) && $_REQUEST['viewname'] != '') $lv_array['viewname'] = vtlib_purify($_REQUEST['viewname']); if ($related == '') $_SESSION['lvs'][$_REQUEST['module']] = $lv_array; else $_SESSION['rlvs'][$module][$related] = $lv_array; if ($start < ceil($noofrows / $max_ent) && $start != '') { $start = ceil($noofrows / $max_ent); if ($related == '') $_SESSION['lvs'][$currentModule]['start'] = $start; } } /* * Function to get the table headers for related listview * Param $navigation_arrray - navigation values in array * Param $url_qry - url string * Param $module - module name * Param $action- action file name * Param $viewid - view id * Returns an string value */ function getRelatedTableHeaderNavigation($navigation_array, $url_qry, $module, $related_module, $recordid) { global $log, $app_strings, $adb; $log->debug("Entering getTableHeaderNavigation(" . $navigation_array . "," . $url_qry . "," . $module . "," . $action_val . "," . $viewid . ") method ..."); global $theme; $relatedTabId = getTabid($related_module); $tabid = getTabid($module); $relatedListResult = $adb->pquery('SELECT * FROM vtiger_relatedlists WHERE tabid=? AND related_tabid=?', array($tabid, $relatedTabId)); if (empty($relatedListResult)) return; $relatedListRow = $adb->fetch_row($relatedListResult); $header = $relatedListRow['label']; $actions = $relatedListRow['actions']; $functionName = $relatedListRow['name']; $urldata = "module=$module&action={$module}Ajax&file=DetailViewAjax&record={$recordid}&" . "ajxaction=LOADRELATEDLIST&header={$header}&relation_id={$relatedListRow['relation_id']}" . "&actions={$actions}&{$url_qry}"; $formattedHeader = str_replace(' ', '', $header); $target = 'tbl_' . $module . '_' . $formattedHeader; $imagesuffix = $module . '_' . $formattedHeader; $output = ''; if (($navigation_array['prev']) != 0) { $output .= ' '; $output .= ' '; } else { $output .= ' '; $output .= ' '; } $jsHandler = "return VT_disableFormSubmit(event);"; $output .= ""; $output .= ""; $computeCount = $_REQUEST['withCount']; if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false) === true || ((boolean) $computeCount) == true) { $output .= $app_strings['LBL_LIST_OF'] . ' ' . $navigation_array['verylast']; } else { $output .= "" . $app_strings[ " . $app_strings["; } $output .= ''; if (($navigation_array['next']) != 0) { $output .= ' '; $output .= ' '; } else { $output .= ' '; $output .= ' '; } $output .= ''; $log->debug("Exiting getTableHeaderNavigation method ..."); if ($navigation_array['first'] == '') return; else return $output; } /* Function to get the Entity Id of a given Entity Name */ function getEntityId($module, $entityName) { global $log, $adb; $log->info("in getEntityId " . $entityName); $query = "select fieldname,tablename,entityidfield from vtiger_entityname where modulename = ?"; $result = $adb->pquery($query, array($module)); $fieldsname = $adb->query_result($result, 0, 'fieldname'); $tablename = $adb->query_result($result, 0, 'tablename'); $entityidfield = $adb->query_result($result, 0, 'entityidfield'); if (!(strpos($fieldsname, ',') === false)) { $fieldlists = explode(',', $fieldsname); $fieldsname = "trim(concat("; $fieldsname = $fieldsname . implode(",' ',", $fieldlists); $fieldsname = $fieldsname . "))"; $entityName = trim($entityName); } if ($entityName != '') { $sql = "select $entityidfield from $tablename INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = $tablename.$entityidfield " . " WHERE vtiger_crmentity.deleted = 0 and $fieldsname=?"; $result = $adb->pquery($sql, array($entityName)); if ($adb->num_rows($result) > 0) { $entityId = $adb->query_result($result, 0, $entityidfield); } } if (!empty($entityId)) return $entityId; else return 0; } function decode_html($str) { global $default_charset; // Direct Popup action or Ajax Popup action should be treated the same. if ($_REQUEST['action'] == 'Popup' || $_REQUEST['file'] == 'Popup') return html_entity_decode($str); else return html_entity_decode($str, ENT_QUOTES, $default_charset); } function popup_decode_html($str) { global $default_charset; $slashes_str = popup_from_html($str); $slashes_str = htmlspecialchars($slashes_str, ENT_QUOTES, $default_charset); return decode_html(br2nl($slashes_str)); } //function added to check the text length in the listview. function textlength_check($field_val) { global $listview_max_textlength, $default_charset; if ($listview_max_textlength && $listview_max_textlength > 0) { $temp_val = preg_replace("/(<\/?)(\w+)([^>]*>)/i", "", $field_val); if (function_exists('mb_strlen')) { if (mb_strlen(html_entity_decode($temp_val)) > $listview_max_textlength) { $temp_val = mb_substr(preg_replace("/(<\/?)(\w+)([^>]*>)/i", "", $field_val), 0, $listview_max_textlength, $default_charset) . '...'; } } elseif (strlen(html_entity_decode($field_val)) > $listview_max_textlength) { $temp_val = substr(preg_replace("/(<\/?)(\w+)([^>]*>)/i", "", $field_val), 0, $listview_max_textlength) . '...'; } } else { $temp_val = $field_val; } return $temp_val; } /** * this function accepts a modulename and a fieldname and returns the first related module for it * it expects the uitype of the field to be 10 * @param string $module - the modulename * @param string $fieldname - the field name * @return string $data - the first related module */ function getFirstModule($module, $fieldname) { global $adb; $sql = "select fieldid, uitype from vtiger_field where tabid=? and fieldname=?"; $result = $adb->pquery($sql, array(getTabid($module), $fieldname)); if ($adb->num_rows($result) > 0) { $uitype = $adb->query_result($result, 0, "uitype"); if ($uitype == 10) { $fieldid = $adb->query_result($result, 0, "fieldid"); $sql = "select * from vtiger_fieldmodulerel where fieldid=?"; $result = $adb->pquery($sql, array($fieldid)); $count = $adb->num_rows($result); if ($count > 0) { $data = $adb->query_result($result, 0, "relmodule"); } } } return $data; } function VT_getSimpleNavigationValues($start, $size, $total) { $prev = $start - 1; if ($prev < 0) { $prev = 0; } if ($total === null) { return array('start' => $start, 'first' => $start, 'current' => $start, 'end' => $start, 'end_val' => $size, 'allflag' => 'All', 'prev' => $prev, 'next' => $start + 1, 'verylast' => 'last'); } if (empty($total)) { $lastPage = 1; } else { $lastPage = ceil($total / $size); } $next = $start + 1; if ($next > $lastPage) { $next = 0; } return array('start' => $start, 'first' => $start, 'current' => $start, 'end' => $start, 'end_val' => $size, 'allflag' => 'All', 'prev' => $prev, 'next' => $next, 'verylast' => $lastPage); } function getRecordRangeMessage($listResult, $limitStartRecord, $totalRows = '') { global $adb, $app_strings; $numRows = $adb->num_rows($listResult); $recordListRangeMsg = ''; if ($numRows > 0) { $recordListRangeMsg = $app_strings['LBL_SHOWING'] . ' ' . $app_strings['LBL_RECORDS'] . ' ' . ($limitStartRecord + 1) . ' - ' . ($limitStartRecord + $numRows); if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false) === true) { $recordListRangeMsg .= ' ' . $app_strings['LBL_LIST_OF'] . " $totalRows"; } } return $recordListRangeMsg; } function listQueryNonAdminChange($query, $module, $scope = '') { $instance = CRMEntity::getInstance($module); return $instance->listQueryNonAdminChange($query, $scope); } function html_strlen($str) { $chars = preg_split('/(&[^;\s]+;)|/', $str, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); return count($chars); } function html_substr($str, $start, $length = NULL) { if ($length === 0) return ""; //check if we can simply use the built-in functions if (strpos($str, '&') === false) { //No entities. Use built-in functions if ($length === NULL) return substr($str, $start); else return substr($str, $start, $length); } // create our array of characters and html entities $chars = preg_split('/(&[^;\s]+;)|/', $str, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE); $html_length = count($chars); // check if we can predict the return value and save some processing time if (($html_length === 0) or ($start >= $html_length) or (isset($length) and ($length <= -$html_length))) return ""; //calculate start position if ($start >= 0) { $real_start = $chars[$start][1]; } else { //start'th character from the end of string $start = max($start, -$html_length); $real_start = $chars[$html_length + $start][1]; } if (!isset($length)) // no $length argument passed, return all remaining characters return substr($str, $real_start); else if ($length > 0) { // copy $length chars if ($start + $length >= $html_length) { // return all remaining characters return substr($str, $real_start); } else { //return $length characters return substr($str, $real_start, $chars[max($start, 0) + $length][1] - $real_start); } } else { //negative $length. Omit $length characters from end return substr($str, $real_start, $chars[$html_length + $length][1] - $real_start); } } function counterValue() { static $counter = 0; $counter = $counter + 1; return $counter; } function getUsersPasswordInfo(){ global $adb; $sql = "SELECT user_name, user_hash FROM vtiger_users WHERE deleted=?"; $result = $adb->pquery($sql, array(0)); $usersList = array(); for ($i=0; $i<$adb->num_rows($result); $i++) { $userList['name'] = $adb->query_result($result, $i, "user_name"); $userList['hash'] = $adb->query_result($result, $i, "user_hash"); $usersList[] = $userList; } return $usersList; } ?>