var_container = []; $this->var_name = $name; $this->element_id = $id; $this->setValue($value); } public function setValue($value) { $this->var_container = []; if ($value !== null) { $this->parseValue($this->var_name, $value, $this->element_id); } return $this; } private function parseValue($name, $value, ?string $id) { if (is_array($value)) { foreach ($value as $key => $item) { if (is_null($item)) { continue; } $this->parseValue($name.'['.$key.']', $item, $id !== null ? $id.'_'.$key : null); } return null; } if (strpos($value, "\n") === false) { $hiddenVar = new CInput('hidden', $name, $value); } else { $hiddenVar = (new CTextArea($name, $value))->addStyle('display: none;'); } if ($id !== null) { $hiddenVar->setId($id); } $this->var_container[] = $hiddenVar; } public function toString() { $res = ''; foreach ($this->var_container as $item) { $res .= $item->toString(); } return $res; } /** * Remove ID attribute from tag. * * @return CVar */ public function removeId() { foreach ($this->var_container as $item) { $item->removeAttribute('id'); } return $this; } /** * Enable or disable the element. * * @param bool $value * * @return CVar */ public function setEnabled($value) { foreach ($this->var_container as $item) { $item->setEnabled($value); } return $this; } }