示例#1
0
 /**
  * Import Module
  * @access private
  */
 function import_Module()
 {
     $tabname = $this->_modulexml->name;
     $tablabel = $this->_modulexml->label;
     $tabversion = $this->_modulexml->version;
     $isextension = false;
     if (!empty($this->_modulexml->type)) {
         $type = strtolower($this->_modulexml->type);
         if ($type == 'extension' || $type == 'language') {
             $isextension = true;
         }
     }
     $vtigerMinVersion = $this->_modulexml->dependencies->vtiger_version;
     $vtigerMaxVersion = $this->_modulexml->dependencies->vtiger_max_version;
     $moduleInstance = new Vtiger_Module();
     $moduleInstance->name = $tabname;
     $moduleInstance->label = $tablabel;
     $moduleInstance->isentitytype = $isextension != true;
     $moduleInstance->version = !$tabversion ? 0 : $tabversion;
     $moduleInstance->minversion = !$vtigerMinVersion ? false : $vtigerMinVersion;
     $moduleInstance->maxversion = !$vtigerMaxVersion ? false : $vtigerMaxVersion;
     if ($type != 'update') {
         $moduleInstance->save();
         $moduleInstance->initWebservice();
         $this->import_Tables($this->_modulexml);
         $this->import_Blocks($this->_modulexml, $moduleInstance);
         $this->import_CustomViews($this->_modulexml, $moduleInstance);
         $this->import_SharingAccess($this->_modulexml, $moduleInstance);
         $this->import_Events($this->_modulexml, $moduleInstance);
         $this->import_Actions($this->_modulexml, $moduleInstance);
         $this->import_RelatedLists($this->_modulexml, $moduleInstance);
         $this->import_CustomLinks($this->_modulexml, $moduleInstance);
         $this->import_CronTasks($this->_modulexml);
         Vtiger_Module::fireEvent($moduleInstance->name, Vtiger_Module::EVENT_MODULE_POSTINSTALL);
     } else {
         $this->import_update($this->_modulexml);
     }
 }
 /**
  * Update Module
  * @access private
  */
 function update_Module($moduleInstance)
 {
     $tabname = $this->_modulexml->name;
     $tablabel = $this->_modulexml->label;
     $parenttab = $this->_modulexml->parent;
     $tabversion = $this->_modulexml->version;
     $isextension = false;
     if (!empty($this->_modulexml->type)) {
         $type = strtolower($this->_modulexml->type);
         if ($type == 'extension' || $type == 'language') {
             $isextension = true;
         }
     }
     Vtiger_Module::fireEvent($moduleInstance->name, Vtiger_Module::EVENT_MODULE_PREUPDATE);
     // TODO Handle module property changes like menu, label etc...
     /*if(!empty($parenttab) && $parenttab != '') {
     			$menuInstance = Vtiger_Menu::getInstance($parenttab);
     			$menuInstance->addModule($moduleInstance);
     		}*/
     $this->handle_Migration($this->_modulexml, $moduleInstance);
     $this->update_Tables($this->_modulexml);
     $this->update_Blocks($this->_modulexml, $moduleInstance);
     $this->update_CustomViews($this->_modulexml, $moduleInstance);
     $this->update_SharingAccess($this->_modulexml, $moduleInstance);
     $this->update_Events($this->_modulexml, $moduleInstance);
     $this->update_Actions($this->_modulexml, $moduleInstance);
     $this->update_RelatedLists($this->_modulexml, $moduleInstance);
     $this->update_CustomLinks($this->_modulexml, $moduleInstance);
     $this->update_CronTasks($this->_modulexml);
     $moduleInstance->__updateVersion($tabversion);
     Vtiger_Module::fireEvent($moduleInstance->name, Vtiger_Module::EVENT_MODULE_POSTUPDATE);
 }
示例#3
0
 /**
  * Delete this instance
  * @access private
  */
 function __delete()
 {
     Vtiger_Module::fireEvent($this->name, Vtiger_Module::EVENT_MODULE_PREUNINSTALL);
     global $adb;
     if ($this->isentitytype) {
         $this->unsetEntityIdentifier();
         $this->deleteRelatedLists();
     }
     $adb->pquery("DELETE FROM vtiger_tab WHERE tabid=?", array($this->id));
     self::log("Deleting Module {$this->name} ... DONE");
 }
示例#4
0
 /**
  * Update Module
  * @access private
  */
 function update_Module($moduleInstance)
 {
     $tabname = $this->_modulexml->name;
     $tablabel = $this->_modulexml->label;
     $tabversion = $this->_modulexml->version;
     $isextension = false;
     if (!empty($this->_modulexml->type)) {
         $type = strtolower($this->_modulexml->type);
         if ($type == 'extension' || $type == 'language') {
             $isextension = true;
         }
     }
     Vtiger_Module::fireEvent($moduleInstance->name, Vtiger_Module::EVENT_MODULE_PREUPDATE);
     $moduleInstance->label = $tablabel;
     $moduleInstance->save();
     $this->handle_Migration($this->_modulexml, $moduleInstance);
     $this->update_Tables($this->_modulexml);
     $this->update_Blocks($this->_modulexml, $moduleInstance);
     $this->update_CustomViews($this->_modulexml, $moduleInstance);
     $this->update_SharingAccess($this->_modulexml, $moduleInstance);
     $this->update_Events($this->_modulexml, $moduleInstance);
     $this->update_Actions($this->_modulexml, $moduleInstance);
     $this->update_RelatedLists($this->_modulexml, $moduleInstance);
     $this->update_CustomLinks($this->_modulexml, $moduleInstance);
     $this->update_CronTasks($this->_modulexml);
     $moduleInstance->__updateVersion($tabversion);
     Vtiger_Module::fireEvent($moduleInstance->name, Vtiger_Module::EVENT_MODULE_POSTUPDATE);
 }
示例#5
0
/**
 * Toggle the module (enable/disable)
 */
function vtlib_toggleModuleAccess($module, $enable_disable)
{
    global $adb, $__cache_module_activeinfo;
    include_once 'vtlib/Vtiger/Module.php';
    $event_type = false;
    if ($enable_disable === true) {
        $enable_disable = 0;
        $event_type = Vtiger_Module::EVENT_MODULE_ENABLED;
    } else {
        if ($enable_disable === false) {
            $enable_disable = 1;
            $event_type = Vtiger_Module::EVENT_MODULE_DISABLED;
        }
    }
    $adb->pquery("UPDATE vtiger_tab set presence = ? WHERE name = ?", array($enable_disable, $module));
    $__cache_module_activeinfo[$module] = $enable_disable;
    create_tab_data_file();
    create_parenttab_data_file();
    // UserPrivilege file needs to be regenerated if module state is changed from
    // vtiger 5.1.0 onwards
    global $vtiger_current_version;
    if (version_compare($vtiger_current_version, '5.0.4', '>')) {
        vtlib_RecreateUserPrivilegeFiles();
    }
    Vtiger_Module::fireEvent($module, $event_type);
}
示例#6
0
/**
 * Toggle the module (enable/disable)
 */
function vtlib_toggleModuleAccess($module, $enable_disable)
{
    global $adb, $__cache_module_activeinfo;
    include_once 'vtlib/Vtiger/Module.php';
    $event_type = false;
    if ($enable_disable === true) {
        $enable_disable = 0;
        $event_type = Vtiger_Module::EVENT_MODULE_ENABLED;
    } else {
        if ($enable_disable === false) {
            $enable_disable = 1;
            $event_type = Vtiger_Module::EVENT_MODULE_DISABLED;
        }
    }
    $adb->pquery("UPDATE vtiger_tab set presence = ? WHERE name = ?", array($enable_disable, $module));
    $__cache_module_activeinfo[$module] = $enable_disable;
    create_tab_data_file();
    vtlib_RecreateUserPrivilegeFiles();
    Vtiger_Module::fireEvent($module, $event_type);
}
示例#7
0
 /**
  * Delete this instance
  * @access private
  */
 function __delete()
 {
     Vtiger_Module::fireEvent($this->name, Vtiger_Module::EVENT_MODULE_PREUNINSTALL);
     $adb = PearDatabase::getInstance();
     if ($this->isentitytype) {
         $this->unsetEntityIdentifier();
     }
     $adb->pquery("DELETE FROM vtiger_tab WHERE tabid=?", array($this->id));
     self::log("Deleting Module {$this->name} ... DONE");
 }
示例#8
0
 /**
  * Import Module
  * @access private
  */
 function import_Module()
 {
     $tabname = $this->_modulexml->name;
     $tablabel = $this->_modulexml->label;
     $parenttab = (string) $this->_modulexml->parent;
     $tabversion = $this->_modulexml->version;
     $isextension = false;
     if (!empty($this->_modulexml->type)) {
         $type = strtolower($this->_modulexml->type);
         if ($type == 'extension' || $type == 'language') {
             $isextension = true;
         }
     }
     $vtigerMinVersion = $this->_modulexml->dependencies->vtiger_version;
     $vtigerMaxVersion = $this->_modulexml->dependencies->vtiger_max_version;
     $moduleInstance = new Vtiger_Module();
     $moduleInstance->name = $tabname;
     $moduleInstance->label = $tablabel;
     if ($menuInstance = Vtiger_Menu::getInstance($parenttab)) {
         $moduleInstance->parent = $parenttab;
     } else {
         $moduleInstance->parent = "Tools";
     }
     $moduleInstance->isentitytype = $isextension != true;
     $moduleInstance->version = !$tabversion ? 0 : $tabversion;
     $moduleInstance->minversion = !$vtigerMinVersion ? false : $vtigerMinVersion;
     $moduleInstance->maxversion = !$vtigerMaxVersion ? false : $vtigerMaxVersion;
     $moduleInstance->save();
     if (!empty($parenttab)) {
         $menuInstance = Vtiger_Menu::getInstance($parenttab);
         if ($menuInstance == NULL) {
             $menuInstance = Vtiger_Menu::getInstance("Tools");
             self::log("Module attached to Tools because {$parenttab} does not exist");
         }
         $menuInstance->addModule($moduleInstance);
     }
     $this->import_Tables($this->_modulexml);
     $this->import_Blocks($this->_modulexml, $moduleInstance);
     $this->import_CustomViews($this->_modulexml, $moduleInstance);
     $this->import_SharingAccess($this->_modulexml, $moduleInstance);
     $this->import_Events($this->_modulexml, $moduleInstance);
     $this->import_Actions($this->_modulexml, $moduleInstance);
     $this->import_RelatedLists($this->_modulexml, $moduleInstance);
     $this->import_CustomLinks($this->_modulexml, $moduleInstance);
     $this->import_CronTasks($this->_modulexml);
     $moduleInstance->initWebservice();
     Vtiger_Module::fireEvent($moduleInstance->name, Vtiger_Module::EVENT_MODULE_POSTINSTALL);
 }
 /**
  * Delete this instance
  * @access private
  */
 function __delete()
 {
     Vtiger_Module::fireEvent($this->name, Vtiger_Module::EVENT_MODULE_PREUNINSTALL);
     global $adb;
     if ($this->isentitytype) {
         $this->unsetEntityIdentifier();
         $this->deleteRelatedLists();
     }
     $adb->pquery("DELETE FROM vtiger_tab WHERE tabid=?", array($this->id));
     // SalesPlatform.ru begin Disable history for deleted module
     $adb->pquery("DELETE FROM vtiger_modtracker_tabs WHERE tabid=?", array($this->id));
     // SalesPlatform.ru end
     self::log("Deleting Module {$this->name} ... DONE");
 }
 /**
  * Import Module
  * @access private
  */
 function import_Module()
 {
     $tabname = $this->_modulexml->name;
     $tablabel = $this->_modulexml->label;
     $parenttab = (string) $this->_modulexml->parent;
     $tabversion = $this->_modulexml->version;
     $isextension = false;
     if (!empty($this->_modulexml->type)) {
         $type = strtolower($this->_modulexml->type);
         if ($type == 'extension' || $type == 'language') {
             $isextension = true;
         }
     }
     $moduleInstance = new Vtiger_Module();
     $moduleInstance->name = $tabname;
     $moduleInstance->label = $tablabel;
     $moduleInstance->isentitytype = $isextension != true;
     $moduleInstance->version = !$tabversion ? 0 : $tabversion;
     $moduleInstance->save();
     if (!empty($parenttab)) {
         $menuInstance = Vtiger_Menu::getInstance($parenttab);
         $menuInstance->addModule($moduleInstance);
     }
     $this->import_Tables($this->_modulexml);
     $this->import_Blocks($this->_modulexml, $moduleInstance);
     $this->import_CustomViews($this->_modulexml, $moduleInstance);
     $this->import_SharingAccess($this->_modulexml, $moduleInstance);
     $this->import_Events($this->_modulexml, $moduleInstance);
     $this->import_Actions($this->_modulexml, $moduleInstance);
     $this->import_RelatedLists($this->_modulexml, $moduleInstance);
     $this->import_CustomLinks($this->_modulexml, $moduleInstance);
     Vtiger_Module::fireEvent($moduleInstance->name, Vtiger_Module::EVENT_MODULE_POSTINSTALL);
     $moduleInstance->initWebservice();
 }