function addRelation($request) { $sourceModule = $request->getModule(); $sourceRecordId = $request->get('src_record'); $relatedModule = $request->get('related_module'); if (is_numeric($relatedModule)) { $relatedModule = Vtiger_Functions::getModuleName($relatedModule); } $relatedRecordIdList = $request->get('related_record_list'); $sourceModuleModel = Vtiger_Module_Model::getInstance($sourceModule); $relatedModuleModel = Vtiger_Module_Model::getInstance($relatedModule); $relationModel = Vtiger_Relation_Model::getInstance($sourceModuleModel, $relatedModuleModel); foreach ($relatedRecordIdList as $relatedRecordId) { $relationModel->addRelation($sourceRecordId, $relatedRecordId, $listPrice); if ($relatedModule == 'PriceBooks') { $recordModel = Vtiger_Record_Model::getInstanceById($relatedRecordId); if ($sourceRecordId && ($sourceModule === 'Products' || $sourceModule === 'Services')) { $parentRecordModel = Vtiger_Record_Model::getInstanceById($sourceRecordId, $sourceModule); $recordModel->updateListPrice($sourceRecordId, $parentRecordModel->get('unit_price')); } } } $response = new Vtiger_Response(); $response->setResult(true); $response->emit(); }
public function edit(Vtiger_Request $request) { $moduleName = $request->getModule(); $qualifiedModuleName = $request->getModule(false); $wid = $request->get('id'); $moduleModel = Settings_Widgets_Module_Model::getInstance($qualifiedModuleName); $WidgetInfo = $moduleModel->getWidgetInfo($wid); $RelatedModule = $moduleModel->getRelatedModule($WidgetInfo['tabid']); $type = $WidgetInfo['type']; $viewer = $this->getViewer($request); $viewer->assign('SOURCE', $WidgetInfo['tabid']); $viewer->assign('SOURCEMODULE', Vtiger_Functions::getModuleName($WidgetInfo['tabid'])); $viewer->assign('WID', $wid); $viewer->assign('WIDGETINFO', $WidgetInfo); $viewer->assign('TYPE', $type); $viewer->assign('MODULE', $moduleName); $viewer->assign('MODULE_MODEL', $moduleModel); $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName); $viewer->assign('RELATEDMODULES', $RelatedModule); $widgetName = 'Vtiger_' . $type . '_Widget'; if (class_exists($widgetName)) { $widgetInstance = new $widgetName(); $tplName = $widgetInstance->getConfigTplName(); $viewer->view("widgets/{$tplName}.tpl", 'Vtiger'); } }
public function getSelectableDashboard() { global $log; $log->debug("Entering Settings_WidgetsManagement_Module_Model::getSelectableDashboard() method ..."); $db = PearDatabase::getInstance(); $currentUser = Users_Record_Model::getCurrentUserModel(); $sql = 'SELECT * FROM vtiger_links WHERE linktype = ?'; $params = array('DASHBOARDWIDGET'); $result = $db->pquery($sql, $params); $widgets = array(); for ($i = 0; $i < $db->num_rows($result); $i++) { $row = $db->query_result_rowdata($result, $i); $moduleName = Vtiger_Functions::getModuleName($row['tabid']); if ($moduleName != 'Home' && ($row['linklabel'] == 'Mini List' || $row['linklabel'] == 'Notebook')) { continue; } if ($row['linklabel'] == 'Tag Cloud') { $isTagCloudExists = getTagCloudView($currentUser->getId()); if ($isTagCloudExists == 'false') { continue; } } $moduleName = Vtiger_Functions::getModuleName($row['tabid']); $widgets[$moduleName][] = Vtiger_Widget_Model::getInstanceFromValues($row); } $log->debug("Exiting Settings_WidgetsManagement_Module_Model::getSelectableDashboard() method ..."); return $widgets; }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $qualifiedModuleName = $request->getModule(false); $source = $request->get('source'); $sourceModule = $request->get('sourceModule'); if ($sourceModule != '') { $source = Vtiger_Functions::getModuleId($sourceModule); } if ($source == '') { $source = 6; } $moduleModel = Settings_Widgets_Module_Model::getInstance($qualifiedModuleName); $RelatedModule = $moduleModel->getRelatedModule($source); $viewer = $this->getViewer($request); $viewer->assign('MODULE_MODEL', $moduleModel); $viewer->assign('SOURCE', $source); $viewer->assign('SOURCEMODULE', Vtiger_Functions::getModuleName($source)); $viewer->assign('WIDGETS', $moduleModel->getWidgets($source)); $viewer->assign('RELATEDMODULES', $RelatedModule); $viewer->assign('FILTERS', json_encode($moduleModel->getFiletrs($RelatedModule))); $viewer->assign('CHECKBOXS', json_encode($moduleModel->getCheckboxs($RelatedModule))); //$viewer->assign('EXCLUDEDTYPES', $moduleModel->excludedTypes($source) ); $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName); $viewer->assign('MODULE', $moduleName); $viewer->view('Index.tpl', $qualifiedModuleName); }
/** * 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(); $module = $this->getModule(); $moduleName = $module->getName(); $parentModuleName = $module->getParentName(); $qualifiedModuleName = $moduleName; if (!empty($parentModuleName)) { $qualifiedModuleName = $parentModuleName . ':' . $qualifiedModuleName; } $recordModelClass = Vtiger_Loader::getComponentClassName('Model', 'Record', $qualifiedModuleName); $listQuery = $this->getBasicListQuery(); $startIndex = $pagingModel->getStartIndex(); $pageLimit = $pagingModel->getPageLimit(); $orderBy = $this->getForSql('orderby'); 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 (!empty($orderBy)) { $listQuery .= ' ORDER BY ' . $orderBy . ' ' . $this->getForSql('sortorder'); } $sourceModule = $this->get('sourceModule'); if (!empty($sourceModule)) { $tabId = Vtiger_Functions::getModuleId($sourceModule); $listQuery .= " WHERE `module` = '{$tabId}' "; } if ($module->isPagingSupported()) { $nextListQuery = $listQuery . ' LIMIT ' . ($startIndex + $pageLimit) . ',1'; $listQuery .= " LIMIT {$startIndex}, {$pageLimit}"; } $listResult = $db->pquery($listQuery, array()); $noOfRecords = $db->num_rows($listResult); $listViewRecordModels = array(); for ($i = 0; $i < $noOfRecords; ++$i) { $row = $db->query_result_rowdata($listResult, $i); $record = new $recordModelClass(); $record->setData($row); $recordModule = Vtiger_Functions::getModuleName($row['module']); $record->set('module', vtranslate($recordModule, $recordModule)); if (method_exists($record, 'getModule') && method_exists($record, 'setModule')) { $moduleModel = Settings_Vtiger_Module_Model::getInstance($qualifiedModuleName); $record->setModule($moduleModel); } $listViewRecordModels[$record->getId()] = $record; } if ($module->isPagingSupported()) { $pagingModel->calculatePageRange($listViewRecordModels); $nextPageResult = $db->pquery($nextListQuery, array()); $nextPageNumRows = $db->num_rows($nextPageResult); if ($nextPageNumRows <= 0) { $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(); $module = $this->getModule(); $parentModuleName = $module->getParentName(); if (!empty($parentModuleName)) { $qualifiedModuleName = $parentModuleName . ':' . $module->getName(); } $recordModelClass = Vtiger_Loader::getComponentClassName('Model', 'Record', $qualifiedModuleName); $listFields = $module->listFields; $listQuery = 'SELECT '; foreach ($listFields as $fieldName => $fieldLabel) { $listQuery .= '`' . $fieldName . '`, '; } $listQuery .= '`' . $module->baseIndex . '` FROM `' . $module->baseTable . '`'; $params = []; $sourceModule = $this->get('sourceModule'); if (!empty($sourceModule)) { $sourceModule = Vtiger_Functions::getModuleName($sourceModule); $listQuery .= ' WHERE `tabid` = ?'; $params[] = $sourceModule; } $startIndex = $pagingModel->getStartIndex(); $pageLimit = $pagingModel->getPageLimit(); $orderBy = $this->getForSql('orderby'); if (!empty($orderBy)) { $listQuery .= ' ORDER BY ' . $orderBy . ' ' . $this->getForSql('sortorder'); } $nextListQuery = $listQuery . ' LIMIT ' . ($startIndex + $pageLimit) . ',1'; $listQuery .= " LIMIT {$startIndex}," . ($pageLimit + 1); $listResult = $db->pquery($listQuery, $params); $listViewRecordModels = []; while ($row = $db->getRow($listResult)) { $recordModel = new $recordModelClass(); $moduleName = Vtiger_Functions::getModuleName($row['tabid']); $relModuleName = Vtiger_Functions::getModuleName($row['reltabid']); $row['tabid'] = vtranslate($moduleName, $moduleName); $row['reltabid'] = vtranslate($relModuleName, $relModuleName); $recordModel->setData($row); $listViewRecordModels[$recordModel->getId()] = $recordModel; } $pagingModel->calculatePageRange($listViewRecordModels); if ($listResult->rowCount() > $pageLimit) { array_pop($listViewRecordModels); $pagingModel->set('nextPageExists', true); } else { $pagingModel->set('nextPageExists', false); } $nextPageResult = $db->pquery($nextListQuery, $params); if ($nextPageResult->rowCount() <= 0) { $pagingModel->set('nextPageExists', false); } return $listViewRecordModels; }
public function process(Vtiger_Request $request) { $recordId = $request->get('id'); $moduleInstance = Settings_MappedFields_Module_Model::getInstanceById($recordId); header('content-type: application/xml; charset=utf-8'); header('Pragma: public'); header('Cache-Control: private'); header('Content-Disposition: attachment; filename=' . $recordId . '_mftemplate.xml'); header('Content-Description: PHP Generated Data'); $xml = new DOMDocument('1.0', 'utf-8'); $xml->preserveWhiteSpace = false; $xml->formatOutput = true; $xmlTemplate = $xml->createElement('mf_template'); $xmlFields = $xml->createElement('fields'); $xmlField = $xml->createElement('field'); $cDataColumns = ['conditions', 'params']; $changeNames = ['tabid', 'reltabid']; foreach (Settings_MappedFields_Module_Model::$allFields as $field) { if (in_array($field, $cDataColumns)) { $name = $xmlTemplate->appendChild($xml->createElement($field)); $name->appendChild($xml->createCDATASection(html_entity_decode($moduleInstance->getRecord()->getRaw($field)))); } else { if (in_array($field, $changeNames)) { $value = Vtiger_Functions::getModuleName($moduleInstance->get($field)); } else { $value = $moduleInstance->get($field); } $xmlColumn = $xml->createElement($field, html_entity_decode($value, ENT_COMPAT, 'UTF-8')); } $xmlTemplate->appendChild($xmlColumn); } foreach ($moduleInstance->getMapping() as $field) { $xmlField = $xml->createElement('field'); foreach ($field as $key => $details) { if (gettype($details) == 'object') { $value = $details->getFieldName(); } else { $value = $details; } $xmlColumn = $xml->createElement($key, html_entity_decode($value, ENT_COMPAT, 'UTF-8')); $xmlField->appendChild($xmlColumn); } $xmlFields->appendChild($xmlField); } $xmlTemplate->appendChild($xmlFields); $xmlTemplate->appendChild($xmlFields); $xml->appendChild($xmlTemplate); print $xml->saveXML(); }
public function step($step, Vtiger_Request $request) { $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $qualifiedModuleName = $request->getModule(false); $recordId = $request->get('record'); if ($recordId) { $moduleInstance = Settings_MappedFields_Module_Model::getInstanceById($recordId); $viewer->assign('RECORDID', $recordId); $viewer->assign('MODE', 'edit'); } else { $moduleInstance = Settings_MappedFields_Module_Model::getCleanInstance(); } $viewer->assign('MAPPEDFIELDS_MODULE_MODEL', $moduleInstance); $allModules = Settings_MappedFields_Module_Model::getSupportedModules(); $viewer->assign('ALL_MODULES', $allModules); $viewer->assign('MODULE', $moduleName); $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName); switch ($step) { case 'step4': $viewer->view('Step4.tpl', $qualifiedModuleName); break; case 'step3': $moduleSourceName = Vtiger_Functions::getModuleName($moduleInstance->get('tabid')); $moduleModel = Vtiger_Module_Model::getInstance($moduleSourceName); $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('SOURCE_MODULE', $moduleSourceName); $viewer->assign('ADVANCE_CRITERIA', Vtiger_AdvancedFilter_Helper::transformToAdvancedFilterCondition($moduleInstance->get('conditions'))); $viewer->view('Step3.tpl', $qualifiedModuleName); break; case 'step2': $currentUser = Users_Record_Model::getCurrentUserModel(); $assignedToValues = []; $assignedToValues['LBL_USERS'] = $currentUser->getAccessibleUsers(); $assignedToValues['LBL_GROUPS'] = $currentUser->getAccessibleGroups(); $viewer->assign('SEL_MODULE_MODEL', Settings_MappedFields_Module_Model::getInstance($moduleInstance->get('tabid'))); $viewer->assign('REL_MODULE_MODEL', Settings_MappedFields_Module_Model::getInstance($moduleInstance->get('reltabid'))); $viewer->assign('USERS_LIST', $assignedToValues); $viewer->view('Step2.tpl', $qualifiedModuleName); break; case 'step1': default: $viewer->view('Step1.tpl', $qualifiedModuleName); break; } }
function addRelation($request) { $sourceModule = $request->getModule(); $sourceRecordId = $request->get('src_record'); $relatedModule = $request->get('related_module'); if (is_numeric($relatedModule)) { $relatedModule = Vtiger_Functions::getModuleName($relatedModule); } $relatedRecordIdList = $request->get('related_record_list'); $sourceModuleModel = Vtiger_Module_Model::getInstance($sourceModule); $relatedModuleModel = Vtiger_Module_Model::getInstance($relatedModule); $relationModel = Vtiger_Relation_Model::getInstance($sourceModuleModel, $relatedModuleModel); foreach ($relatedRecordIdList as $relatedRecordId) { $relationModel->addRelation($sourceRecordId, $relatedRecordId, $listPrice); } $response = new Vtiger_Response(); $response->setResult(true); $response->emit(); }
public function process(Vtiger_Request $request) { vimport('~~modules/OSSPdf/helpers/Conditions.php'); $moduleSettingsName = $request->getModule(false); $moduleName = $request->getModule(); $record = $request->get('record'); $baseModule = Vtiger_Functions::getModuleName($request->get('base_module')); $num = $request->get('num'); if ("" == $num) { $num = 0; } $viewer = $this->getViewer($request); $viewer->assign('NUM', ++$num); $viewer->assign('MODULE', $moduleName); $viewer->assign('BASE_MODULE', $baseModule); $viewer->assign('CONDITION_LIST', Conditions::getListBaseModuleField($baseModule)); $viewer->assign('FIELD_LIST', Conditions::getListBaseModuleField($baseModule)); echo $viewer->view('Condition.tpl', $moduleSettingsName, true); }
public function getType($module = false) { $moduleName = Vtiger_Functions::getModuleName($module); $dir = 'modules/Vtiger/widgets/'; $ffs = scandir($dir); foreach ($ffs as $ff) { $action = str_replace('.php', "", $ff); if ($ff != '.' && $ff != '..' && !is_dir($dir . '/' . $ff) && $action != 'Basic') { $folderFiles[$action] = $action; vimport('~~' . $dir . $ff); $modelClassName = Vtiger_Loader::getComponentClassName('Widget', $action, 'Vtiger'); $instance = new $modelClassName(); if ($instance->allowedModules && !in_array($moduleName, $instance->allowedModules)) { unset($folderFiles[$action]); } } } return $folderFiles; }
public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $qualifiedModuleName = $request->getModule(false); $wid = $request->get('id'); $moduleModel = Settings_Widgets_Module_Model::getInstance($qualifiedModuleName); $WidgetInfo = $moduleModel->getWidgetInfo($wid); $RelatedModule = $moduleModel->getRelatedModule($WidgetInfo['tabid']); $viewer = $this->getViewer($request); $viewer->assign('MODULE_MODEL', $moduleModel); $viewer->assign('SOURCE', $WidgetInfo['tabid']); $viewer->assign('SOURCEMODULE', Vtiger_Functions::getModuleName($WidgetInfo['tabid'])); $viewer->assign('WID', $wid); $viewer->assign('WIDGETINFO', $WidgetInfo); $viewer->assign('QUALIFIED_MODULE', $qualifiedModuleName); $viewer->assign('RELATEDMODULES', $RelatedModule); $viewer->assign('MODULE', $moduleName); $viewer->view('Edit.tpl', $qualifiedModuleName); }
/** * Gets status * @return - array of status */ public static function getStatusNotModify() { $log = vglobal('log'); $adb = PearDatabase::getInstance(); $log->debug("Entering Settings_RealizationProcesses_Module_Model::getStatusNotModify() method ..."); $sql = 'SELECT * FROM `vtiger_realization_process`;'; $result = $adb->query($sql); $rowsNum = $adb->num_rows($result); for ($i = 0; $i < $rowsNum; $i++) { $moduleId = $adb->query_result($result, $i, 'module_id'); $moduleName = Vtiger_Functions::getModuleName($moduleId); $return[$moduleName]['id'] = $moduleId; $status = Zend_Json::decode(html_entity_decode($adb->query_result($result, $i, 'status_indicate_closing'))); if (!is_array($status)) { $status = [$status]; } $return[$moduleName]['status'] = $status; } $log->debug("Exiting Settings_RealizationProcesses_Module_Model::getStatusNotModify() method ..."); return $return; }
public function process(Vtiger_Request $request) { $viewer = $this->getViewer ($request); $moduleName = $request->getModule(); $qualifiedModuleName = $request->getModule(false); $module = Vtiger_Functions::getModuleName($request->get("module_id")); $adb = PearDatabase::getInstance(); $sql = "select * from vtiger_customview where viewname = ? and entitytype = ? and status = ?"; $result = $adb->pquery($sql, array('All', $module, 0)); while($row = $adb->fetchByAssoc($result)){ $record = $row['cvid']; } $customViewModel = CustomView_Record_Model::getInstanceById($record); $moduleModel = Vtiger_Module_Model::getInstance($module); $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceForModule($moduleModel); $recordStructure = $recordStructureInstance->getStructure(); $viewer->assign('CUSTOMVIEW_MODEL', $customViewModel); $viewer->assign('RECORD_STRUCTURE', $recordStructure); $viewer->assign('RECORD_ID', $record); $viewer->assign('SOURCE_MODULE', $module); $viewer->assign('MODULENAME', $moduleName); echo $viewer->view('List2.tpl', $qualifiedModuleName,true); }
public static function getMenu() { $db = PearDatabase::getInstance(); $profileId = self::getCurrentUserProfile(); $userModel = Users_Record_Model::getCurrentUserModel(); $isAdmin = is_admin($userModel); if ($isAdmin) { $sql = "SELECT * FROM `vtiger_ossmenumanager` WHERE `parent_id` = ? AND `visible` = ? ORDER BY `sequence` ASC;"; $params = array(0, 1); } else { $sql = "SELECT * FROM `vtiger_ossmenumanager` WHERE `parent_id` = ? AND `visible` = ? AND ("; if (!empty($profileId)) { for ($i = 0; $i < count($profileId); $i++) { $sql .= "`permission` RLIKE ' " . $profileId[$i] . " ' OR "; } } $sql .= " `permission` = '' OR `permission` = '0') ORDER BY `sequence` ASC;"; $params = array(0, 1); // echo '<pre>';print_r($num);echo '</pre>'; } $result = $db->pquery($sql, $params, true); $num = $db->num_rows($result); $menuStructure = array(); $breadcrumbs = array(); $request = new Vtiger_Request($_REQUEST, $_REQUEST); if ($num > 0) { for ($i = 0; $i < $num; $i++) { $id = $db->query_result($result, $i, 'id'); $locationicon = $db->query_result($result, $i, 'locationicon'); $sizeicon = $db->query_result($result, $i, 'sizeicon'); $name = $db->query_result($result, $i, 'label'); $sizeicon_first = substr($sizeicon, 0, strpos($sizeicon, "x")); $sizeicon_second = substr($sizeicon, 3, 5); $langfied = $db->query_result($result, $i, 'langfield'); if ($langfied) { $res = explode('#', $langfied); for ($k = 0; count($res) > $k; $k++) { $prefix = substr($res[$k], 0, strpos($res[$k], "*")); $value = substr($res[$k], 6); if (Users_Record_Model::getCurrentUserModel()->get('language') == $prefix) { // echo '<pre>';print_r($_matches[1][$k]);echo '</pre>';exit; $name = $value; } } } $menuStructure[$name] = array(); if ($isAdmin) { $subSql = "SELECT * FROM `vtiger_ossmenumanager` WHERE `parent_id` = ? AND `visible` = ? ORDER BY `sequence` ASC;"; $subParams = array($id, 1); } else { $subSql = "SELECT * FROM `vtiger_ossmenumanager` WHERE `parent_id` = ? AND `visible` = ? AND ("; if (!empty($profileId)) { for ($k = 0; $k < count($profileId); $k++) { $subSql .= "`permission` RLIKE ' " . $profileId[$k] . " ' OR "; } } $subSql .= " `permission` = '' OR `permission` = '0') ORDER BY `sequence` ASC;"; $subParams = array($id, 1); } $subResult = $db->pquery($subSql, $subParams, true); $subNum = $db->num_rows($subResult); if ($subNum > 0) { for ($j = 0; $j < $subNum; $j++) { $subName = $db->query_result($subResult, $j, 'label'); $subNameOrg = $subName; $type = $db->query_result($subResult, $j, 'type'); $tabId = $db->query_result($subResult, $j, 'tabid'); $newWindow = $db->query_result($subResult, $j, 'new_window'); $locationiconname = $db->query_result($subResult, $j, 'locationicon'); $subsizeicon = $db->query_result($subResult, $j, 'sizeicon'); $subsizeicon_first = substr($subsizeicon, 0, strpos($subsizeicon, "x")); $subsizeicon_second = substr($subsizeicon, 3, 5); $langfiedpick = $db->query_result($subResult, $j, 'langfield'); if ($langfiedpick && intval($type) == 0) { $res = explode('#', $langfiedpick); for ($k = 0; count($res) > $k; $k++) { $prefix = substr($res[$k], 0, strpos($res[$k], "*")); $value = substr($res[$k], 6); // echo '<pre>';print_r($value);echo '</pre>';exit; if (Users_Record_Model::getCurrentUserModel()->get('language') == $prefix) { $subName = $value; } } } elseif ($langfiedpick) { $res = explode('#', $langfiedpick); for ($k = 0; count($res) > $k; $k++) { $prefix = substr($res[$k], 0, strpos($res[$k], "*")); $value = substr($res[$k], 6); // echo '<pre>';print_r($value);echo '</pre>';exit; if (Users_Record_Model::getCurrentUserModel()->get('language') == $prefix) { $subName = $value; } } } if ($newWindow == 1) { $newWindow = '*_blank*'; } else { $newWindow = ''; } switch (intval($type)) { case 0: $model = Vtiger_Module_Model::getInstance($subNameOrg); if ($model) { $url = $model->getDefaultUrl(); } else { // usuń nieistniejącą pozycję $recordModel = Vtiger_Record_Model::getCleanInstance('OSSMenuManager'); $recordModel->deleteMenu($subId); $url = false; } break; case 1: case 2: case 3: case 4: default: $url = $db->query_result_raw($subResult, $j, 'url'); } if ($url !== false) { $url = $newWindow . $url; $menuStructure[$name][$j] = array('name' => $subName, 'mod' => $subNameOrg, 'link' => $url, 'sizeicon_first' => $subsizeicon_first, 'sizeicon_second' => $subsizeicon_second, 'locationiconname' => $locationiconname); } $moduleName = Vtiger_Functions::getModuleName($tabId); $excludedViews = array("DashBoard", 'index', 'Index'); $purl = false; if ($request->get('module') != '' && $request->get('module') == $moduleName && vglobal('breadcrumbs') && $request->get('parent') == '') { $breadcrumbs[] = array('lable' => vtranslate($name, 'OSSMenuManager')); $breadcrumbs[] = array('lable' => vtranslate($subName, $moduleName), 'url' => $url, 'class' => 'moduleColor_' . $moduleName); if ($request->get('view') == 'Edit' && $request->get('record') == '') { $breadcrumbs[] = array('lable' => vtranslate('LBL_VIEW_CREATE', $moduleName)); } elseif (!in_array($request->get('view'), $excludedViews)) { $breadcrumbs[] = array('lable' => vtranslate('LBL_VIEW_' . strtoupper($request->get('view')), $moduleName)); } if ($request->get('record') != '') { $recordLabel = Vtiger_Functions::getCRMRecordLabel($request->get('record')); if ($recordLabel != '') { $breadcrumbs[] = array('lable' => $recordLabel); } } } elseif (vglobal('breadcrumbs') && $request->get('module') != '' && $request->get('parent') == '') { $parts = parse_url($url); parse_str($parts['query'], $purl); if ($request->get('module') == $purl['module'] && $request->get('view') == $purl['view'] && $request->get('viewname') == $purl['viewname']) { $breadcrumbs[] = array('lable' => vtranslate($name, 'OSSMenuManager')); $breadcrumbs[] = array('lable' => vtranslate($request->get('module'), $request->get('module')), 'url' => 'index.php?module=' . $request->get('module') . '&view=List', 'class' => 'moduleColor_' . $request->get('module')); if ($request->get('view') != 'List') { $breadcrumbs[] = array('lable' => vtranslate($subName, $moduleName), 'url' => $url); } } } } } $menuStructureGroupe[$name]['iconf'] = $sizeicon_first; $menuStructureGroupe[$name]['picon'] = $locationicon; $menuStructureGroupe[$name]['icons'] = $sizeicon_second; } if (vglobal('breadcrumbs') && count($breadcrumbs) == 0 && $request->get('module') != '' && $request->get('parent') == '') { $breadcrumbs[] = array('lable' => vtranslate($request->get('module'), $request->get('module')), 'url' => 'index.php?module=' . $request->get('module') . '&view=List', 'class' => 'moduleColor_' . $request->get('module')); if ($request->get('view') == 'Edit' && $request->get('record') == '') { $breadcrumbs[] = array('lable' => vtranslate('LBL_VIEW_CREATE', $request->get('module'))); } else { $breadcrumbs[] = array('lable' => vtranslate('LBL_VIEW_' . strtoupper($request->get('view')), $request->get('module'))); } if ($request->get('record') != '') { $recordLabel = Vtiger_Functions::getCRMRecordLabel($request->get('record')); if ($recordLabel != '') { $breadcrumbs[] = array('lable' => $recordLabel); } } } return array('structure' => $menuStructure, 'icons' => $menuStructureGroupe, 'breadcrumbs' => $breadcrumbs); } else { return array(); } }
static function getModuleFieldTypeOfDataInfos($tables, $tabid = '') { $result = array(); if (!empty($tabid)) { $module = Vtiger_Functions::getModuleName($tabid); $fieldInfos = Vtiger_Functions::getModuleFieldInfos($tabid); foreach ($fieldInfos as $name => $field) { if (($field['displaytype'] == '1' || $field['displaytype'] == '3') && ($field['presence'] == '0' || $field['presence'] == '2')) { $label = Vtiger_Functions::getTranslatedString($field['fieldlabel'], $module); $result[$name] = array($label => $field['typeofdata']); } } } else { throw new Exception('Field lookup by table no longer supported'); } return $result; }
function pobox() { global $log, $adb; $sql = "SELECT * FROM `vtiger_field` WHERE `fieldname` LIKE 'addresslevel1%';"; $result = $adb->query($sql, true); $Num = $adb->num_rows($result); for ($i = 0; $i < $Num; $i++) { $row = $adb->query_result_rowdata($result, $i); $tabid = $row['tabid']; $moduleName = Vtiger_Functions::getModuleName($tabid); $block = $row['block']; $tablename = $row['tablename']; $fieldname = $row['fieldname']; $name = 'pobox' . substr($fieldname, -1); $moduleInstance = Vtiger_Module::getInstance($moduleName); $blockInstance = Vtiger_Block::getInstance($block, $moduleInstance); $fieldInstance = new Vtiger_Field(); $fieldInstance->name = $name; $fieldInstance->table = $tablename; $fieldInstance->label = 'Po Box'; $fieldInstance->column = $name; $fieldInstance->columntype = 'varchar(50)'; $fieldInstance->uitype = 1; $fieldInstance->typeofdata = 'V~O'; $blockInstance->addField($fieldInstance); } }
public static function findEmail($emails, $searchModule = false, $returnArray = true) { $adb = PearDatabase::getInstance(); if ($returnArray) { $return = []; } else { $return = ''; } $EmailSearchList = self::getEmailSearchList(); if (strpos($emails, ',')) { $emailsArray = explode(',', $emails); } else { $emailsArray[0] = $emails; } if ($EmailSearchList != null && $emails != '' && !empty($EmailSearchList['fields'])) { if (strpos($EmailSearchList['fields'], ',')) { $fields = explode(',', $EmailSearchList['fields']); } else { $fields[0] = $EmailSearchList['fields']; } foreach ($fields as $field) { $enableFind = true; $row = explode('=', $field); if ($searchModule) { $moduleId = Vtiger_Functions::getModuleId($searchModule); if ($moduleId != $row[2]) { $enableFind = false; } } if ($enableFind) { $module = Vtiger_Functions::getModuleName($row[2]); require_once "modules/{$module}/{$module}.php"; $ModuleObject = new $module(); $table_index = $ModuleObject->table_index; foreach ($emailsArray as $email) { $result = $adb->pquery("SELECT {$table_index} FROM " . $row[0] . ' INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = ' . $row[0] . ".{$table_index} WHERE vtiger_crmentity.deleted = 0 AND " . $row[1] . ' = ? ', [$email]); while ($crmid = $adb->getSingleValue($result)) { if ($returnArray) { $return[] = $crmid; } else { if ($return != '') { $return .= ','; } $return .= $crmid; } } } } } } return $return; }
public function process(Vtiger_Request $request) { $db = PearDatabase::getInstance(); $viewer = $this->getViewer($request); $moduleName = $request->getModule(); $record = $request->get('record'); if (!empty($record) && $request->get('isDuplicate') == true) { $recordModel = Vtiger_Record_Model::getInstanceById($record, $moduleName); $viewer->assign('MODE', ''); } else { if (!empty($record)) { $recordModel = Vtiger_Record_Model::getInstanceById($record, $moduleName); $viewer->assign('RECORD_ID', $record); $viewer->assign('MODE', 'edit'); } else { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $viewer->assign('MODE', ''); } } $moduleModel = $recordModel->getModule(); $fieldList = $moduleModel->getFields(); $requestFieldList = array_intersect_key($request->getAll(), $fieldList); foreach ($requestFieldList as $fieldName => $fieldValue) { $fieldModel = $fieldList[$fieldName]; if ($fieldModel->isEditable()) { $recordModel->set($fieldName, $fieldValue); } } if ($request->get('record') != '') { $rid = $request->get('record'); $mresult = $db->query("SELECT moduleid FROM vtiger_osspdf WHERE osspdfid = '{$rid}'", true); $moduleid = $db->query_result($mresult, 0, 'moduleid'); } else { $moduleid = '2'; } $pobierz = $db->query("select name from vtiger_tab where tabid = '{$moduleid}'", true); $modulename = $db->query_result($pobierz, 0, "name"); $chosen_module = $modulename; $pobierz_bloki = $db->query("select blockid, blocklabel from vtiger_blocks where tabid = '{$moduleid}'", true); $field_list = array(); for ($k = 0; $k < $db->num_rows($pobierz_bloki); $k++) { $blockid = $db->query_result($pobierz_bloki, $k, "blockid"); $label = $db->query_result($pobierz_bloki, $k, "blocklabel"); $pobierz_pola = $db->query("select fieldname, fieldlabel from vtiger_field where block = '{$blockid}' and tabid = '{$moduleid}'", true); for ($i = 0; $i < $db->num_rows($pobierz_pola); $i++) { $field_list[vtranslate($label, $modulename)][$i]['name'] = $db->query_result($pobierz_pola, $i, "fieldname"); $field_list[vtranslate($label, $modulename)][$i]['label'] = vtranslate($db->query_result($pobierz_pola, $i, "fieldlabel"), $modulename); } } $recordStructureInstance = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_EDIT); ///Conditions vimport('~~modules/OSSPdf/helpers/Conditions.php'); $baseModule = Vtiger_Functions::getModuleName($moduleid); $Condition = Conditions::getConditionRelToRecordFieldInfo($request->get('record'), $baseModule); $viewer->assign('CONDITION_BY_TYPE', Conditions::getConditionByType()); $viewer->assign('REQUIRED_CONDITIONS', $Condition['required_conditions']); $viewer->assign('OPTIONAL_CONDITIONS', $Condition['optional_conditions']); $viewer->assign('FIELD_LIST', Conditions::getListBaseModuleField($baseModule)); $viewer->assign('BASE_MODULE', $baseModule); $viewer->assign('RECORD', $recordModel); ///Conditions $viewer->assign('DEFAULT_FIELDS', $field_list); $viewer->assign('RECORD_STRUCTURE_MODEL', $recordStructureInstance); $viewer->assign('RECORD_STRUCTURE', $recordStructureInstance->getStructure()); $viewer->assign('MODULE', $moduleName); $viewer->assign('CURRENTDATE', date('Y-n-j')); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $mappingRelatedField = $moduleModel->getMappingRelatedField($moduleName); $viewer->assign('MAPPING_RELATED_FIELD', Zend_Json::encode($mappingRelatedField)); $isRelationOperation = $request->get('relationOperation'); //if it is relation edit $viewer->assign('IS_RELATION_OPERATION', $isRelationOperation); if ($isRelationOperation) { $viewer->assign('SOURCE_MODULE', $request->get('sourceModule')); $viewer->assign('SOURCE_RECORD', $request->get('sourceRecord')); } $viewer->assign('MAX_UPLOAD_LIMIT_MB', vglobal('upload_maxsize') / 1000000); $viewer->assign('MAX_UPLOAD_LIMIT', vglobal('upload_maxsize')); $viewer->view('EditView.tpl', $moduleName); }
public function getTree() { $tree = array(); $templateId = $this->getId(); if (empty($templateId)) { return $tree; } $adb = PearDatabase::getInstance(); $lastId = 0; $result = $adb->pquery('SELECT * FROM vtiger_trees_templates_data WHERE templateid = ?', [$templateId]); $module = $this->get('module'); if (is_numeric($module)) { $module = Vtiger_Functions::getModuleName($module); } for ($i = 0; $i < $adb->num_rows($result); $i++) { $row = $adb->raw_query_result_rowdata($result, $i); $treeID = (int) str_replace('T', '', $row['tree']); $cut = strlen('::' . $row['tree']); $parenttrre = substr($row['parenttrre'], 0, -$cut); $pieces = explode('::', $parenttrre); $parent = (int) str_replace('T', '', end($pieces)); $tree[] = ['id' => $treeID, 'parent' => $parent == 0 ? '#' : $parent, 'text' => vtranslate($row['name'], $module), 'state' => $row['state'] ? $row['state'] : '']; if ($treeID > $lastId) { $lastId = $treeID; } } $this->set('lastId', $lastId); return $tree; }
public function process($moduleName, $iD, $record_form, $config) { $db = PearDatabase::getInstance(); $moduleNameID = Vtiger_Functions::getModuleId($moduleName); $fieldlabel = $sql_ext = ''; $save_record1 = true; $save_record2 = true; $save_record = true; $type = 0; $typeInfo = 'info'; $info = false; if ($iD != 0 && $iD != '' && !array_key_exists($config['what1'], $record_form)) { $Record_Model = Vtiger_Record_Model::getInstanceById($iD, $moduleName); $value1 = $Record_Model->get($config['what1']); } else { if (array_key_exists($config['what1'], $record_form)) { $value1 = $record_form[$config['what1']]; } } if ($iD != 0 && $iD != '' && !array_key_exists($config['what2'], $record_form)) { $Record_Model = Vtiger_Record_Model::getInstanceById($iD, $moduleName); $value2 = $Record_Model->get($config['what2']); } else { if (array_key_exists($config['what2'], $record_form)) { $value2 = $record_form[$config['what2']]; } } if (!is_array($config['where1'])) { $wheres1[] = $config['where1']; } else { $wheres1 = $config['where1']; } if (!is_array($config['where2'])) { $wheres2[] = $config['where2']; } else { $wheres2 = $config['where2']; } if ($value1 != '') { foreach ($wheres1 as $where) { $where = explode('=', $where); $DestModuleName = Vtiger_Functions::getModuleName($where[2]); $ModuleInstance = CRMEntity::getInstance($DestModuleName); $tab_name_index = $ModuleInstance->tab_name_index; $index = $tab_name_index[$where[0]]; $sql_param = array($value1); $sql_ext = ''; $spacialCondition = ''; $sqlSpecial = ''; if ($moduleNameID == $where[2] && $iD != 0 && $iD != '') { $sql_param[] = $iD; $sql_ext = 'AND ' . $index . ' <> ?'; } if ($DestModuleName == 'Leads') { $spacialCondition = ' AND `converted` = 0'; if ('vtiger_crmentity' == $where[0]) { $sqlSpecial = 'INNER JOIN vtiger_leaddetails ON vtiger_crmentity.crmid = vtiger_leaddetails.leadid '; } } $result = $db->pquery("SELECT {$index} FROM {$where[0]} {$sqlSpecial} WHERE {$where[1]} = ? {$sql_ext} {$spacialCondition};", $sql_param, true); $num = $db->num_rows($result); for ($i = 0; $i < $num; $i++) { $id = $db->query_result_raw($result, $i, $index); $metadata = Vtiger_Functions::getCRMRecordMetadata($id); if ($metadata['setype'] == $DestModuleName) { $save_record1 = false; $deletedLabel = $metadata['deleted'] ? ' - ' . vtranslate('LBL_RECORD_DELETED', 'DataAccess') : ''; $fieldlabel .= '<li><a target="_blank" href="index.php?module=' . $DestModuleName . '&view=Detail&record=' . $id . '"><strong>' . Vtiger_Functions::getCRMRecordLabel($id) . '</strong></a> (' . Vtiger_Functions::getOwnerRecordLabel($metadata['smownerid']) . ')' . $deletedLabel . ',</li>'; } } } } if ($value2 != '') { foreach ($wheres2 as $where) { $where = explode('=', $where); $DestModuleName = Vtiger_Functions::getModuleName($where[2]); $ModuleInstance = CRMEntity::getInstance($DestModuleName); $tab_name_index = $ModuleInstance->tab_name_index; $index = $tab_name_index[$where[0]]; $sql_param = array($value2); $sql_ext = ''; $spacialCondition = ''; $sqlSpecial = ''; if ($moduleNameID == $where[2] && $iD != 0 && $iD != '') { $sql_param[] = $iD; $sql_ext = 'AND ' . $index . ' <> ?'; } if ($DestModuleName == 'Leads') { $spacialCondition = ' AND `converted` = 0'; if ('vtiger_crmentity' == $where[0]) { $sqlSpecial = 'INNER JOIN vtiger_leaddetails ON vtiger_crmentity.crmid = vtiger_leaddetails.leadid '; } } $result = $db->pquery("SELECT {$index} FROM {$where[0]} WHERE {$where[1]} = ? {$sql_ext};", $sql_param, true); $num = $db->num_rows($result); for ($i = 0; $i < $num; $i++) { $id = $db->query_result_raw($result, $i, $index); $metadata = Vtiger_Functions::getCRMRecordMetadata($id); if ($metadata['setype'] == $DestModuleName) { $save_record2 = false; $deletedLabel = $metadata['deleted'] ? ' - ' . vtranslate('LBL_RECORD_DELETED', 'DataAccess') : ''; $fieldlabel .= '<li><a target="_blank" href="index.php?module=' . $DestModuleName . '&view=Detail&record=' . $id . '"><strong>' . Vtiger_Functions::getCRMRecordLabel($id) . '</strong></a> (' . Vtiger_Functions::getOwnerRecordLabel($metadata['smownerid']) . ')' . $deletedLabel . ',</li>'; } } } } if ($config['locksave'] == 0) { $info = $config['info0']; $type = 2; $save_record = !$save_record1 || !$save_record2 ? false : true; } elseif (!$save_record1 && !$save_record2) { $typeInfo = 'error'; $save_record = false; $info = $config['info2']; } elseif (!$save_record1 || !$save_record2) { $typeInfo = 'error'; $save_record = false; $info = $config['info1']; } if ($config['locksave'] == 3 && !$save_record) { $type = $config['locksave']; $permission = Users_Privileges_Model::isPermitted($moduleName, 'DuplicateRecord'); $text = '<div class="marginLeft10">' . vtranslate('LBL_DUPLICATED_FOUND', 'DataAccess') . ': <br/ >' . trim($fieldlabel, ',') . '</div>'; if ($permission) { $title = '<strong>' . vtranslate('LBL_DUPLICTAE_CREATION_CONFIRMATION', 'DataAccess') . '</strong>'; if (!empty($iD)) { $text .= '<form class="form-horizontal"><div class="checkbox"> <label> <input type="checkbox" name="cache"> ' . vtranslate('LBL_DONT_ASK_AGAIN', 'DataAccess') . ' </label> </div></form>'; } if ($record_form['view'] == 'quick_edit') { $text = '<div class="alert alert-warning" role="alert">' . vtranslate('LBL_DUPLICTAE_QUICK_EDIT_CONFIRMATION', 'DataAccess') . '</div>' . $text; } } $info = ['text' => $text, 'title' => $title, 'type' => $permission ? 1 : 0]; } if (!$save_record || $info) { return array('save_record' => $save_record, 'type' => $type, 'info' => $info ? $info : ['text' => vtranslate($info, 'DataAccess') . ' <br/ >' . trim($fieldlabel, ','), 'ntype' => $typeInfo, 'hide' => false]); } else { return array('save_record' => true); } }
public static function findEmail($emails, $module = false, $return_array = true) { $adb = PearDatabase::getInstance(); $EmailSearchList = self::getEmailSearchList(); if (strpos($emails, ',')) { $emails_array = explode(",", $emails); } else { $emails_array[0] = $emails; } if ($EmailSearchList != null && $emails != '') { if (strpos($EmailSearchList['fields'], ',')) { $fields = explode(",", $EmailSearchList['fields']); } else { $fields[0] = $EmailSearchList['fields']; } foreach ($fields as $field) { $enable_find = true; $row = explode("=", $field); if ($module) { $ModuleId = Vtiger_Functions::getModuleId($module); if ($ModuleId != $row[2]) { $enable_find = false; } } else { $enable_find = false; } if ($enable_find) { $module = Vtiger_Functions::getModuleName($row[2]); require_once "modules/{$module}/{$module}.php"; $ModuleObject = new $module(); $table_index = $ModuleObject->table_index; foreach ($emails_array as $email) { $result = $adb->pquery("SELECT {$table_index} FROM " . $row[0] . " INNER JOIN vtiger_crmentity ON vtiger_crmentity.crmid = " . $row[0] . "." . $table_index . " WHERE vtiger_crmentity.deleted = 0 AND " . $row[1] . " = ? ", array($email), true); for ($i = 0; $i < $adb->num_rows($result); $i++) { $crmid = $adb->query_result($result, $i, $table_index); if ($return_array) { $return[] = array($crmid, $module); } else { if ($return != '') { $return .= ','; } $return .= $crmid; } } } } } } return $return; }
function preProcess(Vtiger_Request $request, $display = true) { $db = PearDatabase::getInstance(); parent::preProcess($request, false); $origModuleName = $request->getModule(); $recordId = $request->get('record'); if (!$this->record) { $this->record = Vtiger_DetailView_Model::getInstance($moduleName, $recordId); } $recordModel = $this->record->getRecord(); $recordStrucure = Vtiger_RecordStructure_Model::getInstanceFromRecordModel($recordModel, Vtiger_RecordStructure_Model::RECORD_STRUCTURE_MODE_DETAIL); $summaryInfo = array(); // Take first block information as summary information $stucturedValues = $recordStrucure->getStructure(); foreach ($stucturedValues as $blockLabel => $fieldList) { $summaryInfo[$blockLabel] = $fieldList; break; } $detailViewLinkParams = array('MODULE' => $moduleName, 'RECORD' => $recordId); $detailViewLinks = $this->record->getDetailViewLinks($detailViewLinkParams); $navigationInfo = ListViewSession::getListViewNavigation($recordId); $viewer = $this->getViewer($request); $modid = $recordModel->get('moduleid'); $moduleNameResult = $db->query("select name from vtiger_tab where tabid = '{$modid}'", true); $moduleName = $db->query_result($moduleNameResult, 0, 'name'); $tName = vtranslate($moduleName, $moduleName); $viewer->assign('MODULEID_NAME', $tName); $viewer->assign('RECORD', $recordModel); //var_dump($recordModel); //exit; ///Conditions vimport('~~modules/OSSPdf/helpers/Conditions.php'); $baseModule = Vtiger_Functions::getModuleName($modid); $Condition = Conditions::getConditionRelToRecordFieldInfo($request->get('record'), $baseModule); $viewer->assign('REQUIRED_CONDITIONS', $Condition['required_conditions']); $viewer->assign('OPTIONAL_CONDITIONS', $Condition['optional_conditions']); $viewer->assign('BASE_MODULE', $baseModule); ///Conditions $viewer->assign('NAVIGATION', $navigationInfo); //Intially make the prev and next records as null $prevRecordId = null; $nextRecordId = null; $found = false; if ($navigationInfo) { foreach ($navigationInfo as $page => $pageInfo) { foreach ($pageInfo as $index => $record) { //If record found then next record in the interation //will be next record if ($found) { $nextRecordId = $record; break; } if ($record == $recordId) { $found = true; } //If record not found then we are assiging previousRecordId //assuming next record will get matched if (!$found) { $prevRecordId = $record; } } //if record is found and next record is not calculated we need to perform iteration if ($found && !empty($nextRecordId)) { break; } } } $moduleModel = Vtiger_Module_Model::getInstance($origModuleName); if (!empty($prevRecordId)) { $viewer->assign('PREVIOUS_RECORD_URL', $moduleModel->getDetailViewUrl($prevRecordId)); } if (!empty($nextRecordId)) { $viewer->assign('NEXT_RECORD_URL', $moduleModel->getDetailViewUrl($nextRecordId)); } $viewer->assign('MODULE_MODEL', $this->record->getModule()); $viewer->assign('DETAILVIEW_LINKS', $detailViewLinks); $viewer->assign('MODULE', $request->getModule()); $viewer->assign('IS_EDITABLE', $this->record->getRecord()->isEditable($moduleName)); $viewer->assign('IS_DELETABLE', $this->record->getRecord()->isDeletable($moduleName)); $viewer->assign('URL_CONTENT', "index.php?module=OSSPdf&view=content&record={$recordId}"); $viewer->assign('URL_FOOTER', "index.php?module=OSSPdf&view=footer&record={$recordId}"); $viewer->assign('URL_HEADER', "index.php?module=OSSPdf&view=header&record={$recordId}"); $linkParams = array('MODULE' => $moduleName, 'ACTION' => $request->get('view')); $linkModels = $this->record->getSideBarLinks($linkParams); $viewer->assign('QUICK_LINKS', $linkModels); if ($display) { $this->preProcessDisplay($request); } }
public function process($ModuleName, $ID, $record_form, $config) { $db = PearDatabase::getInstance(); $ModuleNameID = Vtiger_Functions::getModuleId($ModuleName); $sql_ext = ''; $save_record1 = true; $save_record2 = true; $save_record = true; $type = 'info'; $info = false; if ($ID != 0 && $ID != '' && !array_key_exists($config['what1'], $record_form)) { $Record_Model = Vtiger_Record_Model::getInstanceById($ID, $ModuleName); $value1 = $Record_Model->get($config['what1']); } else { if (array_key_exists($config['what1'], $record_form)) { $value1 = $record_form[$config['what1']]; } } if ($ID != 0 && $ID != '' && !array_key_exists($config['what2'], $record_form)) { $Record_Model = Vtiger_Record_Model::getInstanceById($ID, $ModuleName); $value2 = $Record_Model->get($config['what2']); } else { if (array_key_exists($config['what2'], $record_form)) { $value2 = $record_form[$config['what2']]; } } if (!is_array($config['where1'])) { $wheres1[] = $config['where1']; } else { $wheres1 = $config['where1']; } if (!is_array($config['where2'])) { $wheres2[] = $config['where2']; } else { $wheres2 = $config['where2']; } if ($value1 != '') { foreach ($wheres1 as $where) { $where = explode('=', $where); $DestModuleName = Vtiger_Functions::getModuleName($where[2]); $ModuleInstance = CRMEntity::getInstance($DestModuleName); $tab_name_index = $ModuleInstance->tab_name_index; $index = $tab_name_index[$where[0]]; $sql_param = array($value1); $sql_ext = ''; if ($ModuleNameID == $where[2] && $ID != 0 && $ID != '') { $sql_param[] = $ID; $sql_ext = 'AND ' . $index . ' <> ?'; } $result = $db->pquery("SELECT {$index} FROM {$where[0]} WHERE {$where[1]} = ? {$sql_ext};", $sql_param, true); for ($i = 0; $i < $db->num_rows($result); $i++) { $save_record1 = false; $id = $db->query_result_raw($result, $i, $index); $result = $db->pquery("SELECT smownerid FROM vtiger_crmentity WHERE crmid = ?", array($id), true); $fieldlabel .= '<a target="_blank" href="index.php?module=' . $DestModuleName . '&view=Detail&record=' . $id . '">• ' . Vtiger_Functions::getCRMRecordLabel($id) . '</a> (' . Vtiger_Functions::getOwnerRecordLabel($db->query_result($result, 0, 'smownerid')) . '),'; } } } if ($value2 != '') { foreach ($wheres2 as $where) { $where = explode('=', $where); $DestModuleName = Vtiger_Functions::getModuleName($where[2]); $ModuleInstance = CRMEntity::getInstance($DestModuleName); $tab_name_index = $ModuleInstance->tab_name_index; $index = $tab_name_index[$where[0]]; $sql_param = array($value1); $sql_ext = ''; if ($ModuleNameID == $where[2] && $ID != 0 && $ID != '') { $sql_param[] = $ID; $sql_ext = 'AND ' . $index . ' <> ?'; } $result = $db->pquery("SELECT {$index} FROM {$where[0]} WHERE {$where[1]} = ? {$sql_ext};", $sql_param, true); for ($i = 0; $i < $db->num_rows($result); $i++) { $save_record2 = false; $id = $db->query_result_raw($result, $i, $index); $result = $db->pquery("SELECT smownerid FROM vtiger_crmentity WHERE crmid = ?", array($id), true); $fieldlabel .= '<a target="_blank" href="index.php?module=' . $DestModuleName . '&view=Detail&record=' . $id . '">• ' . Vtiger_Functions::getCRMRecordLabel($id) . '</a> (' . Vtiger_Functions::getOwnerRecordLabel($db->query_result($result, 0, 'smownerid')) . '),'; } } } if ($config['locksave'] == 0 && $ID == '') { $info = $config['info0']; } elseif (!$save_record1 && !$save_record2) { $type = 'error'; $save_record = false; $info = $config['info2']; } elseif (!$save_record1 || !$save_record2) { $type = 'error'; $save_record = false; $info = $config['info1']; } if (!$save_record || $info) { return array('save_record' => $save_record, 'type' => 0, 'info' => array('title' => vtranslate($info, 'DataAccess') . ' <br/ >' . trim($fieldlabel, ','), 'type' => $type, 'hide' => false)); } else { return array('save_record' => true); } }
public function getBlocksId() { $log = vglobal('log'); $log->debug("Entering Settings_WidgetsManagement_Module_Model::getBlocksId() method ..."); $adb = PearDatabase::getInstance(); $data = array(); $query = 'SELECT `vtiger_module_dashboard_blocks`.* , `vtiger_role`.`rolename` FROM `vtiger_module_dashboard_blocks` INNER JOIN `vtiger_role` ON `vtiger_module_dashboard_blocks`.`authorized` = `vtiger_role`.`roleid`;'; $result = $adb->query($query); for ($i = 0; $i < $adb->num_rows($result); $i++) { $blockId = $adb->query_result($result, $i, 'id'); $authorizedName = $adb->query_result($result, $i, 'rolename'); $tabId = $adb->query_result($result, $i, 'tabid'); $authorized = $adb->query_result($result, $i, 'authorized'); $moduleName = Vtiger_Functions::getModuleName($tabId); $data[$moduleName][$blockId]['name'] = $authorizedName; $data[$moduleName][$blockId]['code'] = $authorized; } $log->debug("Exiting Settings_WidgetsManagement_Module_Model::getBlocksId() method ..."); return $data; }
public function getName() { return Vtiger_Functions::getModuleName($this->get('tabid')); }
/** Function to get the tab module name for a given id * @param $tabid -- tab id:: Type integer * @returns $string -- string:: Type string * */ function getTabModuleName($tabid) { return Vtiger_Functions::getModuleName($tabid); }
public function getRelatedName() { return Vtiger_Functions::getModuleName($this->get('reltabid')); }
/** * Function returns related records based on related moduleName * @param Vtiger_Request $request * @return <type> */ function showRelatedRecords(Vtiger_Request $request) { $parentId = $request->get('record'); $pageNumber = $request->get('page'); $limit = $request->get('limit'); $whereCondition = $request->get('whereCondition'); $relatedModuleName = $request->get('relatedModule'); $orderBy = $request->get('orderby'); $sortOrder = $request->get('sortorder'); $moduleName = $request->getModule(); if (empty($pageNumber)) { $pageNumber = 1; } $pagingModel = new Vtiger_Paging_Model(); $pagingModel->set('page', $pageNumber); if (!empty($limit)) { $pagingModel->set('limit', $limit); } else { $pagingModel->set('limit', 10); } if ($sortOrder == 'ASC') { $nextSortOrder = 'DESC'; $sortImage = 'glyphicon glyphicon-chevron-down'; } else { $nextSortOrder = 'ASC'; $sortImage = 'glyphicon glyphicon-chevron-up'; } if (empty($orderBy) && empty($sortOrder)) { if (is_numeric($relatedModuleName)) { $relatedModuleName = Vtiger_Functions::getModuleName($relatedModuleName); } $relatedInstance = CRMEntity::getInstance($relatedModuleName); $orderBy = $relatedInstance->default_order_by; $sortOrder = $relatedInstance->default_sort_order; } $parentRecordModel = Vtiger_Record_Model::getInstanceById($parentId, $moduleName); $relationListView = Vtiger_RelationListView_Model::getInstance($parentRecordModel, $relatedModuleName); if (!empty($whereCondition)) { $relationListView->set('whereCondition', $whereCondition); } if (!empty($orderBy)) { $relationListView->set('orderby', $orderBy); $relationListView->set('sortorder', $sortOrder); } $models = $relationListView->getEntries($pagingModel); $links = $relationListView->getLinks(); $header = $relationListView->getHeaders(); $relationModel = $relationListView->getRelationModel(); $relatedModuleModel = $relationModel->getRelationModuleModel(); $relationField = $relationModel->getRelationField(); $noOfEntries = count($models); $viewer = $this->getViewer($request); $viewer->assign('MODULE', $moduleName); $viewer->assign('COLUMNS', $request->get('col')); $viewer->assign('LIMIT', $request->get('limit')); $viewer->assign('RELATED_RECORDS', $models); $viewer->assign('RELATED_HEADERS', $header); $viewer->assign('RELATED_MODULE', $relatedModuleModel); $viewer->assign('RELATED_MODULE_NAME', $relatedModuleName); $viewer->assign('PAGING_MODEL', $pagingModel); $viewer->assign('USER_MODEL', Users_Record_Model::getCurrentUserModel()); $viewer->assign('PARENT_RECORD', $parentRecordModel); $viewer->assign('RELATED_LIST_LINKS', $links); $viewer->assign('RELATED_ENTIRES_COUNT', $noOfEntries); $viewer->assign('RELATION_FIELD', $relationField); if (PerformancePrefs::getBoolean('LISTVIEW_COMPUTE_PAGE_COUNT', false)) { $totalCount = $relationListView->getRelatedEntriesCount(); $pageLimit = $pagingModel->getPageLimit(); $pageCount = ceil((int) $totalCount / (int) $pageLimit); if ($pageCount == 0) { $pageCount = 1; } $viewer->assign('PAGE_COUNT', $pageCount); $viewer->assign('TOTAL_ENTRIES', $totalCount); $viewer->assign('PERFORMANCE', true); } $viewer->assign('PAGING', $pagingModel); $viewer->assign('ORDER_BY', $orderBy); $viewer->assign('SORT_ORDER', $sortOrder); $viewer->assign('NEXT_SORT_ORDER', $nextSortOrder); $viewer->assign('SORT_IMAGE', $sortImage); $viewer->assign('COLUMN_NAME', $orderBy); $viewer->assign('IS_EDITABLE', $relationModel->isEditable()); $viewer->assign('IS_DELETABLE', $relationModel->isDeletable()); return $viewer->view('SummaryWidgets.tpl', $moduleName, 'true'); }
public function process($ModuleName, $ID, $record_form, $config) { $db = PearDatabase::getInstance(); $ModuleNameID = Vtiger_Functions::getModuleId($ModuleName); $fieldlabel = $sql_ext = ''; $save_record1 = true; $save_record2 = true; $save_record = true; $type = 0; $typeInfo = 'info'; $info = false; if ($ID != 0 && $ID != '' && !array_key_exists($config['what1'], $record_form)) { $Record_Model = Vtiger_Record_Model::getInstanceById($ID, $ModuleName); $value1 = $Record_Model->get($config['what1']); } else { if (array_key_exists($config['what1'], $record_form)) { $value1 = $record_form[$config['what1']]; } } if ($ID != 0 && $ID != '' && !array_key_exists($config['what2'], $record_form)) { $Record_Model = Vtiger_Record_Model::getInstanceById($ID, $ModuleName); $value2 = $Record_Model->get($config['what2']); } else { if (array_key_exists($config['what2'], $record_form)) { $value2 = $record_form[$config['what2']]; } } if (!is_array($config['where1'])) { $wheres1[] = $config['where1']; } else { $wheres1 = $config['where1']; } if (!is_array($config['where2'])) { $wheres2[] = $config['where2']; } else { $wheres2 = $config['where2']; } if ($value1 != '') { foreach ($wheres1 as $where) { $where = explode('=', $where); $DestModuleName = Vtiger_Functions::getModuleName($where[2]); $ModuleInstance = CRMEntity::getInstance($DestModuleName); $tab_name_index = $ModuleInstance->tab_name_index; $index = $tab_name_index[$where[0]]; $sql_param = array($value1); $sql_ext = ''; $spacialCondition = ''; $sqlSpecial = ''; if ($ModuleNameID == $where[2] && $ID != 0 && $ID != '') { $sql_param[] = $ID; $sql_ext = 'AND ' . $index . ' <> ?'; } if ($DestModuleName == 'Leads') { $spacialCondition = ' AND `converted` = 0'; if ('vtiger_crmentity' == $where[0]) { $sqlSpecial = 'INNER JOIN vtiger_leaddetails ON vtiger_crmentity.crmid = vtiger_leaddetails.leadid '; } } $result = $db->pquery("SELECT {$index} FROM {$where[0]} {$sqlSpecial} WHERE {$where[1]} = ? {$sql_ext} {$spacialCondition};", $sql_param, true); $num = $db->num_rows($result); for ($i = 0; $i < $num; $i++) { $id = $db->query_result_raw($result, $i, $index); $metadata = Vtiger_Functions::getCRMRecordMetadata($id); if ($metadata['setype'] == $DestModuleName) { $save_record1 = false; $deletedLabel = $metadata['deleted'] ? ' - ' . vtranslate('LBL_RECORD_DELETED', 'DataAccess') : ''; $fieldlabel .= '<a target="_blank" href="index.php?module=' . $DestModuleName . '&view=Detail&record=' . $id . '">• ' . Vtiger_Functions::getCRMRecordLabel($id) . '</a> (' . Vtiger_Functions::getOwnerRecordLabel($metadata['smownerid']) . ')' . $deletedLabel . ',<br/>'; } } } } if ($value2 != '') { foreach ($wheres2 as $where) { $where = explode('=', $where); $DestModuleName = Vtiger_Functions::getModuleName($where[2]); $ModuleInstance = CRMEntity::getInstance($DestModuleName); $tab_name_index = $ModuleInstance->tab_name_index; $index = $tab_name_index[$where[0]]; $sql_param = array($value2); $sql_ext = ''; $spacialCondition = ''; $sqlSpecial = ''; if ($ModuleNameID == $where[2] && $ID != 0 && $ID != '') { $sql_param[] = $ID; $sql_ext = 'AND ' . $index . ' <> ?'; } if ($DestModuleName == 'Leads') { $spacialCondition = ' AND `converted` = 0'; if ('vtiger_crmentity' == $where[0]) { $sqlSpecial = 'INNER JOIN vtiger_leaddetails ON vtiger_crmentity.crmid = vtiger_leaddetails.leadid '; } } $result = $db->pquery("SELECT {$index} FROM {$where[0]} WHERE {$where[1]} = ? {$sql_ext};", $sql_param, true); $num = $db->num_rows($result); for ($i = 0; $i < $num; $i++) { $id = $db->query_result_raw($result, $i, $index); $metadata = Vtiger_Functions::getCRMRecordMetadata($id); if ($metadata['setype'] == $DestModuleName) { $save_record2 = false; $deletedLabel = $metadata['deleted'] ? ' - ' . vtranslate('LBL_RECORD_DELETED', 'DataAccess') : ''; $fieldlabel .= '<a target="_blank" href="index.php?module=' . $DestModuleName . '&view=Detail&record=' . $id . '">• ' . Vtiger_Functions::getCRMRecordLabel($id) . '</a> (' . Vtiger_Functions::getOwnerRecordLabel($metadata['smownerid']) . ')' . $deletedLabel . ',<br/>'; } } } } if ($config['locksave'] == 0) { $info = $config['info0']; $type = 2; $save_record = !$save_record1 || !$save_record2 ? false : true; } elseif (!$save_record1 && !$save_record2) { $typeInfo = 'error'; $save_record = false; $info = $config['info2']; } elseif (!$save_record1 || !$save_record2) { $typeInfo = 'error'; $save_record = false; $info = $config['info1']; } if (!$save_record || $info) { return array('save_record' => $save_record, 'type' => $type, 'info' => ['text' => vtranslate($info, 'DataAccess') . ' <br/ >' . trim($fieldlabel, ','), 'ntype' => $typeInfo, 'hide' => false]); } else { return array('save_record' => true); } }