Exemplo n.º 1
0
 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);
         }
     }
 }