/** * Import Custom views of the module * @access private */ function update_CustomViews($modulenode, $moduleInstance) { if (empty($modulenode->customviews) || empty($modulenode->customviews->customview)) { return; } foreach ($modulenode->customviews->customview as $customviewnode) { $filterInstance = Vtiger_Filter::getInstance($customviewnode->viewname, $moduleInstance); if (!$filterInstance) { $filterInstance = $this->import_CustomView($modulenode, $moduleInstance, $customviewnode); } else { $this->update_CustomView($modulenode, $moduleInstance, $customviewnode, $filterInstance); } } }
/** * Delete this instance */ function delete() { if ($this->isentitytype) { Vtiger_Access::deleteSharing($this); Vtiger_Access::deleteTools($this); Vtiger_Filter::deleteForModule($this); Vtiger_Block::deleteForModule($this); if (method_exists($this, 'deinitWebservice')) { $this->deinitWebservice(); } } $this->__delete(); Vtiger_Profile::deleteForModule($this); Vtiger_Link::deleteAll($this->id); Vtiger_Menu::detachModule($this); self::syncfile(); }
/** * Export Custom views of the module * @access private */ function export_CustomViews($moduleInstance) { global $adb; $customviewres = $adb->pquery("SELECT * FROM vtiger_customview WHERE entitytype = ?", array($moduleInstance->name)); $customviewcount = $adb->num_rows($customviewres); if (empty($customviewcount)) { return; } $this->openNode('customviews'); for ($cvindex = 0; $cvindex < $customviewcount; ++$cvindex) { $cvid = $adb->query_result($customviewres, $cvindex, 'cvid'); $cvcolumnres = $adb->query("SELECT * FROM vtiger_cvcolumnlist WHERE cvid={$cvid}"); $cvcolumncount = $adb->num_rows($cvcolumnres); $this->openNode('customview'); $setdefault = $adb->query_result($customviewres, $cvindex, 'setdefault'); $setdefault = $setdefault == 1 ? 'true' : 'false'; $setmetrics = $adb->query_result($customviewres, $cvindex, 'setmetrics'); $setmetrics = $setmetrics == 1 ? 'true' : 'false'; $this->outputNode($adb->query_result($customviewres, $cvindex, 'viewname'), 'viewname'); $this->outputNode($setdefault, 'setdefault'); $this->outputNode($setmetrics, 'setmetrics'); $this->openNode('fields'); for ($index = 0; $index < $cvcolumncount; ++$index) { $cvcolumnindex = $adb->query_result($cvcolumnres, $index, 'columnindex'); $cvcolumnname = $adb->query_result($cvcolumnres, $index, 'columnname'); $cvcolumnnames = explode(':', $cvcolumnname); $cvfieldname = $cvcolumnnames[2]; $this->openNode('field'); $this->outputNode($cvfieldname, 'fieldname'); $this->outputNode($cvcolumnindex, 'columnindex'); $cvcolumnruleres = $adb->pquery("SELECT * FROM vtiger_cvadvfilter WHERE cvid=? AND columnname=?", array($cvid, $cvcolumnname)); $cvcolumnrulecount = $adb->num_rows($cvcolumnruleres); if ($cvcolumnrulecount) { $this->openNode('rules'); for ($rindex = 0; $rindex < $cvcolumnrulecount; ++$rindex) { $cvcolumnruleindex = $adb->query_result($cvcolumnruleres, $rindex, 'columnindex'); $cvcolumnrulecomp = $adb->query_result($cvcolumnruleres, $rindex, 'comparator'); $cvcolumnrulevalue = $adb->query_result($cvcolumnruleres, $rindex, 'value'); $cvcolumnrulecomp = Vtiger_Filter::translateComparator($cvcolumnrulecomp, true); $this->openNode('rule'); $this->outputNode($cvcolumnruleindex, 'columnindex'); $this->outputNode($cvcolumnrulecomp, 'comparator'); $this->outputNode($cvcolumnrulevalue, 'value'); $this->closeNode('rule'); } $this->closeNode('rules'); } $this->closeNode('field'); } $this->closeNode('fields'); $this->closeNode('customview'); } $this->closeNode('customviews'); }
$home = Vtiger_Module::getInstance('Home'); $home->addLink('DASHBOARDWIDGET', 'Funnel Amount', 'index.php?module=Potentials&view=ShowWidget&name=FunnelAmount', '', '10'); // Enable Sharing-Access for Vendors $vendorInstance = Vtiger_Module::getInstance('Vendors'); $vendorAssignedToField = Vtiger_Field::getInstance('assigned_user_id', $vendorInstance); if (!$vendorAssignedToField) { $vendorBlock = Vtiger_Block::getInstance('LBL_VENDOR_INFORMATION', $vendorInstance); $vendorAssignedToField = new Vtiger_Field(); $vendorAssignedToField->name = 'assigned_user_id'; $vendorAssignedToField->label = 'Assigned To'; $vendorAssignedToField->table = 'vtiger_crmentity'; $vendorAssignedToField->column = 'smownerid'; $vendorAssignedToField->uitype = 53; $vendorAssignedToField->typeofdata = 'V~M'; $vendorBlock->addField($vendorAssignedToField); $vendorAllFilter = Vtiger_Filter::getInstance('All', $vendorInstance); $vendorAllFilter->addField($vendorAssignedToField, 5); } // Allow Sharing access and role-based security for Vendors Vtiger_Access::deleteSharing($vendorInstance); Vtiger_Access::initSharing($vendorInstance); Vtiger_Access::allowSharing($vendorInstance); Vtiger_Access::setDefaultSharing($vendorInstance); Vtiger_Module::syncfile(); // Add Email Opt-out for Leads $leadsInstance = Vtiger_Module::getInstance('Leads'); $leadsOptOutField = Vtiger_Field::getInstance('emailoptout', $leadsInstance); if (!$leadsOptOutField) { $leadsOptOutField = new Vtiger_Field(); $leadsOptOutField->name = 'emailoptout'; $leadsOptOutField->label = 'Email Opt Out';
danzi.tn@20150427 template per la creazione di un modulo da utilizzare dopo aver creato il modulo con la console **/ chdir(dirname(__FILE__) . '/../..'); include_once 'vtlib/Vtiger/Module.php'; include_once 'vtlib/Vtiger/Package.php'; include_once 'includes/main/WebUI.php'; include_once 'include/Webservices/Utils.php'; $Vtiger_Utils_Log = true; $SINGLE_MODULENAME = 'Rumor'; $MODULENAME = $SINGLE_MODULENAME . 's'; $moduleInstance = Vtiger_Module::getInstance($MODULENAME); if ($moduleInstance || file_exists('modules/' . $MODULENAME)) { $tabid = $moduleInstance->id; echo "\nModule " . $MODULENAME . " is present\n"; Vtiger_Filter::deleteForModule($moduleInstance); // Create default custom filter (mandatory) $filterAll = new Vtiger_Filter(); $filterAll->name = 'All'; $filterAll->isdefault = true; $moduleInstance->addFilter($filterAll); $fieldName = "name"; $field = Vtiger_Field::getInstance($fieldName, $moduleInstance); if ($field) { $filterAll->addField($field); } else { echo "\nField " . $fieldName . " does not exists\n"; } $block_name = 'LBL_' . strtoupper($moduleInstance->name) . '_INFORMATION'; $block = Vtiger_Block::getInstance($block_name, $moduleInstance); if ($block) {
/** * Delete this instance */ function delete() { if ($this->isentitytype) { Vtiger_Access::deleteSharing($this); Vtiger_Access::deleteTools($this); Vtiger_Filter::deleteForModule($this); Vtiger_Block::deleteForModule($this); } $this->__delete(); Vtiger_Profile::deleteForModule($this); Vtiger_Link::deleteAll($this->id); Vtiger_Menu::detachModule($this); self::syncfile(); }
/** * Delete this instance */ function delete() { $moduleInstance = Vtiger_Module_Model::getInstance($this->name); require_once "modules/{$this->name}/{$this->name}.php"; $focus = new $this->name(); $this->tableName = $focus->table_name; if ($this->isentitytype) { $this->deleteFromCRMEntity(); Vtiger_Access::deleteTools($this); Vtiger_Filter::deleteForModule($this); Vtiger_Block::deleteForModule($this); if (method_exists($this, 'deinitWebservice')) { $this->deinitWebservice(); } } $this->deleteIcons(); $this->unsetAllRelatedList($moduleInstance); ModComments_Module_Model::deleteForModule($moduleInstance); Vtiger_Language::deleteForModule($moduleInstance); Vtiger_Access::deleteSharing($moduleInstance); $this->deleteFromModentityNum(); Vtiger_Cron::deleteForModule($moduleInstance); Vtiger_Profile::deleteForModule($moduleInstance); Settings_Workflows_Module_Model::deleteForModule($moduleInstance); Vtiger_Menu::deleteForModule($moduleInstance); $this->deleteGroup2Modules(); $this->deleteModuleTables(); $this->deleteCRMEntityRel(); Vtiger_Profile::deleteForModule($this); Vtiger_Link::deleteAll($this->id); $this->deleteDir($moduleInstance); $this->__delete(); self::syncfile(); }