Skip to content

Commit

Permalink
module_workflows | handler -> abstract workflow classes are not regar…
Browse files Browse the repository at this point in the history
…ded during synchronization of handler list
  • Loading branch information
spoonguard2k committed Aug 29, 2014
1 parent 490590b commit 353ddf0
Showing 1 changed file with 21 additions and 12 deletions.
33 changes: 21 additions & 12 deletions module_workflows/system/class_module_workflows_handler.php
Expand Up @@ -144,17 +144,21 @@ public static function synchronizeHandlerList() {
$arrFiles = class_resourceloader::getInstance()->getFolderContent("/system/workflows", array(".php"));
foreach($arrFiles as $strOneFile) {
$strClassname = uniStrReplace(".php", "", $strOneFile);
$objWorkflow = class_module_workflows_handler::getHandlerByClass($strClassname);
if($objWorkflow == null) {
$objWorkflow = new class_module_workflows_handler();
$objWorkflow->setStrHandlerClass($strClassname);
$objReflection = new ReflectionClass($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]);
if(!$objReflection->isAbstract()) {
$objWorkflow = class_module_workflows_handler::getHandlerByClass($strClassname);
if($objWorkflow == null) {
$objWorkflow = new class_module_workflows_handler();
$objWorkflow->setStrHandlerClass($strClassname);

$objWorkflow->updateObjectToDb();
$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();
}
}
}

Expand All @@ -172,12 +176,17 @@ public static function synchronizeHandlerList() {
* @return interface_workflows_handler
*/
public function getObjInstanceOfHandler() {

if($this->getStrHandlerClass() != "" && class_resourceloader::getInstance()->getPathForFile("/system/workflows/".$this->getStrHandlerClass().".php") !== false) {
$strClassname = uniStrReplace(".php", "", $this->getStrHandlerClass());
return new $strClassname();
$objReflection = new ReflectionClass($strClassname);

if(!$objReflection->isAbstract()) {
return new $strClassname();
}
}
else
return null;

return null;
}


Expand Down

0 comments on commit 353ddf0

Please sign in to comment.