public function handleForm(&$model, &$hiddenArr, &$readOnlyArr, $debug = false) { $structure = $this->form->structure; $inAppMode = isset($this->flow); if ($inAppMode) { WfCommonUtil::updateTable($this->flow->flowid, $structure); $itemData = FlowDataN::model()->fetch($this->flow->flowid, $this->run->runid); } if (empty($structure)) { return $model; } else { $params = array("inDebug" => $debug, "inApp" => $inAppMode, "itemData" => isset($itemData) ? $itemData : array()); $processor = new ICViewProcessor(array_merge($params, $this->toArray())); foreach ($structure as $ename => $item) { $etitle = isset($item["data-title"]) ? $item["data-title"] : ""; $etype = $item["data-type"]; $itemID = $item["itemid"]; if (!$debug) { if ($this->flow->isFixed() && StringUtil::findIn($this->process->hiddenitem, $etitle)) { $model = str_ireplace("{" . $ename . "}", "", $model); $hiddenArr[] = $itemID; continue; } $readOnly = $this->isReadOnly($etitle); } else { $readOnly = false; } if ($readOnly) { if ($this->flow->isFixed() && StringUtil::findIn($this->process->processitemauto, $etitle) || $etype != "calc") { $readOnlyArr[] = $itemID; } } $method = $etype . "Processor"; if (method_exists($processor, $method)) { $eleout = $processor->{$method}($item, $readOnly); } $model = str_ireplace("{" . $ename . "}", $eleout, $model); } } }