XCL Web Application Platform 2.5.0
The XoopsCube Legacy Project
Loading...
Searching...
No Matches
object.php
1<?php
10
11if (!defined('XOOPS_ROOT_PATH')) {
12 exit();
13}
14
30{
31 public $mVars = [];
32 public $mIsNew = true;
33 public $mDirname = null;
34
35 public function __construct()
36 {
37 }
38
39 public function setNew()
40 {
41 $this->mIsNew = true;
42 }
43
44 public function unsetNew()
45 {
46 $this->mIsNew = false;
47 }
48
49 public function isNew()
50 {
51 return $this->mIsNew;
52 }
53
54 public function initVar($key, $dataType, $value = null, $required = false, $size = null)
55 {
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];
57
58 if (!$_mAllowType[$dataType]) {
59 die(); // TODO
60 }
61
62 $this->mVars[$key] = [
63 'data_type' => $dataType,
64 'value' => null,
65 'required' => $required ? true : false,
66 'maxlength' => $size ? (int)$size : null
67 ];
68
69 $this->assignVar($key, $value);
70 }
71
72 public function assignVar($key, $value)
73 {
74 $vars = &$this->mVars[$key];
75 if (!isset($vars)) {
76 return;
77 }
78
79 switch ($vars['data_type']) {
80 case XOBJ_DTYPE_BOOL:
81 $vars['value'] = $value ? 1 : 0;
82 return;
83
84 case XOBJ_DTYPE_INT:
85 $vars['value'] = null !== $value ? (int)$value : null;
86 return;
87
88 case XOBJ_DTYPE_FLOAT:
89 $vars['value'] = null !== $value ? (float)$value : null;
90 return;
91
92 case XOBJ_DTYPE_STRING:
93 $len = $vars['maxlength'];
94 $vars['value'] = (null !== $len && strlen($value ?? '') > $len) ? xoops_substr($value, 0, $len, null) : $value;
95 return;
96
97 case XOBJ_DTYPE_TEXT:
98 $vars['value'] = $value;
99 return;
100 }
101 }
102
103 public function assignVars($values)
104 {
105 foreach ($values as $key => $value) {
106 $this->assignVar($key, $value);
107 }
108 }
109
110 public function set($key, $value)
111 {
112 $this->assignVar($key, $value);
113 }
114
115 public function get($key)
116 {
117 return $this->mVars[$key]['value'];
118 }
119
120 public function gets()
121 {
122 $ret = [];
123
124 foreach ($this->mVars as $key => $value) {
125 $ret[$key] = $value['value'];
126 }
127
128 return $ret;
129 }
130
131 public function setVar($key, $value)
132 {
133 $this->assignVar($key, $value);
134 }
135
136 public function setVars($values)
137 {
138 $this->assignVars($values);
139 }
140
146 public function getVar($key)
147 {
148 return $this->getShow($key);
149 }
150
157 public function getShow($key)
158 {
159 $value = null;
160 $vars = $this->mVars[$key];
161
162 switch ($vars['data_type']) {
163 case XOBJ_DTYPE_BOOL:
164 case XOBJ_DTYPE_INT:
165 case XOBJ_DTYPE_FLOAT:
166 return $vars['value'];
167
168 case XOBJ_DTYPE_STRING:
169 $root =& XCube_Root::getSingleton();
170 $textFilter =& $root->getTextFilter();
171 return $textFilter->toShow($vars['value']);
172
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);
177 }
178
179 return $value;
180 }
181
182 public function getTypeInformations()
183 {
184 $ret = [];
185 foreach (array_keys($this->mVars) as $key) {
186 $ret[$key] = $this->mVars[$key]['data_type'];
187 }
188
189 return $ret;
190 }
191
201 public function getPurifiedHtml(/*** string ***/ $key, /*** string ***/ $encoding=null, /*** string ***/ $doctype=null)
202 {
203 $root = XCube_Root::getSingleton();
204 $textFilter = $root->getTextFilter();
205 return $textFilter->purifyHtml($this->get($key), $encoding, $doctype);
206 }
207
215 public function getDirname()
216 {
217 return $this->mDirname;
218 }
219}
getPurifiedHtml( $key, $encoding=null, $doctype=null)
Definition object.php:201
assignVars($values)
Definition object.php:103