$taskManager->saveTask($task); $task = $taskManager->createTask('VTEntityMethodTask', $helpDeskWorkflow->id); $task->active = true; $task->summary = 'Notify Related Customer on Ticket Change, which is not done from Portal'; $task->methodName = "NotifyParentOnTicketChange"; $taskManager->saveTask($task); putMsg('Workflow "' . $helpDeskWorkflow->description . '" created!'); $delmods = array('EmailTemplates', 'Google'); foreach ($delmods as $module) { $mod = Vtiger_Module::getInstance($module); if ($mod) { $mod->deleteRelatedLists(); $mod->deleteLinks(); $mod->deinitWebservice(); $mod->delete(); echo "<b>Module {$module} EXTERMINATED!</b><br>"; } } $delmods = array('ar_ae', 'sv_se', 'tr_tr', 'pl_pl', 'ro_ro', 'ru_ru'); require_once 'vtlib/Vtiger/Language.php'; foreach ($delmods as $prefix) { $languagePack = new Vtiger_Language(); @$languagePack->deregister($prefix); } $insmods = array('CronTasks', 'ConfigEditor', 'PBXManager', 'cbupdater'); foreach ($insmods as $module) { $package = new Vtiger_Package(); $rdo = $package->importManifest("modules/{$module}/manifest.xml"); } $mod = Vtiger_Module::getInstance('ModTracker'); $mod->addLink('HEADERSCRIPT', 'ModTrackerCommon_JS', 'modules/ModTracker/ModTrackerCommon.js');
protected function uninstallExtension(Vtiger_Request $request) { $extensionName = $request->get('extensionName'); $extensionInstance = Settings_ExtensionStore_Extension_Model::getModuleFromExtnName($extensionName); $extnType = $extensionInstance->get('extnType'); $response = new Vtiger_Response(); if ($extnType == 'module') { $extensionInstance->delete(); //Remove extension files global $root_directory; $deletePaths = array(); $pathToExtensionLayouts = $root_directory . "layouts/vlayout/modules/{$extensionName}"; $layoutDirAccessible = isFileAccessible($pathToExtensionLayouts); if ($layoutDirAccessible) { $deletePaths['layouts'] = $pathToExtensionLayouts; } $pathToExtensionModule = $root_directory . "modules/{$extensionName}"; $moduleDirAccessible = isFileAccessible($pathToExtensionModule); if ($moduleDirAccessible) { $deletePaths['modules'] = $pathToExtensionModule; } foreach ($deletePaths as $dirName) { $this->deleteRecursively($dirName); } $response->setResult(array('success' => true, 'message' => 'extension deleted')); } else { if ($extnType == 'language') { $languageInstance = Settings_ExtensionStore_Extension_Model::getLanguageInstance($extensionName); if ($languageInstance) { $langPrefix = $languageInstance->get('prefix'); Vtiger_Language::deregister($langPrefix); //remove files $langDir = "languages/{$langPrefix}"; if (isFileAccessible($langDir)) { $this->deleteRecursively($langDir); } } $response->setResult(array('success' => true, 'message' => 'extension deleted')); } else { $response->setError('Error in deleting extension'); } } $response->emit(); }