32 public $mIsNew =
true;
33 public $mDirname =
null;
35 public function __construct()
39 public function setNew()
44 public function unsetNew()
46 $this->mIsNew =
false;
54 public function initVar($key, $dataType, $value =
null, $required =
false, $size =
null)
56 static $_mAllowType = [XOBJ_DTYPE_BOOL =>XOBJ_DTYPE_BOOL, XOBJ_DTYPE_INT =>XOBJ_DTYPE_INT, XOBJ_DTYPE_FLOAT =>XOBJ_DTYPE_FLOAT, XOBJ_DTYPE_STRING =>XOBJ_DTYPE_STRING, XOBJ_DTYPE_TEXT =>XOBJ_DTYPE_TEXT];
58 if (!$_mAllowType[$dataType]) {
62 $this->mVars[$key] = [
63 'data_type' => $dataType,
65 'required' => $required ? true :
false,
66 'maxlength' => $size ? (int)$size : null
69 $this->assignVar($key, $value);
72 public function assignVar($key, $value)
74 $vars = &$this->mVars[$key];
79 switch ($vars[
'data_type']) {
81 $vars[
'value'] = $value ? 1 : 0;
85 $vars[
'value'] =
null !== $value ? (int)$value : null;
88 case XOBJ_DTYPE_FLOAT:
89 $vars[
'value'] =
null !== $value ? (float)$value : null;
92 case XOBJ_DTYPE_STRING:
93 $len = $vars[
'maxlength'];
94 $vars[
'value'] = (
null !== $len && strlen($value ??
'') > $len) ? xoops_substr($value, 0, $len,
null) : $value;
98 $vars[
'value'] = $value;
105 foreach ($values as $key => $value) {
106 $this->assignVar($key, $value);
110 public function set($key, $value)
112 $this->assignVar($key, $value);
115 public function get($key)
117 return $this->mVars[$key][
'value'];
120 public function gets()
124 foreach ($this->mVars as $key => $value) {
125 $ret[$key] = $value[
'value'];
131 public function setVar($key, $value)
133 $this->assignVar($key, $value);
136 public function setVars($values)
160 $vars = $this->mVars[$key];
162 switch ($vars[
'data_type']) {
163 case XOBJ_DTYPE_BOOL:
165 case XOBJ_DTYPE_FLOAT:
166 return $vars[
'value'];
168 case XOBJ_DTYPE_STRING:
169 $root =& XCube_Root::getSingleton();
170 $textFilter =& $root->getTextFilter();
171 return $textFilter->toShow($vars[
'value']);
173 case XOBJ_DTYPE_TEXT:
174 $root =& XCube_Root::getSingleton();
175 $textFilter =& $root->getTextFilter();
176 return $textFilter->toShowTarea($vars[
'value'], 0, 1, 1, 1, 1);
182 public function getTypeInformations()
185 foreach (array_keys($this->mVars) as $key) {
186 $ret[$key] = $this->mVars[$key][
'data_type'];
203 $root = XCube_Root::getSingleton();
204 $textFilter = $root->getTextFilter();
205 return $textFilter->purifyHtml($this->
get($key), $encoding, $doctype);
217 return $this->mDirname;