/** * @return string * @permissions right1 */ protected function actionInstantiateHandler() { $strReturn = ""; $objHandler = new class_module_workflows_handler($this->getSystemid()); $strReturn .= $this->objToolkit->formHeadline($objHandler->getObjInstanceOfHandler()->getStrName() . " (" . $objHandler->getStrHandlerClass() . ")"); $strReturn .= $this->objToolkit->formHeader(getLinkAdminHref($this->getArrModule("modul"), "startInstance")); $strReturn .= $this->objToolkit->formTextRow($this->getLang("instance_systemid_hint")); $strReturn .= $this->objToolkit->formInputText("instance_systemid", $this->getLang("instance_systemid")); $strReturn .= $this->objToolkit->formTextRow($this->getLang("instance_responsible_hint")); $strReturn .= $this->objToolkit->formInputUserSelector("instance_responsible", $this->getLang("instance_responsible")); $strReturn .= $this->objToolkit->formInputHidden("instance_responsible_id", ""); $strReturn .= $this->objToolkit->formInputHidden("systemid", $this->getSystemid()); $strReturn .= $this->objToolkit->formInputSubmit($this->getLang("commons_save")); return $strReturn; }
/** * Synchronizes the list of handlers available on the filesystem compared to the list * of handlers available in the database. * Adds or removes handlers from or to the database. * */ public static function synchronizeHandlerList() { //load the list of handlers in the filesystem $arrFiles = class_resourceloader::getInstance()->getFolderContent("/system/workflows", array(".php")); foreach ($arrFiles as $strOneFile) { $strClassname = uniStrReplace(".php", "", $strOneFile); $objReflection = new ReflectionClass($strClassname); if (!$objReflection->isAbstract()) { $objWorkflow = class_module_workflows_handler::getHandlerByClass($strClassname); if ($objWorkflow == null) { $objWorkflow = new class_module_workflows_handler(); $objWorkflow->setStrHandlerClass($strClassname); $arrDefault = $objWorkflow->getObjInstanceOfHandler()->getDefaultValues(); if (isset($arrDefault[0])) { $objWorkflow->setStrConfigVal1($arrDefault[0]); } if (isset($arrDefault[1])) { $objWorkflow->setStrConfigVal2($arrDefault[1]); } if (isset($arrDefault[2])) { $objWorkflow->setStrConfigVal3($arrDefault[2]); } $objWorkflow->updateObjectToDb(); } } } //find workflows to remove $arrWorkflows = self::getObjectList(); /** @var class_module_workflows_handler $objOneWorkflow */ foreach ($arrWorkflows as $objOneWorkflow) { if (!in_array($objOneWorkflow->getStrHandlerClass() . ".php", $arrFiles)) { $objOneWorkflow->deleteObjectFromDatabase(); } } }