示例#1
0
 public static function getConfig($type)
 {
     $log = vglobal('log');
     $log->debug('Start ' . __CLASS__ . ':' . __FUNCTION__ . " | Type: {$type}");
     $cache = Vtiger_Cache::get('MarketingProcesses', $type);
     if ($cache) {
         $log->debug('End ' . __CLASS__ . ':' . __FUNCTION__);
         return $cache;
     }
     $db = PearDatabase::getInstance();
     $result = $db->pquery('SELECT * FROM yetiforce_proc_marketing WHERE type = ?;', [$type]);
     if ($db->num_rows($result) == 0) {
         return [];
     }
     $config = [];
     for ($i = 0; $i < $db->num_rows($result); ++$i) {
         $param = $db->query_result_raw($result, $i, 'param');
         $value = $db->query_result_raw($result, $i, 'value');
         if (in_array($param, ['groups', 'status', 'convert_status'])) {
             $config[$param] = $value == '' ? [] : explode(',', $value);
         } else {
             $config[$param] = $value;
         }
     }
     Vtiger_Cache::set('MarketingProcesses', $type, $config);
     $log->debug('End ' . __CLASS__ . ':' . __FUNCTION__);
     return $config;
 }
示例#2
0
 /**
  * Function to retrieve name fields of a module
  * @return <array> - array which contains fields which together construct name fields
  */
 public function getNameFields()
 {
     $nameFieldObject = Vtiger_Cache::get('EntityField', $this->getName());
     $moduleName = $this->getName();
     if ($nameFieldObject && $nameFieldObject->fieldname) {
         $this->nameFields = explode(',', $nameFieldObject->fieldname);
     } else {
         $adb = PearDatabase::getInstance();
         $query = "SELECT fieldname, tablename, entityidfield FROM vtiger_entityname WHERE tabid = ?";
         $result = $adb->pquery($query, array(getTabid('Calendar')));
         $this->nameFields = array();
         if ($result) {
             $rowCount = $adb->num_rows($result);
             if ($rowCount > 0) {
                 $fieldNames = $adb->query_result($result, 0, 'fieldname');
                 $this->nameFields = explode(',', $fieldNames);
             }
         }
         $entiyObj = new stdClass();
         $entiyObj->basetable = $adb->query_result($result, 0, 'tablename');
         $entiyObj->basetableid = $adb->query_result($result, 0, 'entityidfield');
         $entiyObj->fieldname = $fieldNames;
         Vtiger_Cache::set('EntityField', $this->getName(), $entiyObj);
     }
     return $this->nameFields;
 }
示例#3
0
 /**
  * Function to get the Display Value, for the current field type with given DB Insert Value
  * @param <Object> $value
  * @return <Object>
  */
 public function getDisplayValue($tree, $record = false, $recordInstance = false, $rawText = false)
 {
     $template = $this->get('field')->getFieldParams();
     $name = Vtiger_Cache::get('TreeData' . $template, $tree);
     if ($name) {
         return $name;
     }
     $adb = PearDatabase::getInstance();
     $result = $adb->pquery('SELECT * FROM vtiger_trees_templates_data WHERE templateid = ? AND tree = ?', [$template, $tree]);
     $parentName = '';
     $module = $this->get('field')->getModuleName();
     $name = false;
     if ($adb->num_rows($result)) {
         if ($adb->query_result_raw($result, 0, 'depth') > 0) {
             $parenttrre = $adb->query_result_raw($result, 0, 'parenttrre');
             $cut = strlen('::' . $tree);
             $parenttrre = substr($parenttrre, 0, -$cut);
             $pieces = explode('::', $parenttrre);
             $parent = end($pieces);
             $result2 = $adb->pquery("SELECT name FROM vtiger_trees_templates_data WHERE templateid = ? AND tree = ?", [$template, $parent]);
             $parentName = $adb->query_result_raw($result2, 0, 'name');
             $parentName = '(' . vtranslate($parentName, $module) . ') ';
         }
         $name = $parentName . vtranslate($adb->query_result($result, 0, 'name'), $module);
     }
     Vtiger_Cache::set('TreeData' . $template, $tree, $name);
     return $name;
 }
示例#4
0
 public static function getConfig($process, $type, $procesParam = false)
 {
     $log = vglobal('log');
     $log->debug('Start ' . __CLASS__ . ':' . __FUNCTION__ . " | Process: {$process}, Type: {$type}");
     $db = PearDatabase::getInstance();
     $processList = ['marketing' => 'yetiforce_proc_marketing', 'sales' => 'yetiforce_proc_sales'];
     $cache = Vtiger_Cache::get('ProcessesModel', $process . $type);
     if ($cache) {
         $log->debug('End ' . __CLASS__ . ':' . __FUNCTION__);
         return $cache;
     }
     $result = $db->pquery('SELECT * FROM ' . $processList[$process] . ' WHERE type = ?;', [$type]);
     if ($db->num_rows($result) == 0) {
         return [];
     }
     $config = [];
     for ($i = 0; $i < $db->num_rows($result); ++$i) {
         $param = $db->query_result_raw($result, $i, 'param');
         $value = $db->query_result_raw($result, $i, 'value');
         if ($param == 'users') {
             $config[$param] = $value == '' ? [] : explode(',', $value);
         } else {
             $config[$param] = $value;
         }
         if ($procesParam != false && $param == $procesParam) {
             Vtiger_Cache::set('ProcessesModel', $process . $type . $procesParam, $value);
             $log->debug('End ' . __CLASS__ . ':' . __FUNCTION__);
             return $value;
         }
     }
     Vtiger_Cache::set('ProcessesModel', $process . $type, $config);
     $log->debug('End ' . __CLASS__ . ':' . __FUNCTION__);
     return $config;
 }
示例#5
0
	/**
	 * Get invnetory instance
	 * @param string $moduleName Module name
	 * @return Vtiger_Inventory_Model instance
	 */
	public static function getInstance($moduleName)
	{
		$instance = Vtiger_Cache::get('Inventory', $moduleName);
		if (!$instance) {
			$modelClassName = Vtiger_Loader::getComponentClassName('Model', 'Inventory', $moduleName);
			$instance = new $modelClassName();
			$instance->initialize($moduleName);
			Vtiger_Cache::set('Inventory', $moduleName, $instance);
		}
		return $instance;
	}
 public static function getInstance($module)
 {
     $instance = Vtiger_Cache::get('transferOwnership', $module);
     if (!$instance) {
         $modelClassName = Vtiger_Loader::getComponentClassName('Model', 'TransferOwnership', $module);
         $instance = new $modelClassName();
         $instance->set('module', $module);
         Vtiger_Cache::set('transferOwnership', $module, $instance);
     }
     return $instance;
 }
示例#7
0
 /**
  * Function to get all the available picklist values for the current field
  * @return <Array> List of picklist values if the field is of type picklist or multipicklist, null otherwise.
  */
 public function getLimits()
 {
     $limits = Vtiger_Cache::get('Inventory', 'limits');
     if (!$limits) {
         $db = PearDatabase::getInstance();
         $limits = [];
         $result = $db->pquery('SELECT * FROM a_yf_inventory_limits WHERE status = ?', [0]);
         while ($row = $db->fetch_array($result)) {
             $limits[$row['id']] = $row;
         }
         Vtiger_Cache::set('Inventory', 'limits', $limits);
     }
     return $limits;
 }
示例#8
0
 /**
  * Function to get all the available picklist values for the current field
  * @return <Array> List of picklist values if the field is of type picklist or multipicklist, null otherwise.
  */
 public function getTaxes()
 {
     $taxs = Vtiger_Cache::get('taxes', 'global');
     if (!$taxs) {
         $db = PearDatabase::getInstance();
         $taxs = [];
         $result = $db->pquery('SELECT * FROM a_yf_taxes_global WHERE status = ?', [0]);
         while ($row = $db->fetch_array($result)) {
             $taxs[$row['id']] = $row;
         }
         Vtiger_Cache::set('taxes', 'global', $taxs);
     }
     return $taxs;
 }
 /**
  * Loading the list of multireference fields
  * @param string $sourceModule Source module name
  * @param string $destinationModule Destination module name
  * @return array
  */
 public function getMultiReferenceValueFields($sourceModule, $destinationModule)
 {
     $return = Vtiger_Cache::get('mrvf-' . $sourceModule, $destinationModule);
     if (!$return) {
         $db = PearDatabase::getInstance();
         $query = 'SELECT * FROM vtiger_field WHERE tabid = ? AND presence <> ? AND fieldparams LIKE \'{"module":"' . $destinationModule . '"%\';';
         $result = $db->pquery($query, [Vtiger_Functions::getModuleId($sourceModule), 1]);
         $return = [];
         while ($field = $db->fetch_array($result)) {
             $return[] = $field;
         }
         Vtiger_Cache::set('mrvf-' . $sourceModule, $destinationModule, $return);
     }
     return $return;
 }
示例#10
0
 /**
  * Function to get the instance of the CompanyDetails model for a given organization id
  * @param <Number> $id
  * @return Vtiger_CompanyDetails_Model instance
  */
 public static function getInstanceById($id = 1) {
     $companyDetails = Vtiger_Cache::get('vtiger', 'organization');
     if (!$companyDetails) {
         $db = PearDatabase::getInstance();
         $sql = 'SELECT * FROM vtiger_organizationdetails WHERE organization_id=?';
         $params = array($id);
         $result = $db->pquery($sql, $params);
         $companyDetails = new self();
         if ($result && $db->num_rows($result) > 0) {
             $resultRow = $db->query_result_rowdata($result, 0);
             $companyDetails->setData($resultRow);
         }
         Vtiger_Cache::set('vtiger','organization',$companyDetails);
     }
     return $companyDetails;
 }
示例#11
0
 public static function getConfig($type = false)
 {
     $log = vglobal('log');
     $log->debug('Start ' . __CLASS__ . ':' . __FUNCTION__ . " | Type: {$type}");
     $cache = Vtiger_Cache::get('SalesProcesses', $type == false ? 'all' : $type);
     if ($cache) {
         $log->debug('End ' . __CLASS__ . ':' . __FUNCTION__);
         return $cache;
     }
     $db = PearDatabase::getInstance();
     $params = [];
     $returnArrayForFields = ['groups', 'status', 'calculationsstatus', 'salesstage', 'salesstage', 'assetstatus'];
     $sql = 'SELECT * FROM yetiforce_proc_sales';
     if ($type) {
         $sql .= ' WHERE type = ?';
         $params[] = $type;
     }
     $result = $db->pquery($sql, $params);
     if ($db->num_rows($result) == 0) {
         return [];
     }
     $config = [];
     for ($i = 0; $i < $db->num_rows($result); ++$i) {
         $param = $db->query_result_raw($result, $i, 'param');
         $value = $db->query_result_raw($result, $i, 'value');
         if (in_array($param, $returnArrayForFields)) {
             $value = $value == '' ? [] : explode(',', $value);
         }
         if ($type) {
             $config[$param] = $value;
         } else {
             $config[$db->query_result_raw($result, $i, 'type')][$param] = $value;
         }
     }
     Vtiger_Cache::set('SalesProcesses', $type == false ? 'all' : $type, $config);
     $log->debug('End ' . __CLASS__ . ':' . __FUNCTION__);
     return $config;
 }
示例#12
0
 /**
  * Function to Preinitialize the module Field Permissions
  * @param <Integer> $tabid
  * @param <String> $accessmode
  * @return <Array>
  */
 public static function preFetchModuleFieldPermission($tabid, $accessmode = 'readonly')
 {
     $adb = PearDatabase::getInstance();
     $user = Users_Record_Model::getCurrentUserModel();
     $privileges = $user->getPrivileges();
     $profilelist = $privileges->get('profiles');
     if (count($profilelist) > 0) {
         if ($accessmode == 'readonly') {
             $query = "SELECT vtiger_profile2field.visible,vtiger_field.fieldid FROM vtiger_field INNER JOIN vtiger_profile2field ON vtiger_profile2field.fieldid=vtiger_field.fieldid INNER JOIN vtiger_def_org_field ON vtiger_def_org_field.fieldid=vtiger_field.fieldid WHERE vtiger_field.tabid=? AND vtiger_profile2field.visible=0 AND vtiger_def_org_field.visible=0  AND vtiger_profile2field.profileid in (" . generateQuestionMarks($profilelist) . ") AND vtiger_field.presence in (0,2) GROUP BY vtiger_field.fieldid";
         } else {
             $query = "SELECT vtiger_profile2field.visible,vtiger_field.fieldid FROM vtiger_field INNER JOIN vtiger_profile2field ON vtiger_profile2field.fieldid=vtiger_field.fieldid INNER JOIN vtiger_def_org_field ON vtiger_def_org_field.fieldid=vtiger_field.fieldid WHERE vtiger_field.tabid=? AND vtiger_profile2field.visible=0 AND vtiger_profile2field.readonly=0 AND vtiger_def_org_field.visible=0  AND vtiger_profile2field.profileid in (" . generateQuestionMarks($profilelist) . ") AND vtiger_field.presence in (0,2) GROUP BY vtiger_field.fieldid";
         }
         $params = array($tabid, $profilelist);
     } else {
         if ($accessmode == 'readonly') {
             $query = "SELECT vtiger_profile2field.visible,vtiger_field.fieldid FROM vtiger_field INNER JOIN vtiger_profile2field ON vtiger_profile2field.fieldid=vtiger_field.fieldid INNER JOIN vtiger_def_org_field ON vtiger_def_org_field.fieldid=vtiger_field.fieldid WHERE vtiger_field.tabid=? AND vtiger_profile2field.visible=0 AND vtiger_def_org_field.visible=0  AND vtiger_field.presence in (0,2) GROUP BY vtiger_field.fieldid";
         } else {
             $query = "SELECT vtiger_profile2field.visible,vtiger_field.fieldid FROM vtiger_field INNER JOIN vtiger_profile2field ON vtiger_profile2field.fieldid=vtiger_field.fieldid INNER JOIN vtiger_def_org_field ON vtiger_def_org_field.fieldid=vtiger_field.fieldid WHERE vtiger_field.tabid=? AND vtiger_profile2field.visible=0 AND vtiger_profile2field.readonly=0 AND vtiger_def_org_field.visible=0  AND vtiger_field.presence in (0,2) GROUP BY vtiger_field.fieldid";
         }
         $params = array($tabid);
     }
     $result = $adb->pquery($query, $params);
     $modulePermission = array();
     $noOfFields = $adb->num_rows($result);
     for ($i = 0; $i < $noOfFields; ++$i) {
         $row = $adb->query_result_rowdata($result, $i);
         $modulePermission[$row['fieldid']] = $row['visible'];
     }
     Vtiger_Cache::set('modulePermission-' . $accessmode, $tabid, $modulePermission);
     return $modulePermission;
 }
示例#13
0
 protected static function preModuleInitialize2()
 {
     if (!Vtiger_Cache::get('EntityField', 'all')) {
         $db = PearDatabase::getInstance();
         // Initialize meta information - to speed up instance creation (Vtiger_ModuleBasic::initialize2)
         $result = $db->pquery('SELECT modulename,tablename,entityidfield,fieldname FROM vtiger_entityname', array());
         for ($index = 0, $len = $db->num_rows($result); $index < $len; ++$index) {
             $fieldNames = $db->query_result($result, $index, 'fieldname');
             $modulename = $db->query_result($result, $index, 'modulename');
             //added to handle entity names for these two modules
             //@Note: need to move these to database
             switch ($modulename) {
                 case 'HelpDesk':
                     $fieldNames = 'ticket_title';
                     break;
                 case 'Documents':
                     $fieldNames = 'notes_title';
                     break;
             }
             $entiyObj = new stdClass();
             $entiyObj->basetable = $db->query_result($result, $index, 'tablename');
             $entiyObj->basetableid = $db->query_result($result, $index, 'entityidfield');
             $entiyObj->fieldname = $fieldNames;
             Vtiger_Cache::set('EntityField', $modulename, $entiyObj);
             Vtiger_Cache::set('EntityField', 'all', true);
         }
     }
 }
示例#14
0
 static function updateEntityNameInfo($module, $data)
 {
     self::$_module_entityname_cache[$module] = $data;
     Vtiger_Cache::set('EntityInfo', $module, self::$_module_entityname_cache[$module]);
 }
示例#15
0
/** Function to get the Group Id for a given group groupname
 *  @param $groupname -- Groupname
 *  @returns Group Id -- Type Integer
 */
function getGrpId($groupname)
{
    $log = vglobal('log');
    $log->debug("Entering getGrpId(" . $groupname . ") method ...");
    $adb = PearDatabase::getInstance();
    $groupid = Vtiger_Cache::get('group', $groupname);
    if (!$groupid && $groupid !== 0) {
        $result = $adb->pquery("select groupid from vtiger_groups where groupname=?", array($groupname));
        $groupid = $adb->num_rows($result) > 0 ? $adb->query_result($result, 0, 'groupid') : 0;
        Vtiger_Cache::set('group', $groupname, $groupid);
    }
    $log->debug("Exiting getGrpId method ...");
    return $groupid;
}
示例#16
0
 /**
  * Get field name for the module taxes
  * @param string $moduleName Module name
  * @return string Tax field name
  */
 public function getTaxField($moduleName)
 {
     $cache = Vtiger_Cache::get('InventoryIsGetTaxField', $moduleName);
     if ($cache) {
         return $cache;
     }
     $return = false;
     if ($moduleName == '') {
         return $return;
     }
     $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
     foreach ($moduleModel->getFields() as $fieldName => $fieldModel) {
         if ($fieldModel->get('uitype') == 303) {
             $return = $fieldName;
             continue;
         }
     }
     Vtiger_Cache::set('InventoryIsGetTaxField', $moduleName, $return);
     return $return;
 }
示例#17
0
 /**
  * Function to get the share users list
  * @param int $record record ID
  * @param bool $returnArray whether return data in an array
  * @return array
  */
 public static function getSharedOwners($record, $moduleName = false)
 {
     $shownerid = Vtiger_Cache::get('SharedOwner', $record);
     if ($shownerid) {
         return $shownerid;
     }
     $db = PearDatabase::getInstance();
     if ($moduleName === false) {
         $recordMetaData = Vtiger_Functions::getCRMRecordMetadata($parentRecord);
         $moduleName = $recordMetaData['setype'];
     }
     $shownersTable = self::getShownerTable($moduleName);
     $result = $db->pquery('SELECT DISTINCT userid FROM ' . $shownersTable . ' WHERE crmid = ?', [$record]);
     $values = [];
     while (($shownerid = $db->getSingleValue($result)) !== false) {
         $values[] = $shownerid;
     }
     Vtiger_Cache::set('SharedOwner', $record, $values);
     return $values;
 }
示例#18
0
 public function checkFiltersForRecord($recordId)
 {
     $test = Vtiger_Cache::get('mfCheckFiltersForRecord' . $this->getId(), $recordId);
     if ($test !== false) {
         return $test;
     }
     vimport("~/modules/com_vtiger_workflow/VTJsonCondition.inc");
     vimport("~/modules/com_vtiger_workflow/VTEntityCache.inc");
     vimport("~/include/Webservices/Retrieve.php");
     $conditionStrategy = new VTJsonCondition();
     $currentUser = Users_Record_Model::getCurrentUserModel();
     $entityCache = new VTEntityCache($currentUser);
     $wsId = vtws_getWebserviceEntityId($this->getName(), $recordId);
     $test = $conditionStrategy->evaluate($this->getRaw('conditions'), $entityCache, $wsId);
     Vtiger_Cache::set('mfCheckFiltersForRecord' . $this->getId(), $recordId, $test);
     return $test;
 }
示例#19
0
 public static function getInstanceFromFieldId($fieldId, $moduleTabId = false)
 {
     $fieldModel = Vtiger_Cache::get('FieldModel', $fieldId);
     if ($fieldModel) {
         return $fieldModel;
     }
     $field = Vtiger_Functions::getModuleFieldInfoWithId($fieldId);
     $fieldModel = new self();
     $fieldModel->initialize($field);
     Vtiger_Cache::set('FieldModel', $fieldId, $fieldModel);
     return $fieldModel;
 }
示例#20
0
 /**
  * Return list of special functions for chosen module
  * @param string $moduleName - name of the module
  * @return array array of special functions
  */
 public static function getSpecialFunctions($moduleName)
 {
     $specialFunctions = Vtiger_Cache::get('PdfSpecialFunctions', $moduleName);
     if ($specialFunctions) {
         return $specialFunctions;
     }
     $specialFunctions = [];
     if (file_exists('modules/' . $moduleName . '/pdfs/special_functions')) {
         foreach (new DirectoryIterator('modules/' . $moduleName . '/pdfs/special_functions') as $file) {
             if ($file->isFile() && $file->getExtension() == 'php' && $file->getFilename() != 'example.php') {
                 include 'modules/' . $moduleName . '/pdfs/special_functions/' . $file->getFilename();
                 $functionName = $file->getBasename('.php');
                 $sfClassName = 'Pdf_' . $functionName;
                 $pdfInstance = new $sfClassName();
                 if (in_array('all', $pdfInstance->permittedModules) || in_array($moduleName, $pdfInstance->permittedModules)) {
                     $specialFunctions[$functionName] = $pdfInstance;
                 }
             }
         }
     }
     foreach (new DirectoryIterator('modules/Vtiger/pdfs/special_functions/') as $file) {
         if ($file->isFile() && $file->getExtension() == 'php' && $file->getFilename() != 'example.php' && !in_array($file->getBasename('.php'), $specialFunctions)) {
             include 'modules/Vtiger/pdfs/special_functions/' . $file->getFilename();
             $functionName = $file->getBasename('.php');
             $sfClassName = 'Pdf_' . $functionName;
             $pdfInstance = new $sfClassName();
             if (in_array('all', $pdfInstance->permittedModules) || in_array($moduleName, $pdfInstance->permittedModules)) {
                 $specialFunctions[$functionName] = $pdfInstance;
             }
         }
     }
     Vtiger_Cache::set('PdfSpecialFunctions', $moduleName, $specialFunctions);
     return $specialFunctions;
 }
示例#21
0
 /**
  * Function to get all the Vtiger Link Models for a module of the given list of link types
  * @param <Number> $tabid
  * @param <Array> $type
  * @param <Array> $parameters
  * @return <Array> - List of Vtiger_Link_Model instances
  */
 public static function getAllByType($tabid, $type = false, $parameters = false)
 {
     $links = Vtiger_Cache::get('links-' . $tabid, $type);
     if (!$links) {
         $links = parent::getAllByType($tabid, $type, $parameters);
         Vtiger_Cache::set('links-' . $tabid, $type, $links);
     }
     $linkModels = array();
     foreach ($links as $linkType => $linkObjects) {
         foreach ($linkObjects as $linkObject) {
             $linkModels[$linkType][] = self::getInstanceFromLinkObject($linkObject);
         }
     }
     if (!is_array($type)) {
         $type = array($type);
     }
     $diffTypes = array_diff($type, array_keys($linkModels));
     foreach ($diffTypes as $linkType) {
         $linkModels[$linkType] = array();
     }
     return $linkModels;
 }
示例#22
0
 /**
  * Function to get the share users list
  * @param int $record record ID
  * @param bool $returnArray whether return data in an array
  * @return array
  */
 public static function getSharedOwners($record, $moduleName = false)
 {
     $shownerid = Vtiger_Cache::get('SharedOwner', $record);
     if ($shownerid) {
         return $shownerid;
     }
     $db = PearDatabase::getInstance();
     $result = $db->pquery('SELECT DISTINCT userid FROM u_yf_crmentity_showners WHERE crmid = ?', [$record]);
     $values = [];
     while (($shownerid = $db->getSingleValue($result)) !== false) {
         $values[] = $shownerid;
     }
     Vtiger_Cache::set('SharedOwner', $record, $values);
     return $values;
 }
示例#23
0
 /**
  * Function returns the instance of Folder model
  * @return <Reports_Folder_Model>
  */
 public static function getAll()
 {
     $db = PearDatabase::getInstance();
     $folders = Vtiger_Cache::get('reports', 'folders');
     if (!$folders) {
         $folders = array();
         $result = $db->pquery("SELECT * FROM vtiger_reportfolder ORDER BY foldername ASC", array());
         $noOfFolders = $db->num_rows($result);
         if ($noOfFolders > 0) {
             for ($i = 0; $i < $noOfFolders; $i++) {
                 $folderModel = Reports_Folder_Model::getInstance();
                 $values = $db->query_result_rowdata($result, $i);
                 $folders[$values['folderid']] = $folderModel->setData($values);
                 Vtiger_Cache::set('reportsFolder', $values['folderid'], $folderModel);
             }
         }
         Vtiger_Cache::set('reports', 'folders', $folders);
     }
     return $folders;
 }
示例#24
0
 public static function getAll($configurable = false)
 {
     global $log;
     $log->debug("Entering Vtiger_Action_Model::getAll(" . $configurable . ") method ...");
     $actionModels = Vtiger_Cache::get('vtiger', 'actions');
     if (!$actionModels) {
         $db = PearDatabase::getInstance();
         $sql = 'SELECT * FROM vtiger_actionmapping';
         $params = array();
         if ($configurable) {
             $sql .= ' WHERE actionname NOT IN (' . generateQuestionMarks(self::$nonConfigurableActions) . ')';
             array_push($params, self::$nonConfigurableActions);
         }
         $result = $db->pquery($sql, $params);
         $noOfRows = $db->num_rows($result);
         $actionModels = array();
         for ($i = 0; $i < $noOfRows; ++$i) {
             $actionModels[] = self::getInstanceFromQResult($result, $i);
         }
         Vtiger_Cache::set('vtiger', 'actions', $actionModels);
     }
     $log->debug("Exiting Vtiger_Action_Model::getAll(" . $configurable . ") method ...");
     return $actionModels;
 }
示例#25
0
 /**
  * Function to get all the accessible groups
  * @return <Array>
  */
 public function getAccessibleGroups($private = "", $module = false)
 {
     //TODO:Remove dependence on $_REQUEST for the module name in the below API
     $accessibleGroups = Vtiger_Cache::get('vtiger-' . $private, 'accessiblegroups');
     if (!$accessibleGroups) {
         $accessibleGroups = get_group_array(false, "ACTIVE", "", $private, $module);
         Vtiger_Cache::set('vtiger-' . $private, 'accessiblegroups', $accessibleGroups);
     }
     return get_group_array(false, "ACTIVE", "", $private);
 }
示例#26
0
 /**
  * Function to get visibilty permissions of a Field
  * @param <String> $accessmode
  * @return <Boolean>
  */
 public function getPermissions($accessmode = 'readonly')
 {
     $user = Users_Record_Model::getCurrentUserModel();
     $privileges = $user->getPrivileges();
     if ($privileges->hasGlobalReadPermission()) {
         return true;
     } else {
         $modulePermission = Vtiger_Cache::get('modulePermission-' . $accessmode, $this->getModuleId());
         if (!$modulePermission) {
             $modulePermissionCalendar = self::preFetchModuleFieldPermission(Vtiger_Functions::getModuleId('Calendar'), $accessmode);
             $modulePermissionEvents = self::preFetchModuleFieldPermission(Vtiger_Functions::getModuleId('Events'), $accessmode);
             $modulePermission = $modulePermissionCalendar + $modulePermissionEvents;
             Vtiger_Cache::set('modulePermission-' . $accessmode, $this->getModuleId(), $modulePermission);
         }
         if (array_key_exists($this->getId(), $modulePermission)) {
             return true;
         } else {
             return false;
         }
     }
 }
示例#27
0
 /**
  * Function to retrieve block instances for a module
  * @param <type> $moduleModel - module instance
  * @return <array> - list of Vtiger_Block_Model
  */
 public static function getAllForModule($moduleModel)
 {
     $blockObjects = Vtiger_Cache::get('ModuleBlock', $moduleModel->getName());
     if (!$blockObjects) {
         $blockObjects = parent::getAllForModule($moduleModel);
         Vtiger_Cache::set('ModuleBlock', $moduleModel->getName(), $blockObjects);
     }
     $blockModelList = array();
     if ($blockObjects) {
         foreach ($blockObjects as $blockObject) {
             $blockModelList[] = self::getInstanceFromBlockObject($blockObject);
         }
     }
     return $blockModelList;
 }
示例#28
0
 /**
  * Loading the list of multireference fields
  * @param string $sourceModule Source module name
  * @param string $destinationModule Destination module name
  * @return array
  */
 public static function getRelatedModules($moduleName)
 {
     $return = Vtiger_Cache::get('mrvf', $moduleName);
     if (!$return) {
         $db = PearDatabase::getInstance();
         $moduleId = Vtiger_Functions::getModuleId($moduleName);
         $query = 'SELECT DISTINCT vtiger_tab.name FROM vtiger_field INNER JOIN vtiger_relatedlists ON vtiger_relatedlists.related_tabid = vtiger_field.tabid' . ' LEFT JOIN vtiger_tab ON vtiger_tab.tabid = vtiger_field.tabid' . ' WHERE vtiger_relatedlists.tabid = ? AND vtiger_field.presence <> ? AND vtiger_field.uitype = ? AND fieldparams LIKE \'{"module":"' . $moduleName . '"%\';';
         $result = $db->pquery($query, [$moduleId, 1, 305]);
         $return = [];
         while ($module = $db->getSingleValue($result)) {
             $return[] = $module;
         }
         $moduleModel = Vtiger_Module_Model::getInstance($moduleName);
         $fieldsModel = $moduleModel->getFields();
         $relatedModules = [];
         foreach ($fieldsModel as $fieldName => $fieldModel) {
             if ($fieldModel->getFieldDataType() == Vtiger_Field_Model::REFERENCE_TYPE) {
                 $referenceList = $fieldModel->getReferenceList();
                 $relatedModules = array_merge($relatedModules, $referenceList);
             }
         }
         $relatedModules = array_unique($relatedModules);
         foreach ($relatedModules as $key => $relatedModule) {
             if ($relatedModule != 'Users') {
                 $relatedModules[$key] = Vtiger_Functions::getModuleId($relatedModule);
             } else {
                 unset($relatedModules[$key]);
             }
         }
         if (count($relatedModules) > 0) {
             $query = 'SELECT DISTINCT vtiger_tab.name FROM vtiger_field LEFT JOIN vtiger_tab ON vtiger_tab.tabid = vtiger_field.tabid' . ' WHERE vtiger_field.uitype = ? AND vtiger_field.tabid IN (\'' . implode("','", $relatedModules) . '\') AND vtiger_field.presence <> ? ' . 'AND fieldparams LIKE \'{"module":"' . $moduleName . '"%\' ;';
             $result = $db->pquery($query, [1, 305]);
             while ($module = $db->getSingleValue($result)) {
                 $return[] = $module;
             }
         }
         $return = array_unique($return);
         Vtiger_Cache::set('mrvf-', $moduleName, $return);
     }
     return $return;
 }
示例#29
0
	/**
	 * Function to get Shared Owner from record
	 */
	public function getSharedOwner($record)
	{
		$log = vglobal('log');
		$log->info("Entering Into fn getSharedOwner($record)");
		$db = PearDatabase::getInstance();
		$shownerid = Vtiger_Cache::get('SharedOwner', $record);
		if (!$shownerid) {
			$result = $db->pquery('SELECT shownerid FROM vtiger_crmentity WHERE crmid = ?', [$record]);
			$shownerid = $db->getSingleValue($result);
			Vtiger_Cache::set('SharedOwner', $record, $shownerid);
		}
		$log->info("Exiting fn getSharedOwner()");
		return Vtiger_Functions::getArrayFromValue($shownerid);
	}
示例#30
0
 /**
  * Function to get Shared Owner from record
  */
 public function getSharedOwner($record)
 {
     $log = vglobal('log');
     $log->info("Entering Into fn getSharedOwner({$record})");
     $db = PearDatabase::getInstance();
     $sharedOwner = Vtiger_Cache::get('SharedOwner', $record);
     if (!$sharedOwner) {
         $Result = $db->pquery('SELECT shownerid FROM vtiger_crmentity WHERE crmid = ?', array($record));
         $shownerid = $db->query_result($Result, 0, 'shownerid');
         Vtiger_Cache::set('SharedOwner', $record, $shownerid);
     } else {
         $shownerid = $sharedOwner;
     }
     $log->info("Exiting fn getSharedOwner()");
     return Vtiger_Functions::getArrayFromValue($shownerid);
 }