1: <?php
2: 3: 4: 5: 6: 7: 8: 9:
10:
11: if (!defined('XOOPS_ROOT_PATH')) exit();
12:
13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
27: class XoopsSimpleObject extends AbstractXoopsObject
28: {
29: public $mVars = array();
30: public $mIsNew = true;
31: public $mDirname = null;
32:
33: function XoopsSimpleObject()
34: {
35: }
36:
37: function setNew()
38: {
39: $this->mIsNew = true;
40: }
41:
42: function unsetNew()
43: {
44: $this->mIsNew = false;
45: }
46:
47: function isNew()
48: {
49: return $this->mIsNew;
50: }
51:
52: function initVar($key, $dataType, $value = null, $required = false, $size = null)
53: {
54: static $_mAllowType = array(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);
55:
56: if (!$_mAllowType[$dataType]) {
57: die();
58: }
59:
60: $this->mVars[$key] = array(
61: 'data_type' => $dataType,
62: 'value' => null,
63: 'required' => $required ? true : false,
64: 'maxlength' => $size ? (int)$size : null
65: );
66:
67: $this->assignVar($key, $value);
68: }
69:
70: function assignVar($key, $value)
71: {
72: $vars = &$this->mVars[$key];
73: if (!isset($vars)) return;
74:
75: switch ($vars['data_type']) {
76: case XOBJ_DTYPE_BOOL:
77: $vars['value'] = $value ? 1 : 0;
78: return;
79:
80: case XOBJ_DTYPE_INT:
81: $vars['value'] = $value !== null ? (int)$value : null;
82: return;
83:
84: case XOBJ_DTYPE_FLOAT:
85: $vars['value'] = $value !== null ? (float)$value : null;
86: return;
87:
88: case XOBJ_DTYPE_STRING:
89: $len = $vars['maxlength'];
90: $vars['value'] = ($len !== null && strlen($value) > $len) ? xoops_substr($value, 0, $len, null) : $value;
91: return;
92:
93: case XOBJ_DTYPE_TEXT:
94: $vars['value'] = $value;
95: return;
96: }
97: }
98:
99: function assignVars($values)
100: {
101: foreach($values as $key => $value) $this->assignVar($key, $value);
102: }
103:
104: function set($key, $value)
105: {
106: $this->assignVar($key, $value);
107: }
108:
109: function get($key)
110: {
111: return $this->mVars[$key]['value'];
112: }
113:
114: function gets()
115: {
116: $ret = array();
117:
118: foreach ($this->mVars as $key => $value) {
119: $ret[$key] = $value['value'];
120: }
121:
122: return $ret;
123: }
124:
125: function setVar($key, $value)
126: {
127: $this->assignVar($key, $value);
128: }
129:
130: function setVars($values)
131: {
132: $this->assignVars($values);
133: }
134:
135: 136: 137:
138: function getVar($key)
139: {
140: return $this->getShow($key);
141: }
142:
143: 144: 145: 146:
147: function getShow($key)
148: {
149: $value = null;
150: $vars = $this->mVars[$key];
151:
152: switch ($vars['data_type']) {
153: case XOBJ_DTYPE_BOOL:
154: case XOBJ_DTYPE_INT:
155: case XOBJ_DTYPE_FLOAT:
156: return $vars['value'];
157:
158: case XOBJ_DTYPE_STRING:
159: $root =& XCube_Root::getSingleton();
160: $textFilter =& $root->getTextFilter();
161: return $textFilter->toShow($vars['value']);
162:
163: case XOBJ_DTYPE_TEXT:
164: $root =& XCube_Root::getSingleton();
165: $textFilter =& $root->getTextFilter();
166: return $textFilter->toShowTarea($vars['value'], 0, 1, 1, 1, 1);
167: }
168:
169: return $value;
170: }
171:
172: function getTypeInformations()
173: {
174: $ret = array();
175: foreach (array_keys($this->mVars) as $key) {
176: $ret[$key] = $this->mVars[$key]['data_type'];
177: }
178:
179: return $ret;
180: }
181:
182: 183: 184: 185: 186: 187: 188: 189: 190:
191: public function getPurifiedHtml( $key, $encoding=null, $doctype=null)
192: {
193: $root = XCube_Root::getSingleton();
194: $textFilter = $root->getTextFilter();
195: return $textFilter->purifyHtml($this->get($key), $encoding, $doctype);
196: }
197:
198: 199: 200: 201: 202: 203: 204:
205: public function getDirname()
206: {
207: return $this->mDirname;
208: }
209: }
210:
211: ?>
212: