/**
  * @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();
         }
     }
 }