XCL Web Application Platform 2.5.0
The XoopsCube Legacy Project
Loading...
Searching...
No Matches
UserAdminEditForm.class.php
1<?php
7
8if (!defined('XOOPS_ROOT_PATH')) {
9 exit();
10}
11
12require_once XOOPS_ROOT_PATH . '/core/XCube_ActionForm.class.php';
13
14/***
15 * @internal
16 * This class is generated by makeActionForm tool.
17 *
18 * @todo We may have to check the format of URL.
19 */
21{
22 public $_mIsNew;
23
24 public function getTokenName()
25 {
26 return 'module.user.UserAdminEditForm.Token' . $this->get('uid');
27 }
28
29 public function prepare()
30 {
31 //
32 // Set form properties
33 //
34 $this->mFormProperties['uid'] =new XCube_IntProperty('uid');
35 $this->mFormProperties['name'] =new XCube_StringProperty('name');
36 $this->mFormProperties['uname'] =new XCube_StringProperty('uname');
37 $this->mFormProperties['email'] =new XCube_StringProperty('email');
38 $this->mFormProperties['url'] =new XCube_StringProperty('url');
39 $this->mFormProperties['user_icq'] =new XCube_StringProperty('user_icq');
40 $this->mFormProperties['user_from'] =new XCube_StringProperty('user_from');
41 $this->mFormProperties['user_sig'] =new XCube_TextProperty('user_sig');
42 $this->mFormProperties['user_viewemail'] =new XCube_IntProperty('user_viewemail');
43 $this->mFormProperties['user_aim'] =new XCube_StringProperty('user_aim');
44 $this->mFormProperties['user_yim'] =new XCube_StringProperty('user_yim');
45 $this->mFormProperties['user_msnm'] =new XCube_StringProperty('user_msnm');
46 $this->mFormProperties['pass'] =new XCube_StringProperty('pass');
47 $this->mFormProperties['vpass'] =new XCube_StringProperty('vpass');
48 $this->mFormProperties['posts'] =new XCube_IntProperty('posts');
49 $this->mFormProperties['attachsig'] =new XCube_IntProperty('attachsig');
50 $this->mFormProperties['rank'] =new XCube_IntProperty('rank');
51 $this->mFormProperties['level'] =new XCube_IntProperty('level');
52 $this->mFormProperties['timezone_offset'] =new XCube_FloatProperty('timezone_offset');
53 $this->mFormProperties['umode'] =new XCube_StringProperty('umode');
54 $this->mFormProperties['uorder'] =new XCube_IntProperty('uorder');
55 $this->mFormProperties['notify_method'] =new XCube_IntProperty('notify_method');
56 $this->mFormProperties['notify_mode'] =new XCube_IntProperty('notify_mode');
57 $this->mFormProperties['user_occ'] =new XCube_StringProperty('user_occ');
58 $this->mFormProperties['bio'] =new XCube_TextProperty('bio');
59 $this->mFormProperties['user_intrest'] =new XCube_StringProperty('user_intrest');
60 $this->mFormProperties['user_mailok'] =new XCube_IntProperty('user_mailok');
61 $this->mFormProperties['groups'] =new XCube_IntArrayProperty('groups');
62
63 //
64 // Set field properties
65 //
66 $this->mFieldProperties['uid'] =new XCube_FieldProperty($this);
67 $this->mFieldProperties['uid']->setDependsByArray(['required']);
68 $this->mFieldProperties['uid']->addMessage('required', _MD_USER_ERROR_REQUIRED, _MD_USER_LANG_UID);
69
70 $this->mFieldProperties['name'] =new XCube_FieldProperty($this);
71 $this->mFieldProperties['name']->setDependsByArray(['maxlength']);
72 $this->mFieldProperties['name']->addMessage('maxlength', _MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_NAME, '60');
73 $this->mFieldProperties['name']->addVar('maxlength', 60);
74
75 $this->mFieldProperties['uname'] =new XCube_FieldProperty($this);
76 $this->mFieldProperties['uname']->setDependsByArray(['required', 'maxlength']);
77 $this->mFieldProperties['uname']->addMessage('required', _MD_USER_ERROR_REQUIRED, _MD_USER_LANG_UNAME, '25');
78 $this->mFieldProperties['uname']->addMessage('maxlength', _MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_UNAME, '25');
79 $this->mFieldProperties['uname']->addVar('maxlength', 25);
80
81 $this->mFieldProperties['email'] =new XCube_FieldProperty($this);
82 $this->mFieldProperties['email']->addMessage('required', _MD_USER_ERROR_REQUIRED, _MD_USER_LANG_EMAIL, '60');
83 $this->mFieldProperties['email']->setDependsByArray(['required', 'maxlength', 'email']);
84 $this->mFieldProperties['email']->addMessage('maxlength', _MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_EMAIL, '60');
85 $this->mFieldProperties['email']->addVar('maxlength', 60);
86 $this->mFieldProperties['email']->addMessage('email', _MD_USER_ERROR_EMAIL, _MD_USER_LANG_EMAIL);
87
88 $this->mFieldProperties['url'] =new XCube_FieldProperty($this);
89 $this->mFieldProperties['url']->setDependsByArray(['maxlength']);
90 $this->mFieldProperties['url']->addMessage('maxlength', _MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_URL, '100');
91 $this->mFieldProperties['url']->addVar('maxlength', 100);
92
93 $this->mFieldProperties['user_icq'] =new XCube_FieldProperty($this);
94 $this->mFieldProperties['user_icq']->setDependsByArray(['maxlength']);
95 $this->mFieldProperties['user_icq']->addMessage('maxlength', _MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_USER_ICQ, '15');
96 $this->mFieldProperties['user_icq']->addVar('maxlength', 15);
97
98 $this->mFieldProperties['user_from'] =new XCube_FieldProperty($this);
99 $this->mFieldProperties['user_from']->setDependsByArray(['maxlength']);
100 $this->mFieldProperties['user_from']->addMessage('maxlength', _MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_USER_FROM, '100');
101 $this->mFieldProperties['user_from']->addVar('maxlength', 100);
102
103 $this->mFieldProperties['user_aim'] =new XCube_FieldProperty($this);
104 $this->mFieldProperties['user_aim']->setDependsByArray(['maxlength']);
105 $this->mFieldProperties['user_aim']->addMessage('maxlength', _MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_USER_AIM, '18');
106 $this->mFieldProperties['user_aim']->addVar('maxlength', 18);
107
108 $this->mFieldProperties['user_yim'] =new XCube_FieldProperty($this);
109 $this->mFieldProperties['user_yim']->setDependsByArray(['maxlength']);
110 $this->mFieldProperties['user_yim']->addMessage('maxlength', _MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_USER_YIM, '25');
111 $this->mFieldProperties['user_yim']->addVar('maxlength', 25);
112
113 $this->mFieldProperties['user_msnm'] =new XCube_FieldProperty($this);
114 $this->mFieldProperties['user_msnm']->setDependsByArray(['maxlength']);
115 $this->mFieldProperties['user_msnm']->addMessage('maxlength', _MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_USER_MSNM, '100');
116 $this->mFieldProperties['user_msnm']->addVar('maxlength', 100);
117
118 $this->mFieldProperties['pass'] =new XCube_FieldProperty($this);
119 $this->mFieldProperties['pass']->setDependsByArray(['maxlength']);
120 $this->mFieldProperties['pass']->addMessage('maxlength', _MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_PASS, '32');
121 $this->mFieldProperties['pass']->addVar('maxlength', 32);
122
123 $this->mFieldProperties['vpass'] =new XCube_FieldProperty($this);
124 $this->mFieldProperties['vpass']->setDependsByArray(['maxlength']);
125 $this->mFieldProperties['vpass']->addMessage('maxlength', _MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_PASS, '32');
126 $this->mFieldProperties['vpass']->addVar('maxlength', 32);
127
128 $this->mFieldProperties['posts'] =new XCube_FieldProperty($this);
129 $this->mFieldProperties['posts']->setDependsByArray(['required']);
130 $this->mFieldProperties['posts']->addMessage('required', _MD_USER_ERROR_REQUIRED, _MD_USER_LANG_POSTS);
131
132 $this->mFieldProperties['rank'] =new XCube_FieldProperty($this);
133 $this->mFieldProperties['rank']->setDependsByArray(['required']);
134 $this->mFieldProperties['rank']->addMessage('required', _MD_USER_ERROR_REQUIRED, _AD_USER_LANG_RANK);
135
136 $this->mFieldProperties['level'] =new XCube_FieldProperty($this);
137 $this->mFieldProperties['level']->setDependsByArray(['required']);
138 $this->mFieldProperties['level']->addMessage('required', _MD_USER_ERROR_REQUIRED, _MD_USER_LANG_LEVEL);
139
140 $this->mFieldProperties['timezone_offset'] =new XCube_FieldProperty($this);
141 $this->mFieldProperties['timezone_offset']->setDependsByArray(['required']);
142 $this->mFieldProperties['timezone_offset']->addMessage('required', _MD_USER_ERROR_REQUIRED, _MD_USER_LANG_TIMEZONE_OFFSET);
143
144 $this->mFieldProperties['umode'] =new XCube_FieldProperty($this);
145 $this->mFieldProperties['umode']->setDependsByArray(['required']);
146 $this->mFieldProperties['umode']->addMessage('required', _MD_USER_ERROR_REQUIRED, _MD_USER_LANG_UMODE);
147
148 $this->mFieldProperties['uorder'] =new XCube_FieldProperty($this);
149 $this->mFieldProperties['uorder']->setDependsByArray(['required', 'intRange']);
150 $this->mFieldProperties['uorder']->addMessage('required', _MD_USER_ERROR_REQUIRED, _MD_USER_LANG_UORDER);
151 $this->mFieldProperties['uorder']->addMessage('intRange', _MD_USER_ERROR_INJURY, _MD_USER_LANG_UORDER);
152 $this->mFieldProperties['uorder']->addVar('min', 0);
153 $this->mFieldProperties['uorder']->addVar('max', 1);
154
155 $this->mFieldProperties['notify_method'] =new XCube_FieldProperty($this);
156 $this->mFieldProperties['notify_method']->setDependsByArray(['required', 'intRange']);
157 $this->mFieldProperties['notify_method']->addMessage('required', _MD_USER_ERROR_REQUIRED, _MD_USER_LANG_NOTIFY_METHOD);
158 $this->mFieldProperties['notify_method']->addMessage('intRange', _MD_USER_ERROR_INJURY, _MD_USER_LANG_NOTIFY_METHOD);
159 $this->mFieldProperties['notify_method']->addVar('min', 0);
160 $this->mFieldProperties['notify_method']->addVar('max', 2);
161
162 $this->mFieldProperties['notify_mode'] =new XCube_FieldProperty($this);
163 $this->mFieldProperties['notify_mode']->setDependsByArray(['required', 'intRange']);
164 $this->mFieldProperties['notify_mode']->addMessage('required', _MD_USER_ERROR_REQUIRED, _MD_USER_LANG_NOTIFY_MODE);
165 $this->mFieldProperties['notify_mode']->addMessage('intRange', _MD_USER_ERROR_INJURY, _MD_USER_LANG_NOTIFY_MODE);
166 $this->mFieldProperties['notify_mode']->addVar('min', 0);
167 $this->mFieldProperties['notify_mode']->addVar('max', 2);
168
169 $this->mFieldProperties['user_occ'] =new XCube_FieldProperty($this);
170 $this->mFieldProperties['user_occ']->setDependsByArray(['maxlength']);
171 $this->mFieldProperties['user_occ']->addMessage('maxlength', _MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_USER_OCC, '100');
172 $this->mFieldProperties['user_occ']->addVar('maxlength', 100);
173
174 $this->mFieldProperties['user_intrest'] =new XCube_FieldProperty($this);
175 $this->mFieldProperties['user_intrest']->setDependsByArray(['maxlength']);
176 $this->mFieldProperties['user_intrest']->addMessage('maxlength', _MD_USER_ERROR_MAXLENGTH, _MD_USER_LANG_USER_INTREST, '150');
177 $this->mFieldProperties['user_intrest']->addVar('maxlength', 150);
178
179 //profile
180 XCube_DelegateUtils::call('Legacy_Profile.SetupActionForm', $this);
181 }
182
183 public function validateUname()
184 {
185 if (null != $this->get('uname')) {
186 $handler =& xoops_gethandler('user');
187 $criteria =new CriteriaCompo(new Criteria('uname', $this->get('uname')));
188 if ($this->get('uid')) {
189 $criteria->add(new Criteria('uid', $this->get('uid'), '<>'));
190 }
191 if ($handler->getCount($criteria) > 0) {
192 $this->addErrorMessage(_AD_USER_ERROR_UNAME_NO_UNIQUE);
193 }
194 }
195 }
196
197 public function validateEmail()
198 {
199 if (strlen($this->get('email')) > 0) {
200 //
201 // email unique check
202 //
203 $userHandler=&xoops_gethandler('user');
204 $criteria =new CriteriaCompo(new Criteria('email', $this->get('email')));
205 if ($this->get('uid') > 0) {
206 $criteria->add(new Criteria('uid', $this->get('uid'), '<>'));
207 }
208 if ($userHandler->getCount($criteria) > 0) {
209 $this->addErrorMessage(_MD_USER_ERROR_EMAILTAKEN);
210 }
211 }
212 }
213
214 public function validateUrl()
215 {
216 $t_url = $this->get('url');
217 if (strlen($t_url) > 0) {
218 if (!preg_match('/^https?(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $t_url)) {
219 $this->addErrorMessage(XCube_Utils::formatString(_MD_USER_ERROR_INJURY, _MD_USER_LANG_URL));
220 }
221 }
222 }
223
224 public function validateGroups()
225 {
226 $groupHandler =& xoops_gethandler('group');
227 foreach ($this->get('groups') as $gid) {
228 $group =& $groupHandler->get($gid);
229 if (!is_object($group)) {
230 $this->addErrorMessage(_AD_USER_ERROR_GROUP_VALUE);
231 }
232 }
233 }
234
240 public function validatePass()
241 {
242 if (strlen($this->get('pass'))) {
243 if ($this->get('pass') != $this->get('vpass')) {
244 $this->addErrorMessage(_MD_USER_ERROR_PASSWORD);
245 $this->set('pass', '');
246 $this->set('vpass', '');
247 }
248 } elseif ($this->_mIsNew) {
249 $this->addErrorMessage(XCube_Utils::formatString(_MD_USER_ERROR_REQUIRED, _MD_USER_LANG_PASS));
250 }
251 }
252
253 public function validateRank()
254 {
255 $t_rank = $this->get('rank');
256
257 if ($t_rank > 0) {
258 $handler =& xoops_getmodulehandler('ranks', 'user');
259 $rank =& $handler->get($t_rank);
260
261 if (!is_object($rank)) {
262 $this->addErrorMessage(XCube_Utils::formatString(_MD_USER_ERROR_INJURY, _AD_USER_LANG_RANK));
263 } elseif (1 != $rank->get('rank_special')) {
264 $this->addErrorMessage(XCube_Utils::formatString(_MD_USER_ERROR_INJURY, _AD_USER_LANG_RANK));
265 }
266 }
267 }
268
269 public function validateUmode()
270 {
271 if (!in_array($this->get('umode'), ['nest', 'flat', 'thread'])) {
272 $this->addErrorMessage(_AD_USER_ERROR_UMODE);
273 }
274 }
275
276 public function load(&$obj)
277 {
278 $this->set('uid', $obj->get('uid'));
279 $this->set('name', $obj->get('name'));
280 $this->set('uname', $obj->get('uname'));
281 $this->set('email', $obj->get('email'));
282 $this->set('url', $obj->get('url'));
283 $this->set('user_icq', $obj->get('user_icq'));
284 $this->set('user_from', $obj->get('user_from'));
285 $this->set('user_sig', $obj->get('user_sig'));
286 $this->set('user_viewemail', $obj->get('user_viewemail'));
287 $this->set('user_aim', $obj->get('user_aim'));
288 $this->set('user_yim', $obj->get('user_yim'));
289 $this->set('user_msnm', $obj->get('user_msnm'));
290
291 $this->set('posts', $obj->get('posts'));
292 $this->set('attachsig', $obj->get('attachsig'));
293 $this->set('rank', $obj->get('rank'));
294 $this->set('level', $obj->get('level'));
295 $this->set('timezone_offset', $obj->get('timezone_offset'));
296 $this->set('umode', $obj->get('umode'));
297 $this->set('uorder', $obj->get('uorder'));
298 $this->set('notify_method', $obj->get('notify_method'));
299 $this->set('notify_mode', $obj->get('notify_mode'));
300 $this->set('user_occ', $obj->get('user_occ'));
301 $this->set('bio', $obj->get('bio'));
302 $this->set('user_intrest', $obj->get('user_intrest'));
303 $this->set('user_mailok', $obj->get('user_mailok'));
304
305 $this->_mIsNew = $obj->isNew();
306
307 $groups = $obj->getGroups();
308
309 if ($this->_mIsNew) {
310 $this->set('groups', 0, XOOPS_GROUP_USERS);
311 } else {
312 $i = 0;
313 foreach ($groups as $gid) {
314 $this->set('groups', $i++, $gid);
315 }
316 }
317
318 //profile
319 XCube_DelegateUtils::call('Legacy_Profile.LoadActionForm', $this);
320 }
321
322 public function update(&$obj)
323 {
324 $obj->set('uid', $this->get('uid'));
325 $obj->set('name', $this->get('name'));
326 $obj->set('uname', $this->get('uname'));
327 $obj->set('email', $this->get('email'));
328 $obj->set('url', $this->get('url'));
329 $obj->set('user_icq', $this->get('user_icq'));
330 $obj->set('user_from', $this->get('user_from'));
331 $obj->set('user_sig', $this->get('user_sig'));
332 $obj->set('user_viewemail', $this->get('user_viewemail'));
333 $obj->set('user_aim', $this->get('user_aim'));
334 $obj->set('user_yim', $this->get('user_yim'));
335 $obj->set('user_msnm', $this->get('user_msnm'));
336
337 if (strlen($this->get('pass'))) {
338 $obj->set('pass', User_Utils::encryptPassword($this->get('pass')));
339 }
340
341 $obj->set('posts', $this->get('posts'));
342 $obj->set('attachsig', $this->get('attachsig'));
343 $obj->set('rank', $this->get('rank'));
344 $obj->set('level', $this->get('level'));
345 $obj->set('timezone_offset', $this->get('timezone_offset'));
346 $obj->set('umode', $this->get('umode'));
347 $obj->set('uorder', $this->get('uorder'));
348 $obj->set('notify_method', $this->get('notify_method'));
349 $obj->set('notify_mode', $this->get('notify_mode'));
350 $obj->set('user_occ', $this->get('user_occ'));
351 $obj->set('bio', $this->get('bio'));
352 $obj->set('user_intrest', $this->get('user_intrest'));
353 $obj->set('user_mailok', $this->get('user_mailok'));
354
355 $obj->Groups = [];
356 $groups = $this->get('groups');
357
358 foreach ($groups as $gid) {
359 $obj->Groups[] = $gid;
360 }
361 }
362}
update(&$obj)
[Abstract] Updates an object with properties values.
getTokenName()
Gets the token name of this actionform's token.
prepare()
[Abstract] Set up form properties and field properties.
load(&$obj)
[Abstract] Initializes properties' values from an object.
static encryptPassword($password)
addErrorMessage( $message)
Adds a message to the form's error message buffer.
[Abstract] Used for validating member property values of XCube_ActionForm.
Represents float property.
Represents int[] property. XCube_GenericArrayProperty<XCube_IntProperty>.
Represents int property.
Represents string property.
Represents string property which allows CR and LF.
static formatString()
[Static] Formats string with special care for international.