diff --git a/workflow/engine/classes/class.pmDynaform.php b/workflow/engine/classes/class.pmDynaform.php index 04a0f6f47..b50accfd6 100644 --- a/workflow/engine/classes/class.pmDynaform.php +++ b/workflow/engine/classes/class.pmDynaform.php @@ -16,6 +16,7 @@ class pmDynaform public $credentials = null; public $lang = null; public $langs = null; + private $dependent = null; //todo public function __construct($fields = array()) { @@ -184,6 +185,21 @@ class pmDynaform if ($json->data["label"] === "") { $json->data["label"] = $json->data["value"]; } + //synchronize data label + $withoutOptions = true; + foreach ($json->options as $io) { + if ($json->data["value"] === $io["value"]) { + if ($json->data["label"] != $io["label"]) { + $this->dependent = $json->variable; //todo + $json->data["label"] = $io["label"]; + $withoutOptions = false; + } + } + } + if ($withoutOptions) { + $json->data["label"] = $json->data["value"];//todo + } + //end synchronize data label } if ($key === "type" && ($value === "checkbox")) { $json->data = array( @@ -253,6 +269,27 @@ class pmDynaform } } + public function jsond(&$json) + { + foreach ($json as $key => &$value) { + $sw1 = is_array($value); + $sw2 = is_object($value); + if ($sw1 || $sw2) { + $this->jsond($value); + } + if (!$sw1 && !$sw2) { + if (isset($json->dbConnection) && $json->dbConnection !== "" && $json->dbConnection !== "none" && isset($json->sql) && $json->sql != "") { + $prefix = array("@@", "@#", "@%", "@?", "@$", "@="); + foreach ($prefix as $val) { + if (strpos($json->sql, $val . $this->dependent) !== false) { + $json->data = array("value" => "", "label" => ""); + } + } + } + } + } + } + public function isResponsive() { return $this->record != null && $this->record["DYN_VERSION"] == 2 ? true : false; @@ -273,6 +310,7 @@ class pmDynaform } $this->jsonr($json); + $this->jsond($json); //todo $javascript = "