1
|
|
|
<?php |
2
|
|
|
/* Copyright (C) NAVER <http://www.navercorp.com> */ |
3
|
|
|
/** |
4
|
|
|
* @class memberAdminController |
5
|
|
|
* @author NAVER ([email protected]) |
6
|
|
|
* member module of the admin controller class |
7
|
|
|
*/ |
8
|
|
|
class memberAdminController extends member |
9
|
|
|
{ |
10
|
|
|
/** |
11
|
|
|
* Initialization |
12
|
|
|
* @return void |
13
|
|
|
*/ |
14
|
|
|
function init() |
15
|
|
|
{ |
16
|
|
|
} |
17
|
|
|
|
18
|
|
|
/** |
19
|
|
|
* Add a user (Administrator) |
20
|
|
|
* @return void|Object (void : success, Object : fail) |
21
|
|
|
*/ |
22
|
|
|
function procMemberAdminInsert() |
23
|
|
|
{ |
24
|
|
|
// if(Context::getRequestMethod() == "GET") return new Object(-1, "msg_invalid_request"); |
25
|
|
|
// Extract the necessary information in advance |
26
|
|
|
$logged_info = Context::get('logged_info'); |
27
|
|
|
if($logged_info->is_admin != 'Y' || !checkCSRF()) |
28
|
|
|
{ |
29
|
|
|
return new Object(-1, 'msg_invalid_request'); |
30
|
|
|
} |
31
|
|
|
|
32
|
|
|
$args = Context::gets('member_srl','email_address','find_account_answer', 'allow_mailing','allow_message','denied','is_admin','description','group_srl_list','limit_date'); |
33
|
|
|
$oMemberModel = &getModel ('member'); |
34
|
|
|
$config = $oMemberModel->getMemberConfig (); |
35
|
|
|
$getVars = array(); |
36
|
|
View Code Duplication |
if($config->signupForm) |
37
|
|
|
{ |
38
|
|
|
foreach($config->signupForm as $formInfo) |
39
|
|
|
{ |
40
|
|
|
if($formInfo->isDefaultForm && ($formInfo->isUse || $formInfo->required || $formInfo->mustRequired)) |
41
|
|
|
{ |
42
|
|
|
$getVars[] = $formInfo->name; |
43
|
|
|
} |
44
|
|
|
} |
45
|
|
|
} |
46
|
|
|
foreach($getVars as $val) |
47
|
|
|
{ |
48
|
|
|
$args->{$val} = Context::get($val); |
49
|
|
|
} |
50
|
|
|
$args->member_srl = Context::get('member_srl'); |
51
|
|
|
if(Context::get('reset_password')) |
52
|
|
|
$args->password = Context::get('reset_password'); |
53
|
|
|
else unset($args->password); |
54
|
|
|
|
55
|
|
|
// Remove some unnecessary variables from all the vars |
56
|
|
|
$all_args = Context::getRequestVars(); |
57
|
|
|
unset($all_args->module); |
58
|
|
|
unset($all_args->act); |
59
|
|
|
unset($all_args->mid); |
60
|
|
|
unset($all_args->error_return_url); |
61
|
|
|
unset($all_args->success_return_url); |
62
|
|
|
unset($all_args->ruleset); |
63
|
|
|
if(!isset($args->limit_date)) $args->limit_date = ""; |
64
|
|
|
unset($all_args->password); |
65
|
|
|
unset($all_args->password2); |
66
|
|
|
unset($all_args->reset_password); |
67
|
|
|
// Add extra vars after excluding necessary information from all the requested arguments |
68
|
|
|
$extra_vars = delObjectVars($all_args, $args); |
69
|
|
|
$args->extra_vars = serialize($extra_vars); |
70
|
|
|
// Check if an original member exists having the member_srl |
71
|
|
|
if($args->member_srl) |
72
|
|
|
{ |
73
|
|
|
// Create a member model object |
74
|
|
|
$oMemberModel = getModel('member'); |
75
|
|
|
// Get memebr profile |
76
|
|
|
$columnList = array('member_srl'); |
77
|
|
|
$member_info = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl, 0, $columnList); |
78
|
|
|
// If no original member exists, make a new one |
79
|
|
|
if($member_info->member_srl != $args->member_srl) unset($args->member_srl); |
80
|
|
|
} |
81
|
|
|
|
82
|
|
|
// remove whitespace |
83
|
|
|
$checkInfos = array('user_id', 'user_name', 'nick_name', 'email_address'); |
84
|
|
View Code Duplication |
foreach($checkInfos as $val) |
85
|
|
|
{ |
86
|
|
|
if(isset($args->{$val})) |
87
|
|
|
{ |
88
|
|
|
$args->{$val} = preg_replace('/[\pZ\pC]+/u', '', $args->{$val}); |
89
|
|
|
} |
90
|
|
|
} |
91
|
|
|
|
92
|
|
|
$oMemberController = getController('member'); |
93
|
|
|
// Execute insert or update depending on the value of member_srl |
94
|
|
|
if(!$args->member_srl) |
95
|
|
|
{ |
96
|
|
|
$args->password = Context::get('password'); |
97
|
|
|
$output = $oMemberController->insertMember($args); |
98
|
|
|
$msg_code = 'success_registed'; |
99
|
|
|
} |
100
|
|
|
else |
101
|
|
|
{ |
102
|
|
|
$output = $oMemberController->updateMember($args); |
103
|
|
|
$msg_code = 'success_updated'; |
104
|
|
|
} |
105
|
|
|
|
106
|
|
|
if(!$output->toBool()) return $output; |
107
|
|
|
// Save Signature |
108
|
|
|
$signature = Context::get('signature'); |
109
|
|
|
$oMemberController->putSignature($args->member_srl, $signature); |
110
|
|
|
// Return result |
111
|
|
|
$this->add('member_srl', $args->member_srl); |
112
|
|
|
$this->setMessage($msg_code); |
113
|
|
|
|
114
|
|
|
$profile_image = $_FILES['profile_image']; |
115
|
|
|
if(is_uploaded_file($profile_image['tmp_name'])) |
116
|
|
|
{ |
117
|
|
|
$oMemberController->insertProfileImage($args->member_srl, $profile_image['tmp_name']); |
118
|
|
|
} |
119
|
|
|
|
120
|
|
|
$image_mark = $_FILES['image_mark']; |
121
|
|
|
if(is_uploaded_file($image_mark['tmp_name'])) |
122
|
|
|
{ |
123
|
|
|
$oMemberController->insertImageMark($args->member_srl, $image_mark['tmp_name']); |
124
|
|
|
} |
125
|
|
|
|
126
|
|
|
$image_name = $_FILES['image_name']; |
127
|
|
|
if (is_uploaded_file($image_name['tmp_name'])) |
128
|
|
|
{ |
129
|
|
|
$oMemberController->insertImageName($args->member_srl, $image_name['tmp_name']); |
130
|
|
|
} |
131
|
|
|
|
132
|
|
|
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminList'); |
133
|
|
|
$this->setRedirectUrl($returnUrl); |
134
|
|
|
} |
135
|
|
|
|
136
|
|
|
/** |
137
|
|
|
* Delete a user (Administrator) |
138
|
|
|
* @return void|Object (void : success, Object : fail) |
139
|
|
|
*/ |
140
|
|
|
function procMemberAdminDelete() |
141
|
|
|
{ |
142
|
|
|
// Separate all the values into DB entries and others |
143
|
|
|
$member_srl = Context::get('member_srl'); |
144
|
|
|
|
145
|
|
|
$oMemberController = getController('member'); |
146
|
|
|
$output = $oMemberController->deleteMember($member_srl); |
147
|
|
|
if(!$output->toBool()) return $output; |
148
|
|
|
|
149
|
|
|
$this->add('page',Context::get('page')); |
150
|
|
|
$this->setMessage("success_deleted"); |
151
|
|
|
} |
152
|
|
|
|
153
|
|
|
|
154
|
|
|
public function procMemberAdminInsertDefaultConfig() |
155
|
|
|
{ |
156
|
|
|
$args = Context::gets( |
157
|
|
|
'enable_join', |
158
|
|
|
'enable_confirm', |
159
|
|
|
'webmaster_name', |
160
|
|
|
'webmaster_email', |
161
|
|
|
'password_strength', |
162
|
|
|
'password_hashing_algorithm', |
163
|
|
|
'password_hashing_work_factor', |
164
|
|
|
'password_hashing_auto_upgrade' |
165
|
|
|
); |
166
|
|
|
|
167
|
|
|
$oPassword = new Password(); |
168
|
|
|
if(!array_key_exists($args->password_hashing_algorithm, $oPassword->getSupportedAlgorithms())) |
169
|
|
|
{ |
170
|
|
|
$args->password_hashing_algorithm = 'md5'; |
171
|
|
|
} |
172
|
|
|
|
173
|
|
|
$args->password_hashing_work_factor = intval($args->password_hashing_work_factor, 10); |
174
|
|
|
if($args->password_hashing_work_factor < 4) |
175
|
|
|
{ |
176
|
|
|
$args->password_hashing_work_factor = 4; |
177
|
|
|
} |
178
|
|
|
if($args->password_hashing_work_factor > 16) |
179
|
|
|
{ |
180
|
|
|
$args->password_hashing_work_factor = 16; |
181
|
|
|
} |
182
|
|
|
if($args->password_hashing_auto_upgrade != 'Y') |
183
|
|
|
{ |
184
|
|
|
$args->password_hashing_auto_upgrade = 'N'; |
185
|
|
|
} |
186
|
|
|
|
187
|
|
|
if((!$args->webmaster_name || !$args->webmaster_email) && $args->enable_confirm == 'Y') |
188
|
|
|
{ |
189
|
|
|
return new Object(-1, 'msg_mail_authorization'); |
190
|
|
|
} |
191
|
|
|
|
192
|
|
|
$oModuleController = getController('module'); |
193
|
|
|
$output = $oModuleController->updateModuleConfig('member', $args); |
|
|
|
|
194
|
|
|
|
195
|
|
|
// default setting end |
196
|
|
|
$this->setMessage('success_updated'); |
197
|
|
|
|
198
|
|
|
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminDefaultConfig'); |
199
|
|
|
$this->setRedirectUrl($returnUrl); |
200
|
|
|
} |
201
|
|
|
|
202
|
|
|
public function procMemberAdminInsertSignupConfig() |
203
|
|
|
{ |
204
|
|
|
$oMemberModel = getModel('member'); |
205
|
|
|
$oModuleController = getController('module'); |
206
|
|
|
|
207
|
|
|
$args = Context::gets( |
208
|
|
|
'limit_day', |
209
|
|
|
'limit_day_description', |
210
|
|
|
'agreement', |
211
|
|
|
'redirect_url', |
212
|
|
|
'profile_image', 'profile_image_max_width', 'profile_image_max_height', |
213
|
|
|
'image_name', 'image_name_max_width', 'image_name_max_height', |
214
|
|
|
'image_mark', 'image_mark_max_width', 'image_mark_max_height', |
215
|
|
|
'signature_editor_skin', 'sel_editor_colorset' |
216
|
|
|
); |
217
|
|
|
|
218
|
|
|
$list_order = Context::get('list_order'); |
219
|
|
|
$usable_list = Context::get('usable_list'); |
220
|
|
|
$all_args = Context::getRequestVars(); |
221
|
|
|
|
222
|
|
|
$args->limit_day = (int)$args->limit_day; |
223
|
|
|
if(!trim(strip_tags($args->agreement))) |
224
|
|
|
{ |
225
|
|
|
$agreement_file = _XE_PATH_.'files/member_extra_info/agreement_' . Context::get('lang_type') . '.txt'; |
226
|
|
|
FileHandler::removeFile($agreement_file); |
227
|
|
|
$args->agreement = NULL; |
228
|
|
|
} |
229
|
|
|
|
230
|
|
|
if($args->redirect_url) |
231
|
|
|
{ |
232
|
|
|
$oModuleModel = getModel('module'); |
233
|
|
|
$redirectModuleInfo = $oModuleModel->getModuleInfoByModuleSrl($args->redirect_url, array('mid')); |
234
|
|
|
|
235
|
|
|
if(!$redirectModuleInfo) |
236
|
|
|
{ |
237
|
|
|
return new Object('-1', 'msg_exist_selected_module'); |
238
|
|
|
} |
239
|
|
|
|
240
|
|
|
$args->redirect_url = Context::getDefaultUrl().$redirectModuleInfo->mid; |
241
|
|
|
} |
242
|
|
|
|
243
|
|
|
$args->profile_image = $args->profile_image ? 'Y' : 'N'; |
244
|
|
|
$args->image_name = $args->image_name ? 'Y' : 'N'; |
245
|
|
|
$args->image_mark = $args->image_mark ? 'Y' : 'N'; |
246
|
|
|
$args->signature = $args->signature != 'Y' ? 'N' : 'Y'; |
247
|
|
|
$args->identifier = $all_args->identifier; |
248
|
|
|
|
249
|
|
|
// set default |
250
|
|
|
$all_args->is_nick_name_public = 'Y'; |
251
|
|
|
$all_args->is_find_account_question_public = 'N'; |
252
|
|
|
|
253
|
|
|
// signupForm |
254
|
|
|
global $lang; |
255
|
|
|
$signupForm = array(); |
256
|
|
|
$items = array('user_id', 'password', 'user_name', 'nick_name', 'email_address', 'find_account_question', 'homepage', 'blog', 'birthday', 'signature', 'profile_image', 'image_name', 'image_mark', 'profile_image_max_width', 'profile_image_max_height', 'image_name_max_width', 'image_name_max_height', 'image_mark_max_width', 'image_mark_max_height'); |
257
|
|
|
$mustRequireds = array('email_address', 'nick_name', 'password', 'find_account_question'); |
258
|
|
|
$extendItems = $oMemberModel->getJoinFormList(); |
259
|
|
|
foreach($list_order as $key) |
|
|
|
|
260
|
|
|
{ |
261
|
|
|
$signupItem = new stdClass(); |
262
|
|
|
$signupItem->isIdentifier = ($key == $all_args->identifier); |
263
|
|
|
$signupItem->isDefaultForm = in_array($key, $items); |
264
|
|
|
|
265
|
|
|
$signupItem->name = $key; |
266
|
|
|
if(!in_array($key, $items)) $signupItem->title = $key; |
267
|
|
|
else $signupItem->title = $lang->{$key}; |
268
|
|
|
$signupItem->mustRequired = in_array($key, $mustRequireds); |
269
|
|
|
$signupItem->imageType = (strpos($key, 'image') !== false); |
270
|
|
|
$signupItem->required = ($all_args->{$key} == 'required') || $signupItem->mustRequired || $signupItem->isIdentifier; |
271
|
|
|
$signupItem->isUse = in_array($key, $usable_list) || $signupItem->required; |
272
|
|
|
$signupItem->isPublic = ($all_args->{'is_'.$key.'_public'} == 'Y' && $signupItem->isUse) ? 'Y' : 'N'; |
273
|
|
View Code Duplication |
if($signupItem->imageType) |
274
|
|
|
{ |
275
|
|
|
$signupItem->max_width = $all_args->{$key.'_max_width'}; |
276
|
|
|
$signupItem->max_height = $all_args->{$key.'_max_height'}; |
277
|
|
|
} |
278
|
|
|
|
279
|
|
|
// set extends form |
280
|
|
|
if(!$signupItem->isDefaultForm) |
281
|
|
|
{ |
282
|
|
|
$extendItem = $extendItems[$all_args->{$key.'_member_join_form_srl'}]; |
283
|
|
|
$signupItem->type = $extendItem->column_type; |
284
|
|
|
$signupItem->member_join_form_srl = $extendItem->member_join_form_srl; |
285
|
|
|
$signupItem->title = $extendItem->column_title; |
286
|
|
|
$signupItem->description = $extendItem->description; |
287
|
|
|
|
288
|
|
|
// check usable value change, required/option |
289
|
|
|
if($signupItem->isUse != ($extendItem->is_active == 'Y') || $signupItem->required != ($extendItem->required == 'Y')) |
290
|
|
|
{ |
291
|
|
|
unset($update_args); |
292
|
|
|
$update_args = new stdClass; |
293
|
|
|
$update_args->member_join_form_srl = $extendItem->member_join_form_srl; |
294
|
|
|
$update_args->is_active = $signupItem->isUse?'Y':'N'; |
295
|
|
|
$update_args->required = $signupItem->required?'Y':'N'; |
296
|
|
|
|
297
|
|
|
$update_output = executeQuery('member.updateJoinForm', $update_args); |
|
|
|
|
298
|
|
|
} |
299
|
|
|
|
300
|
|
|
unset($extendItem); |
301
|
|
|
} |
302
|
|
|
$signupForm[] = $signupItem; |
303
|
|
|
} |
304
|
|
|
$args->signupForm = $signupForm; |
305
|
|
|
|
306
|
|
|
// create Ruleset |
307
|
|
|
$this->_createSignupRuleset($signupForm, $args->agreement); |
|
|
|
|
308
|
|
|
$this->_createLoginRuleset($args->identifier); |
309
|
|
|
$this->_createFindAccountByQuestion($args->identifier); |
310
|
|
|
|
311
|
|
|
// check agreement value exist |
312
|
|
|
if($args->agreement) |
313
|
|
|
{ |
314
|
|
|
$agreement_file = _XE_PATH_.'files/member_extra_info/agreement_' . Context::get('lang_type') . '.txt'; |
315
|
|
|
$output = FileHandler::writeFile($agreement_file, $args->agreement); |
|
|
|
|
316
|
|
|
|
317
|
|
|
unset($args->agreement); |
318
|
|
|
} |
319
|
|
|
|
320
|
|
|
$output = $oModuleController->updateModuleConfig('member', $args); |
|
|
|
|
321
|
|
|
|
322
|
|
|
// default setting end |
323
|
|
|
$this->setMessage('success_updated'); |
324
|
|
|
|
325
|
|
|
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminSignUpConfig'); |
326
|
|
|
$this->setRedirectUrl($returnUrl); |
327
|
|
|
} |
328
|
|
|
|
329
|
|
|
public function procMemberAdminInsertLoginConfig() |
330
|
|
|
{ |
331
|
|
|
$oModuleController = getController('module'); |
332
|
|
|
|
333
|
|
|
$args = Context::gets( |
334
|
|
|
'change_password_date', |
335
|
|
|
'enable_login_fail_report', |
336
|
|
|
'max_error_count', |
337
|
|
|
'max_error_count_time', |
338
|
|
|
'after_login_url', |
339
|
|
|
'after_logout_url' |
340
|
|
|
); |
341
|
|
|
|
342
|
|
|
if(!$args->change_password_date) |
343
|
|
|
{ |
344
|
|
|
$args->change_password_date = 0; |
345
|
|
|
} |
346
|
|
|
|
347
|
|
|
if(!trim(strip_tags($args->after_login_url))) |
348
|
|
|
{ |
349
|
|
|
$args->after_login_url = NULL; |
350
|
|
|
} |
351
|
|
|
if(!trim(strip_tags($args->after_logout_url))) |
352
|
|
|
{ |
353
|
|
|
$args->after_logout_url = NULL; |
354
|
|
|
} |
355
|
|
|
|
356
|
|
|
$output = $oModuleController->updateModuleConfig('member', $args); |
|
|
|
|
357
|
|
|
|
358
|
|
|
// default setting end |
359
|
|
|
$this->setMessage('success_updated'); |
360
|
|
|
|
361
|
|
|
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminLoginConfig'); |
362
|
|
|
$this->setRedirectUrl($returnUrl); |
363
|
|
|
} |
364
|
|
|
|
365
|
|
|
public function procMemberAdminInsertDesignConfig() |
366
|
|
|
{ |
367
|
|
|
$oModuleController = getController('module'); |
368
|
|
|
|
369
|
|
|
$args = Context::gets( |
370
|
|
|
'layout_srl', |
371
|
|
|
'skin', |
372
|
|
|
'colorset', |
373
|
|
|
'mlayout_srl', |
374
|
|
|
'mskin' |
375
|
|
|
); |
376
|
|
|
|
377
|
|
|
$args->layout_srl = $args->layout_srl ? $args->layout_srl : NULL; |
378
|
|
|
if(!$args->skin) |
379
|
|
|
{ |
380
|
|
|
$args->skin = 'default'; |
381
|
|
|
} |
382
|
|
|
if(!$args->colorset) |
383
|
|
|
{ |
384
|
|
|
$args->colorset = 'white'; |
385
|
|
|
} |
386
|
|
|
|
387
|
|
|
$args->mlayout_srl = $args->mlayout_srl ? $args->mlayout_srl : NULL; |
388
|
|
|
if(!$args->mskin) |
389
|
|
|
{ |
390
|
|
|
$args->mskin = 'default'; |
391
|
|
|
} |
392
|
|
|
|
393
|
|
|
$output = $oModuleController->updateModuleConfig('member', $args); |
|
|
|
|
394
|
|
|
|
395
|
|
|
// default setting end |
396
|
|
|
$this->setMessage('success_updated'); |
397
|
|
|
|
398
|
|
|
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminDesignConfig'); |
399
|
|
|
$this->setRedirectUrl($returnUrl); |
400
|
|
|
} |
401
|
|
|
|
402
|
|
|
function createSignupForm($identifier) |
403
|
|
|
{ |
404
|
|
|
global $lang; |
405
|
|
|
$oMemberModel = getModel('member'); |
406
|
|
|
|
407
|
|
|
// Get join form list which is additionally set |
408
|
|
|
$extendItems = $oMemberModel->getJoinFormList(); |
409
|
|
|
|
410
|
|
|
$items = array('user_id', 'password', 'user_name', 'nick_name', 'email_address', 'find_account_question', 'homepage', 'blog', 'birthday', 'signature', 'profile_image', 'image_name', 'image_mark'); |
411
|
|
|
$mustRequireds = array('email_address', 'nick_name','password', 'find_account_question'); |
412
|
|
|
$orgRequireds = array('email_address', 'password', 'find_account_question', 'user_id', 'nick_name', 'user_name'); |
413
|
|
|
$orgUse = array('email_address', 'password', 'find_account_question', 'user_id', 'nick_name', 'user_name', 'homepage', 'blog', 'birthday'); |
414
|
|
|
$list_order = array(); |
415
|
|
|
|
416
|
|
|
foreach($items as $key) |
417
|
|
|
{ |
418
|
|
|
unset($signupItem); |
419
|
|
|
$signupItem = new stdClass; |
420
|
|
|
$signupItem->isDefaultForm = true; |
421
|
|
|
$signupItem->name = $key; |
422
|
|
|
$signupItem->title = $key; |
423
|
|
|
$signupItem->mustRequired = in_array($key, $mustRequireds); |
424
|
|
|
$signupItem->imageType = (strpos($key, 'image') !== false); |
425
|
|
|
$signupItem->required = in_array($key, $orgRequireds); |
426
|
|
|
$signupItem->isUse = ($config->{$key} == 'Y') || in_array($key, $orgUse); |
|
|
|
|
427
|
|
|
$signupItem->isPublic = ($signupItem->isUse) ? 'Y' : 'N'; |
428
|
|
|
if($key == 'find_account_question' || $key == 'password') |
429
|
|
|
{ |
430
|
|
|
$signupItem->isPublic = 'N'; |
431
|
|
|
} |
432
|
|
|
$signupItem->isIdentifier = ($key == $identifier); |
433
|
|
View Code Duplication |
if ($signupItem->imageType){ |
434
|
|
|
$signupItem->max_width = $config->{$key.'_max_width'}; |
435
|
|
|
$signupItem->max_height = $config->{$key.'_max_height'}; |
436
|
|
|
} |
437
|
|
|
if($signupItem->isIdentifier) |
438
|
|
|
array_unshift($list_order, $signupItem); |
439
|
|
|
else |
440
|
|
|
$list_order[] = $signupItem; |
441
|
|
|
} |
442
|
|
|
if(is_array($extendItems)) |
443
|
|
|
{ |
444
|
|
|
foreach($extendItems as $form_srl=>$item_info) |
445
|
|
|
{ |
446
|
|
|
unset($signupItem); |
447
|
|
|
$signupItem = new stdClass; |
448
|
|
|
$signupItem->name = $item_info->column_name; |
449
|
|
|
$signupItem->title = $item_info->column_title; |
450
|
|
|
$signupItem->type = $item_info->column_type; |
451
|
|
|
$signupItem->member_join_form_srl = $form_srl; |
452
|
|
|
$signupItem->mustRequired = in_array($key, $mustRequireds); |
|
|
|
|
453
|
|
|
$signupItem->required = ($item_info->required == 'Y'); |
454
|
|
|
$signupItem->isUse = ($item_info->is_active == 'Y'); |
455
|
|
|
$signupItem->isPublic = ($signupItem->isUse) ? 'Y' : 'N'; |
456
|
|
|
$signupItem->description = $item_info->description; |
457
|
|
View Code Duplication |
if($signupItem->imageType) |
458
|
|
|
{ |
459
|
|
|
$signupItem->max_width = $config->{$key.'_max_width'}; |
460
|
|
|
$signupItem->max_height = $config->{$key.'_max_height'}; |
461
|
|
|
} |
462
|
|
|
$list_order[] = $signupItem; |
463
|
|
|
} |
464
|
|
|
} |
465
|
|
|
|
466
|
|
|
return $list_order; |
467
|
|
|
} |
468
|
|
|
|
469
|
|
|
/** |
470
|
|
|
* Create ruleset file of signup |
471
|
|
|
* @param object $signupForm (user define signup form) |
472
|
|
|
* @param string $agreement |
473
|
|
|
* @return void |
474
|
|
|
*/ |
475
|
|
|
function _createSignupRuleset($signupForm, $agreement = null){ |
476
|
|
|
$xml_file = './files/ruleset/insertMember.xml'; |
477
|
|
|
$buff = '<?xml version="1.0" encoding="utf-8"?>' . PHP_EOL. |
478
|
|
|
'<ruleset version="1.5.0">' . PHP_EOL. |
479
|
|
|
'<customrules>' . PHP_EOL. |
480
|
|
|
'</customrules>' . PHP_EOL. |
481
|
|
|
'<fields>' . PHP_EOL . '%s' . PHP_EOL . '</fields>' . PHP_EOL. |
482
|
|
|
'</ruleset>'; |
483
|
|
|
|
484
|
|
|
$fields = array(); |
485
|
|
|
|
486
|
|
|
if ($agreement) |
|
|
|
|
487
|
|
|
{ |
488
|
|
|
$fields[] = '<field name="accept_agreement"><if test="$act == \'procMemberInsert\'" attr="required" value="true" /></field>'; |
489
|
|
|
} |
490
|
|
|
foreach($signupForm as $formInfo) |
491
|
|
|
{ |
492
|
|
|
if($formInfo->required || $formInfo->mustRequired) |
493
|
|
|
{ |
494
|
|
|
if($formInfo->type == 'tel' || $formInfo->type == 'kr_zip') |
495
|
|
|
{ |
496
|
|
|
$fields[] = sprintf('<field name="%s[]" required="true" />', $formInfo->name); |
497
|
|
|
} |
498
|
|
|
else if($formInfo->name == 'password') |
499
|
|
|
{ |
500
|
|
|
$fields[] = '<field name="password"><if test="$act == \'procMemberInsert\'" attr="required" value="true" /><if test="$act == \'procMemberInsert\'" attr="length" value="4:20" /></field>'; |
501
|
|
|
$fields[] = '<field name="password2"><if test="$act == \'procMemberInsert\'" attr="required" value="true" /><if test="$act == \'procMemberInsert\'" attr="equalto" value="password" /></field>'; |
502
|
|
|
} |
503
|
|
|
else if($formInfo->name == 'find_account_question') |
504
|
|
|
{ |
505
|
|
|
$fields[] = '<field name="find_account_question" required="true" />'; |
506
|
|
|
$fields[] = '<field name="find_account_answer" required="true" length=":250" />'; |
507
|
|
|
} |
508
|
|
|
else if($formInfo->name == 'email_address') |
509
|
|
|
{ |
510
|
|
|
$fields[] = sprintf('<field name="%s" required="true" rule="email"/>', $formInfo->name); |
511
|
|
|
} |
512
|
|
|
else if($formInfo->name == 'user_id') |
513
|
|
|
{ |
514
|
|
|
$fields[] = sprintf('<field name="%s" required="true" rule="userid" length="3:20" />', $formInfo->name); |
515
|
|
|
} |
516
|
|
|
else if($formInfo->name == 'nick_name') |
517
|
|
|
{ |
518
|
|
|
$fields[] = sprintf('<field name="%s" required="true" length="2:20" />', $formInfo->name); |
519
|
|
|
} |
520
|
|
|
else if(strpos($formInfo->name, 'image') !== false) |
521
|
|
|
{ |
522
|
|
|
$fields[] = sprintf('<field name="%s"><if test="$act != \'procMemberAdminInsert\' && $__%s_exist != \'true\'" attr="required" value="true" /></field>', $formInfo->name, $formInfo->name); |
523
|
|
|
} |
524
|
|
|
else if($formInfo->name == 'signature') |
525
|
|
|
{ |
526
|
|
|
$fields[] = '<field name="signature"><if test="$member_srl" attr="required" value="true" /></field>'; |
527
|
|
|
} |
528
|
|
|
else |
529
|
|
|
{ |
530
|
|
|
$fields[] = sprintf('<field name="%s" required="true" />', $formInfo->name); |
531
|
|
|
} |
532
|
|
|
} |
533
|
|
|
} |
534
|
|
|
|
535
|
|
|
$xml_buff = sprintf($buff, implode(PHP_EOL, $fields)); |
536
|
|
|
FileHandler::writeFile($xml_file, $xml_buff); |
537
|
|
|
unset($xml_buff); |
538
|
|
|
|
539
|
|
|
$validator = new Validator($xml_file); |
540
|
|
|
$validator->setCacheDir('files/cache'); |
541
|
|
|
$validator->getJsPath(); |
542
|
|
|
} |
543
|
|
|
|
544
|
|
|
/** |
545
|
|
|
* Create ruleset file of login |
546
|
|
|
* @param string $identifier (login identifier) |
547
|
|
|
* @return void |
548
|
|
|
*/ |
549
|
|
|
function _createLoginRuleset($identifier) |
550
|
|
|
{ |
551
|
|
|
$xml_file = './files/ruleset/login.xml'; |
552
|
|
|
$buff = '<?xml version="1.0" encoding="utf-8"?>'. |
553
|
|
|
'<ruleset version="1.5.0">'. |
554
|
|
|
'<customrules>'. |
555
|
|
|
'</customrules>'. |
556
|
|
|
'<fields>%s</fields>'. |
557
|
|
|
'</ruleset>'; |
558
|
|
|
|
559
|
|
|
$fields = array(); |
560
|
|
|
$trans = array('email_address'=>'email', 'user_id'=> 'userid'); |
561
|
|
|
$fields[] = sprintf('<field name="user_id" required="true" rule="%s"/>', $trans[$identifier]); |
562
|
|
|
$fields[] = '<field name="password" required="true" />'; |
563
|
|
|
|
564
|
|
|
$xml_buff = sprintf($buff, implode('', $fields)); |
565
|
|
|
Filehandler::writeFile($xml_file, $xml_buff); |
566
|
|
|
|
567
|
|
|
$validator = new Validator($xml_file); |
568
|
|
|
$validator->setCacheDir('files/cache'); |
569
|
|
|
$validator->getJsPath(); |
570
|
|
|
} |
571
|
|
|
|
572
|
|
|
/** |
573
|
|
|
* Create ruleset file of find account |
574
|
|
|
* @param string $identifier (login identifier) |
575
|
|
|
* @return void |
576
|
|
|
*/ |
577
|
|
|
function _createFindAccountByQuestion($identifier) |
578
|
|
|
{ |
579
|
|
|
$xml_file = './files/ruleset/find_member_account_by_question.xml'; |
580
|
|
|
$buff = '<?xml version="1.0" encoding="utf-8"?>'. |
581
|
|
|
'<ruleset version="1.5.0">'. |
582
|
|
|
'<customrules>'. |
583
|
|
|
'</customrules>'. |
584
|
|
|
'<fields>%s</fields>'. |
585
|
|
|
'</ruleset>'; |
586
|
|
|
|
587
|
|
|
$fields = array(); |
588
|
|
|
if($identifier == 'user_id') |
589
|
|
|
$fields[] = '<field name="user_id" required="true" rule="userid" />'; |
590
|
|
|
|
591
|
|
|
$fields[] = '<field name="email_address" required="true" rule="email" />'; |
592
|
|
|
$fields[] = '<field name="find_account_question" required="true" />'; |
593
|
|
|
$fields[] = '<field name="find_account_answer" required="true" length=":250"/>'; |
594
|
|
|
|
595
|
|
|
$xml_buff = sprintf($buff, implode('', $fields)); |
596
|
|
|
Filehandler::writeFile($xml_file, $xml_buff); |
597
|
|
|
|
598
|
|
|
$validator = new Validator($xml_file); |
599
|
|
|
$validator->setCacheDir('files/cache'); |
600
|
|
|
$validator->getJsPath(); |
601
|
|
|
} |
602
|
|
|
|
603
|
|
|
/** |
604
|
|
|
* Add a user group |
605
|
|
|
* @return void|Object (void : success, Object : fail) |
606
|
|
|
*/ |
607
|
|
|
function procMemberAdminInsertGroup() |
608
|
|
|
{ |
609
|
|
|
$args = Context::gets('title','description','is_default','image_mark'); |
610
|
|
|
$output = $this->insertGroup($args); |
|
|
|
|
611
|
|
|
if(!$output->toBool()) return $output; |
612
|
|
|
|
613
|
|
|
$this->add('group_srl',''); |
614
|
|
|
$this->add('page',Context::get('page')); |
615
|
|
|
$this->setMessage('success_registed'); |
616
|
|
|
|
617
|
|
|
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList'); |
618
|
|
|
$this->setRedirectUrl($returnUrl); |
619
|
|
|
} |
620
|
|
|
|
621
|
|
|
/** |
622
|
|
|
* Update user group information |
623
|
|
|
* @return void|Object (void : success, Object : fail) |
624
|
|
|
*/ |
625
|
|
|
function procMemberAdminUpdateGroup() |
626
|
|
|
{ |
627
|
|
|
$group_srl = Context::get('group_srl'); |
|
|
|
|
628
|
|
|
|
629
|
|
|
$args = Context::gets('group_srl','title','description','is_default','image_mark'); |
630
|
|
|
$args->site_srl = 0; |
631
|
|
|
$output = $this->updateGroup($args); |
632
|
|
|
if(!$output->toBool()) return $output; |
633
|
|
|
|
634
|
|
|
$this->add('group_srl',''); |
635
|
|
|
$this->add('page',Context::get('page')); |
636
|
|
|
$this->setMessage('success_updated'); |
637
|
|
|
|
638
|
|
|
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList'); |
639
|
|
|
$this->setRedirectUrl($returnUrl); |
640
|
|
|
} |
641
|
|
|
|
642
|
|
|
/** |
643
|
|
|
* Update user group information |
644
|
|
|
* @return void|Object (void : success, Object : fail) |
645
|
|
|
*/ |
646
|
|
View Code Duplication |
function procMemberAdminDeleteGroup() |
|
|
|
|
647
|
|
|
{ |
648
|
|
|
$group_srl = Context::get('group_srl'); |
649
|
|
|
|
650
|
|
|
$output = $this->deleteGroup($group_srl); |
651
|
|
|
if(!$output->toBool()) return $output; |
652
|
|
|
|
653
|
|
|
$this->add('group_srl',''); |
654
|
|
|
$this->add('page',Context::get('page')); |
655
|
|
|
$this->setMessage('success_deleted'); |
656
|
|
|
|
657
|
|
|
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList'); |
658
|
|
|
$this->setRedirectUrl($returnUrl); |
659
|
|
|
} |
660
|
|
|
|
661
|
|
|
/** |
662
|
|
|
* Add a join form |
663
|
|
|
* @return void|Object (void : success, Object : fail) |
664
|
|
|
*/ |
665
|
|
|
function procMemberAdminInsertJoinForm() |
666
|
|
|
{ |
667
|
|
|
$args = new stdClass(); |
668
|
|
|
$args->member_join_form_srl = Context::get('member_join_form_srl'); |
669
|
|
|
|
670
|
|
|
$args->column_type = Context::get('column_type'); |
671
|
|
|
$args->column_name = strtolower(Context::get('column_id')); |
672
|
|
|
$args->column_title = Context::get('column_title'); |
673
|
|
|
$args->default_value = explode("\n", str_replace("\r", '', Context::get('default_value'))); |
674
|
|
|
$args->required = Context::get('required'); |
675
|
|
|
$args->is_active = (isset($args->required)); |
676
|
|
|
if(!in_array(strtoupper($args->required), array('Y','N')))$args->required = 'N'; |
677
|
|
|
$args->description = Context::get('description') ? Context::get('description') : ''; |
678
|
|
|
// Default values |
679
|
|
|
if(in_array($args->column_type, array('checkbox','select','radio')) && count($args->default_value)) |
680
|
|
|
{ |
681
|
|
|
$args->default_value = serialize($args->default_value); |
682
|
|
|
} |
683
|
|
|
else |
684
|
|
|
{ |
685
|
|
|
$args->default_value = ''; |
686
|
|
|
} |
687
|
|
|
|
688
|
|
|
// Check ID duplicated |
689
|
|
|
$oMemberModel = getModel('member'); |
690
|
|
|
$config = $oMemberModel->getMemberConfig(); |
691
|
|
|
foreach($config->signupForm as $item) |
692
|
|
|
{ |
693
|
|
|
if($item->name == $args->column_name) |
694
|
|
|
{ |
695
|
|
|
if($args->member_join_form_srl && $args->member_join_form_srl == $item->member_join_form_srl) continue; |
696
|
|
|
return new Object(-1,'msg_exists_user_id'); |
697
|
|
|
} |
698
|
|
|
} |
699
|
|
|
// Fix if member_join_form_srl exists. Add if not exists. |
700
|
|
|
$isInsert; |
|
|
|
|
701
|
|
|
if(!$args->member_join_form_srl) |
702
|
|
|
{ |
703
|
|
|
$isInsert = true; |
704
|
|
|
$args->list_order = $args->member_join_form_srl = getNextSequence(); |
705
|
|
|
$output = executeQuery('member.insertJoinForm', $args); |
706
|
|
|
} |
707
|
|
|
else |
708
|
|
|
{ |
709
|
|
|
$output = executeQuery('member.updateJoinForm', $args); |
710
|
|
|
} |
711
|
|
|
|
712
|
|
|
if(!$output->toBool()) return $output; |
713
|
|
|
|
714
|
|
|
// memberConfig update |
715
|
|
|
$signupItem = new stdClass(); |
716
|
|
|
$signupItem->name = $args->column_name; |
717
|
|
|
$signupItem->title = $args->column_title; |
718
|
|
|
$signupItem->type = $args->column_type; |
719
|
|
|
$signupItem->member_join_form_srl = $args->member_join_form_srl; |
720
|
|
|
$signupItem->required = ($args->required == 'Y'); |
721
|
|
|
$signupItem->isUse = ($args->is_active == 'Y'); |
722
|
|
|
$signupItem->description = $args->description; |
723
|
|
|
$signupItem->isPublic = 'Y'; |
724
|
|
|
|
725
|
|
|
$oMemberModel = getModel('member'); |
726
|
|
|
$config = $oMemberModel->getMemberConfig(); |
727
|
|
|
unset($config->agreement); |
728
|
|
|
|
729
|
|
|
if($isInsert) |
|
|
|
|
730
|
|
|
{ |
731
|
|
|
$config->signupForm[] = $signupItem; |
732
|
|
|
} |
733
|
|
|
else |
734
|
|
|
{ |
735
|
|
View Code Duplication |
foreach($config->signupForm as $key=>$val) |
736
|
|
|
{ |
737
|
|
|
if($val->member_join_form_srl == $signupItem->member_join_form_srl) |
738
|
|
|
{ |
739
|
|
|
$config->signupForm[$key] = $signupItem; |
740
|
|
|
} |
741
|
|
|
} |
742
|
|
|
} |
743
|
|
|
$oModuleController = getController('module'); |
744
|
|
|
$output = $oModuleController->updateModuleConfig('member', $config); |
|
|
|
|
745
|
|
|
|
746
|
|
|
$this->setMessage('success_registed'); |
747
|
|
|
|
748
|
|
|
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminJoinFormList'); |
749
|
|
|
$this->setRedirectUrl($returnUrl); |
750
|
|
|
} |
751
|
|
|
|
752
|
|
|
/** |
753
|
|
|
* Delete a join form |
754
|
|
|
* @return void |
755
|
|
|
*/ |
756
|
|
|
function procMemberAdminDeleteJoinForm() |
757
|
|
|
{ |
758
|
|
|
$member_join_form_srl = Context::get('member_join_form_srl'); |
759
|
|
|
$this->deleteJoinForm($member_join_form_srl); |
760
|
|
|
|
761
|
|
|
$oMemberModel = getModel('member'); |
762
|
|
|
$config = $oMemberModel->getMemberConfig(); |
763
|
|
|
unset($config->agreement); |
764
|
|
|
|
765
|
|
View Code Duplication |
foreach($config->signupForm as $key=>$val) |
766
|
|
|
{ |
767
|
|
|
if($val->member_join_form_srl == $member_join_form_srl) |
768
|
|
|
{ |
769
|
|
|
unset($config->signupForm[$key]); |
770
|
|
|
break; |
771
|
|
|
} |
772
|
|
|
} |
773
|
|
|
$oModuleController = getController('module'); |
774
|
|
|
$output = $oModuleController->updateModuleConfig('member', $config); |
|
|
|
|
775
|
|
|
} |
776
|
|
|
|
777
|
|
|
/** |
778
|
|
|
* Move up/down the member join form and modify it |
779
|
|
|
* @deprecated |
780
|
|
|
* @return void |
781
|
|
|
*/ |
782
|
|
|
function procMemberAdminUpdateJoinForm() |
783
|
|
|
{ |
784
|
|
|
$member_join_form_srl = Context::get('member_join_form_srl'); |
785
|
|
|
$mode = Context::get('mode'); |
786
|
|
|
|
787
|
|
|
switch($mode) |
788
|
|
|
{ |
789
|
|
|
case 'up' : |
790
|
|
|
$output = $this->moveJoinFormUp($member_join_form_srl); |
|
|
|
|
791
|
|
|
$msg_code = 'success_moved'; |
792
|
|
|
break; |
793
|
|
|
case 'down' : |
794
|
|
|
$output = $this->moveJoinFormDown($member_join_form_srl); |
|
|
|
|
795
|
|
|
$msg_code = 'success_moved'; |
796
|
|
|
break; |
797
|
|
|
case 'delete' : |
798
|
|
|
$output = $this->deleteJoinForm($member_join_form_srl); |
799
|
|
|
$msg_code = 'success_deleted'; |
800
|
|
|
break; |
801
|
|
|
case 'update' : |
802
|
|
|
break; |
803
|
|
|
} |
804
|
|
|
if(!$output->toBool()) return $output; |
|
|
|
|
805
|
|
|
|
806
|
|
|
$this->setMessage($msg_code); |
|
|
|
|
807
|
|
|
} |
808
|
|
|
|
809
|
|
|
/** |
810
|
|
|
* selected member manager layer in dispAdminList |
811
|
|
|
* @return void|Object (void : success, Object : fail) |
812
|
|
|
*/ |
813
|
|
|
function procMemberAdminSelectedMemberManage() |
814
|
|
|
{ |
815
|
|
|
$var = Context::getRequestVars(); |
816
|
|
|
$groups = $var->groups; |
817
|
|
|
$members = $var->member_srls; |
818
|
|
|
|
819
|
|
|
$oDB = &DB::getInstance(); |
820
|
|
|
$oDB->begin(); |
821
|
|
|
|
822
|
|
|
$oMemberController = getController('member'); |
823
|
|
|
foreach($members as $key=>$member_srl) |
824
|
|
|
{ |
825
|
|
|
$args = new stdClass(); |
826
|
|
|
$args->member_srl = $member_srl; |
827
|
|
|
switch($var->type) |
828
|
|
|
{ |
829
|
|
|
case 'modify': |
830
|
|
|
{ |
831
|
|
|
if(count($groups) > 0) |
832
|
|
|
{ |
833
|
|
|
$args->site_srl = 0; |
834
|
|
|
// One of its members to delete all the group |
835
|
|
|
$output = executeQuery('member.deleteMemberGroupMember', $args); |
836
|
|
|
if(!$output->toBool()) |
837
|
|
|
{ |
838
|
|
|
$oDB->rollback(); |
839
|
|
|
return $output; |
840
|
|
|
} |
841
|
|
|
// Enter one of the loop a |
842
|
|
|
foreach($groups as $group_srl) |
843
|
|
|
{ |
844
|
|
|
$output = $oMemberController->addMemberToGroup($args->member_srl,$group_srl); |
845
|
|
|
if(!$output->toBool()) |
846
|
|
|
{ |
847
|
|
|
$oDB->rollback(); |
848
|
|
|
return $output; |
849
|
|
|
} |
850
|
|
|
} |
851
|
|
|
} |
852
|
|
|
if($var->denied) |
853
|
|
|
{ |
854
|
|
|
$args->denied = $var->denied; |
855
|
|
|
$output = executeQuery('member.updateMemberDeniedInfo', $args); |
856
|
|
|
if(!$output->toBool()) |
857
|
|
|
{ |
858
|
|
|
$oDB->rollback(); |
859
|
|
|
return $output; |
860
|
|
|
} |
861
|
|
|
} |
862
|
|
|
$this->setMessage('success_updated'); |
863
|
|
|
break; |
864
|
|
|
} |
865
|
|
|
case 'delete': |
866
|
|
|
{ |
867
|
|
|
$oMemberController->memberInfo = null; |
|
|
|
|
868
|
|
|
$output = $oMemberController->deleteMember($member_srl); |
869
|
|
|
if(!$output->toBool()) |
870
|
|
|
{ |
871
|
|
|
$oDB->rollback(); |
872
|
|
|
return $output; |
873
|
|
|
} |
874
|
|
|
$this->setMessage('success_deleted'); |
875
|
|
|
} |
876
|
|
|
} |
877
|
|
|
$oMemberController->_clearMemberCache($args->member_srl); |
878
|
|
|
} |
879
|
|
|
|
880
|
|
|
$message = $var->message; |
881
|
|
|
// Send a message |
882
|
|
|
if($message) |
883
|
|
|
{ |
884
|
|
|
$oCommunicationController = getController('communication'); |
885
|
|
|
|
886
|
|
|
$logged_info = Context::get('logged_info'); |
887
|
|
|
$title = cut_str($message,10,'...'); |
888
|
|
|
$sender_member_srl = $logged_info->member_srl; |
889
|
|
|
|
890
|
|
|
foreach($members as $member_srl) |
891
|
|
|
{ |
892
|
|
|
$oCommunicationController->sendMessage($sender_member_srl, $member_srl, $title, $message, false); |
893
|
|
|
} |
894
|
|
|
} |
895
|
|
|
|
896
|
|
|
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminList'); |
897
|
|
|
$this->setRedirectUrl($returnUrl); |
898
|
|
|
} |
899
|
|
|
|
900
|
|
|
/** |
901
|
|
|
* Delete the selected members |
902
|
|
|
* @return void|Object (void : success, Object : fail) |
903
|
|
|
*/ |
904
|
|
View Code Duplication |
function procMemberAdminDeleteMembers() |
|
|
|
|
905
|
|
|
{ |
906
|
|
|
$target_member_srls = Context::get('target_member_srls'); |
907
|
|
|
if(!$target_member_srls) return new Object(-1, 'msg_invalid_request'); |
908
|
|
|
$member_srls = explode(',', $target_member_srls); |
909
|
|
|
$oMemberController = getController('member'); |
910
|
|
|
|
911
|
|
|
foreach($member_srls as $member) |
912
|
|
|
{ |
913
|
|
|
$output = $oMemberController->deleteMember($member); |
914
|
|
|
if(!$output->toBool()) |
915
|
|
|
{ |
916
|
|
|
$this->setMessage('failed_deleted'); |
917
|
|
|
return $output; |
918
|
|
|
} |
919
|
|
|
} |
920
|
|
|
|
921
|
|
|
$this->setMessage('success_deleted'); |
922
|
|
|
} |
923
|
|
|
|
924
|
|
|
/** |
925
|
|
|
* Update a group of selected memebrs |
926
|
|
|
* @return void|Object (void : success, Object : fail) |
927
|
|
|
*/ |
928
|
|
|
function procMemberAdminUpdateMembersGroup() |
929
|
|
|
{ |
930
|
|
|
$member_srl = Context::get('member_srl'); |
931
|
|
|
if(!$member_srl) return new Object(-1,'msg_invalid_request'); |
932
|
|
|
$member_srls = explode(',',$member_srl); |
933
|
|
|
|
934
|
|
|
$group_srl = Context::get('group_srls'); |
935
|
|
|
if(!is_array($group_srl)) $group_srls = explode('|@|', $group_srl); |
936
|
|
|
else $group_srls = $group_srl; |
937
|
|
|
|
938
|
|
|
$oDB = &DB::getInstance(); |
939
|
|
|
$oDB->begin(); |
940
|
|
|
// Delete a group of selected members |
941
|
|
|
$args = new stdClass; |
942
|
|
|
$args->member_srl = $member_srl; |
943
|
|
|
$output = executeQuery('member.deleteMembersGroup', $args); |
944
|
|
|
if(!$output->toBool()) |
945
|
|
|
{ |
946
|
|
|
$oDB->rollback(); |
947
|
|
|
return $output; |
948
|
|
|
} |
949
|
|
|
// Add to a selected group |
950
|
|
|
$group_count = count($group_srls); |
951
|
|
|
$member_count = count($member_srls); |
952
|
|
|
for($j=0;$j<$group_count;$j++) |
953
|
|
|
{ |
954
|
|
|
$group_srl = (int)trim($group_srls[$j]); |
955
|
|
|
if(!$group_srl) continue; |
956
|
|
|
for($i=0;$i<$member_count;$i++) |
957
|
|
|
{ |
958
|
|
|
$member_srl = (int)trim($member_srls[$i]); |
959
|
|
|
if(!$member_srl) continue; |
960
|
|
|
|
961
|
|
|
$args = new stdClass; |
962
|
|
|
$args->member_srl = $member_srl; |
963
|
|
|
$args->group_srl = $group_srl; |
964
|
|
|
|
965
|
|
|
$output = executeQuery('member.addMemberToGroup', $args); |
966
|
|
|
if(!$output->toBool()) |
967
|
|
|
{ |
968
|
|
|
$oDB->rollback(); |
969
|
|
|
return $output; |
970
|
|
|
} |
971
|
|
|
} |
972
|
|
|
} |
973
|
|
|
$oDB->commit(); |
974
|
|
|
|
975
|
|
|
$this->_deleteMemberGroupCache(); |
976
|
|
|
|
977
|
|
|
$this->setMessage('success_updated'); |
978
|
|
|
|
979
|
|
|
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) |
980
|
|
|
{ |
981
|
|
|
global $lang; |
982
|
|
|
htmlHeader(); |
983
|
|
|
alertScript($lang->success_updated); |
984
|
|
|
reload(true); |
985
|
|
|
closePopupScript(); |
986
|
|
|
htmlFooter(); |
987
|
|
|
Context::close(); |
988
|
|
|
exit; |
989
|
|
|
} |
990
|
|
|
} |
991
|
|
|
|
992
|
|
|
/** |
993
|
|
|
* Add a denied ID |
994
|
|
|
* @return void |
995
|
|
|
*/ |
996
|
|
|
function procMemberAdminInsertDeniedID() |
997
|
|
|
{ |
998
|
|
|
$user_ids = Context::get('user_id'); |
999
|
|
|
|
1000
|
|
|
$user_ids = explode(',',$user_ids); |
1001
|
|
|
$success_ids = array(); |
1002
|
|
|
|
1003
|
|
|
foreach($user_ids as $val) |
1004
|
|
|
{ |
1005
|
|
|
$val = trim($val); |
1006
|
|
|
if(!$val) continue; |
1007
|
|
|
|
1008
|
|
|
$output = $this->insertDeniedID($val, ''); |
1009
|
|
|
if($output->toBool()) $success_ids[] = $val; |
1010
|
|
|
} |
1011
|
|
|
|
1012
|
|
|
$this->add('user_ids', implode(',',$success_ids)); |
1013
|
|
|
|
1014
|
|
|
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminDeniedIDList'); |
1015
|
|
|
$this->setRedirectUrl($returnUrl); |
1016
|
|
|
} |
1017
|
|
|
|
1018
|
|
|
/** |
1019
|
|
|
* Add a denied nick name |
1020
|
|
|
* @return void |
1021
|
|
|
*/ |
1022
|
|
|
function procMemberAdminUpdateDeniedNickName() |
1023
|
|
|
{ |
1024
|
|
|
$nick_name = Context::get('nick_name'); |
1025
|
|
|
|
1026
|
|
|
$mode = Context::get('mode'); |
1027
|
|
|
$mode = $mode ? $mode : 'insert'; |
1028
|
|
|
|
1029
|
|
|
if($mode == 'delete') |
1030
|
|
|
{ |
1031
|
|
|
$output = $this->deleteDeniedNickName($nick_name); |
1032
|
|
|
if(!$output->toBool()) |
1033
|
|
|
{ |
1034
|
|
|
return $output; |
1035
|
|
|
} |
1036
|
|
|
$msg_code = 'success_deleted'; |
1037
|
|
|
$this->setMessage($msg_code); |
1038
|
|
|
} |
1039
|
|
|
else |
1040
|
|
|
{ |
1041
|
|
|
$nick_names = explode(',',$nick_name); |
1042
|
|
|
$success_nick_names = array(); |
1043
|
|
|
|
1044
|
|
|
foreach($nick_names as $val) |
1045
|
|
|
{ |
1046
|
|
|
$val = trim($val); |
1047
|
|
|
if(!$val) continue; |
1048
|
|
|
|
1049
|
|
|
$output = $this->insertDeniedNickName($val, ''); |
1050
|
|
|
if($output->toBool()) $success_nick_names[] = $val; |
1051
|
|
|
} |
1052
|
|
|
|
1053
|
|
|
$this->add('nick_names', implode(',',$success_nick_names)); |
1054
|
|
|
} |
1055
|
|
|
} |
1056
|
|
|
|
1057
|
|
|
/** |
1058
|
|
|
* Update denied ID |
1059
|
|
|
* @return void|Object (void : success, Object : fail) |
1060
|
|
|
*/ |
1061
|
|
|
function procMemberAdminUpdateDeniedID() |
1062
|
|
|
{ |
1063
|
|
|
$user_id = Context::get('user_id'); |
1064
|
|
|
$mode = Context::get('mode'); |
1065
|
|
|
|
1066
|
|
|
switch($mode) |
1067
|
|
|
{ |
1068
|
|
|
case 'delete' : |
1069
|
|
|
$output = $this->deleteDeniedID($user_id); |
1070
|
|
|
if(!$output->toBool()) return $output; |
1071
|
|
|
$msg_code = 'success_deleted'; |
1072
|
|
|
break; |
1073
|
|
|
} |
1074
|
|
|
|
1075
|
|
|
$this->add('page',Context::get('page')); |
1076
|
|
|
$this->setMessage($msg_code); |
|
|
|
|
1077
|
|
|
} |
1078
|
|
|
|
1079
|
|
|
/** |
1080
|
|
|
* Add an administrator |
1081
|
|
|
* @param object $args |
1082
|
|
|
* @return object (info of added member) |
1083
|
|
|
*/ |
1084
|
|
|
function insertAdmin($args) |
1085
|
|
|
{ |
1086
|
|
|
// Assign an administrator |
1087
|
|
|
$args->is_admin = 'Y'; |
1088
|
|
|
// Get admin group and set |
1089
|
|
|
$oMemberModel = getModel('member'); |
1090
|
|
|
$admin_group = $oMemberModel->getAdminGroup(); |
1091
|
|
|
$args->group_srl_list = $admin_group->group_srl; |
1092
|
|
|
|
1093
|
|
|
$oMemberController = getController('member'); |
1094
|
|
|
return $oMemberController->insertMember($args); |
1095
|
|
|
} |
1096
|
|
|
|
1097
|
|
|
/** |
1098
|
|
|
* Change the group values of member |
1099
|
|
|
* @param int $source_group_srl |
1100
|
|
|
* @param int $target_group_srl |
1101
|
|
|
* @return Object |
1102
|
|
|
*/ |
1103
|
|
|
function changeGroup($source_group_srl, $target_group_srl) |
1104
|
|
|
{ |
1105
|
|
|
$args = new stdClass; |
1106
|
|
|
$args->source_group_srl = $source_group_srl; |
1107
|
|
|
$args->target_group_srl = $target_group_srl; |
1108
|
|
|
|
1109
|
|
|
$output = executeQuery('member.changeGroup', $args); |
1110
|
|
|
$this->_deleteMemberGroupCache($site_srl); |
|
|
|
|
1111
|
|
|
|
1112
|
|
|
return $output; |
1113
|
|
|
} |
1114
|
|
|
|
1115
|
|
|
/** |
1116
|
|
|
* Insert a group |
1117
|
|
|
* @param object $args |
1118
|
|
|
* @return Object |
1119
|
|
|
*/ |
1120
|
|
|
function insertGroup($args) |
1121
|
|
|
{ |
1122
|
|
|
if(!$args->site_srl) $args->site_srl = 0; |
1123
|
|
|
// Check the value of is_default. |
1124
|
|
View Code Duplication |
if($args->is_default != 'Y') |
1125
|
|
|
{ |
1126
|
|
|
$args->is_default = 'N'; |
1127
|
|
|
} |
1128
|
|
|
else |
1129
|
|
|
{ |
1130
|
|
|
$output = executeQuery('member.updateGroupDefaultClear', $args); |
1131
|
|
|
if(!$output->toBool()) return $output; |
1132
|
|
|
} |
1133
|
|
|
|
1134
|
|
|
if(!isset($args->list_order) || $args->list_order=='') |
1135
|
|
|
{ |
1136
|
|
|
$args->list_order = $args->group_srl; |
1137
|
|
|
} |
1138
|
|
|
|
1139
|
|
|
if(!$args->group_srl) $args->group_srl = getNextSequence(); |
1140
|
|
|
$args->list_order = $args->group_srl; |
1141
|
|
|
$output = executeQuery('member.insertGroup', $args); |
1142
|
|
|
$this->_deleteMemberGroupCache($args->site_srl); |
1143
|
|
|
|
1144
|
|
|
return $output; |
1145
|
|
|
} |
1146
|
|
|
|
1147
|
|
|
/** |
1148
|
|
|
* Modify Group Information |
1149
|
|
|
* @param object $args |
1150
|
|
|
* @return Object |
1151
|
|
|
*/ |
1152
|
|
|
function updateGroup($args) |
1153
|
|
|
{ |
1154
|
|
|
if(!$args->site_srl) $args->site_srl = 0; |
1155
|
|
|
// Check the value of is_default. |
1156
|
|
|
if(!$args->group_srl) return new Object(-1, 'lang->msg_not_founded'); |
1157
|
|
View Code Duplication |
if($args->is_default!='Y') |
1158
|
|
|
{ |
1159
|
|
|
$args->is_default = 'N'; |
1160
|
|
|
} |
1161
|
|
|
else |
1162
|
|
|
{ |
1163
|
|
|
$output = executeQuery('member.updateGroupDefaultClear', $args); |
1164
|
|
|
if(!$output->toBool()) return $output; |
1165
|
|
|
} |
1166
|
|
|
|
1167
|
|
|
$output = executeQuery('member.updateGroup', $args); |
1168
|
|
|
$this->_deleteMemberGroupCache($args->site_srl); |
1169
|
|
|
return $output; |
1170
|
|
|
} |
1171
|
|
|
|
1172
|
|
|
/** |
1173
|
|
|
* Delete a Group |
1174
|
|
|
* @param int $group_srl |
1175
|
|
|
* @param int $site_srl |
1176
|
|
|
* @return Object |
1177
|
|
|
*/ |
1178
|
|
|
function deleteGroup($group_srl, $site_srl = 0) |
1179
|
|
|
{ |
1180
|
|
|
// Create a member model object |
1181
|
|
|
$oMemberModel = getModel('member'); |
1182
|
|
|
|
1183
|
|
|
// Check the group_srl (If is_default == 'Y', it cannot be deleted) |
1184
|
|
|
$columnList = array('group_srl', 'is_default'); |
1185
|
|
|
$group_info = $oMemberModel->getGroup($group_srl, $columnList); |
1186
|
|
|
|
1187
|
|
|
if(!$group_info) return new Object(-1, 'lang->msg_not_founded'); |
1188
|
|
|
if($group_info->is_default == 'Y') return new Object(-1, 'msg_not_delete_default'); |
1189
|
|
|
|
1190
|
|
|
// Get groups where is_default == 'Y' |
1191
|
|
|
$columnList = array('site_srl', 'group_srl'); |
1192
|
|
|
$default_group = $oMemberModel->getDefaultGroup($site_srl, $columnList); |
1193
|
|
|
$default_group_srl = $default_group->group_srl; |
1194
|
|
|
|
1195
|
|
|
// Change to default_group_srl |
1196
|
|
|
$this->changeGroup($group_srl, $default_group_srl); |
1197
|
|
|
|
1198
|
|
|
$args = new stdClass; |
1199
|
|
|
$args->group_srl = $group_srl; |
1200
|
|
|
$output = executeQuery('member.deleteGroup', $args); |
1201
|
|
|
$this->_deleteMemberGroupCache($site_srl); |
1202
|
|
|
return $output; |
1203
|
|
|
} |
1204
|
|
|
|
1205
|
|
|
/** |
1206
|
|
|
* Set group config |
1207
|
|
|
* @return void |
1208
|
|
|
*/ |
1209
|
|
|
public function procMemberAdminGroupConfig() |
1210
|
|
|
{ |
1211
|
|
|
$vars = Context::getRequestVars(); |
1212
|
|
|
|
1213
|
|
|
$oMemberModel = getModel('member'); |
1214
|
|
|
$oModuleController = getController('module'); |
1215
|
|
|
|
1216
|
|
|
// group image mark option |
1217
|
|
|
$config = $oMemberModel->getMemberConfig(); |
1218
|
|
|
$config->group_image_mark = $vars->group_image_mark; |
1219
|
|
|
unset($config->agreement); |
1220
|
|
|
$output = $oModuleController->updateModuleConfig('member', $config); |
|
|
|
|
1221
|
|
|
|
1222
|
|
|
$defaultGroup = $oMemberModel->getDefaultGroup(0); |
1223
|
|
|
$defaultGroupSrl = $defaultGroup->group_srl; |
1224
|
|
|
$group_srls = $vars->group_srls; |
1225
|
|
|
foreach($group_srls as $order=>$group_srl) |
1226
|
|
|
{ |
1227
|
|
|
$isInsert = false; |
|
|
|
|
1228
|
|
|
$update_args = new stdClass(); |
1229
|
|
|
$update_args->title = $vars->group_titles[$order]; |
1230
|
|
|
$update_args->description = $vars->descriptions[$order]; |
1231
|
|
|
$update_args->image_mark = $vars->image_marks[$order]; |
1232
|
|
|
$update_args->list_order = $order + 1; |
1233
|
|
|
|
1234
|
|
|
if(!$update_args->title) continue; |
1235
|
|
|
|
1236
|
|
|
if(is_numeric($group_srl)) { |
1237
|
|
|
$update_args->group_srl = $group_srl; |
1238
|
|
|
$output = $this->updateGroup($update_args); |
|
|
|
|
1239
|
|
|
} |
1240
|
|
|
else { |
1241
|
|
|
$update_args->group_srl = getNextSequence(); |
1242
|
|
|
$output = $this->insertGroup($update_args); |
|
|
|
|
1243
|
|
|
} |
1244
|
|
|
|
1245
|
|
|
if($vars->defaultGroup == $group_srl) { |
1246
|
|
|
$defaultGroupSrl = $update_args->group_srl; |
1247
|
|
|
} |
1248
|
|
|
} |
1249
|
|
|
|
1250
|
|
|
//set default group |
1251
|
|
|
$default_args = $oMemberModel->getGroup($defaultGroupSrl); |
1252
|
|
|
$default_args->is_default = 'Y'; |
1253
|
|
|
$default_args->group_srl = $defaultGroupSrl; |
1254
|
|
|
$output = $this->updateGroup($default_args); |
|
|
|
|
1255
|
|
|
|
1256
|
|
|
$this->setMessage(Context::getLang('success_updated').' ('.Context::getLang('msg_insert_group_name_detail').')'); |
1257
|
|
|
|
1258
|
|
|
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList'); |
1259
|
|
|
$this->setRedirectUrl($returnUrl); |
1260
|
|
|
} |
1261
|
|
|
|
1262
|
|
|
|
1263
|
|
|
/** |
1264
|
|
|
* Set group order |
1265
|
|
|
* @return void |
1266
|
|
|
*/ |
1267
|
|
|
function procMemberAdminUpdateGroupOrder() |
1268
|
|
|
{ |
1269
|
|
|
$vars = Context::getRequestVars(); |
1270
|
|
|
|
1271
|
|
|
foreach($vars->group_srls as $key => $val) |
1272
|
|
|
{ |
1273
|
|
|
$args = new stdClass; |
1274
|
|
|
$args->group_srl = $val; |
1275
|
|
|
$args->list_order = $key + 1; |
1276
|
|
|
executeQuery('member.updateMemberGroupListOrder', $args); |
1277
|
|
|
} |
1278
|
|
|
|
1279
|
|
|
$this->_deleteMemberGroupCache($vars->site_srl); |
1280
|
|
|
|
1281
|
|
|
$this->setRedirectUrl(getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList')); |
1282
|
|
|
} |
1283
|
|
|
|
1284
|
|
|
/** |
1285
|
|
|
* Delete cached group data |
1286
|
|
|
* @return void |
1287
|
|
|
*/ |
1288
|
|
|
function _deleteMemberGroupCache($site_srl = 0) |
|
|
|
|
1289
|
|
|
{ |
1290
|
|
|
//remove from cache |
1291
|
|
|
$oCacheHandler = CacheHandler::getInstance('object', null, true); |
1292
|
|
|
if($oCacheHandler->isSupport()) |
1293
|
|
|
{ |
1294
|
|
|
$oCacheHandler->invalidateGroupKey('member'); |
1295
|
|
|
} |
1296
|
|
|
} |
1297
|
|
|
|
1298
|
|
|
/** |
1299
|
|
|
* Register denied ID |
1300
|
|
|
* @param string $user_id |
1301
|
|
|
* @param string $description |
1302
|
|
|
* @return Object |
1303
|
|
|
*/ |
1304
|
|
|
function insertDeniedID($user_id, $description = '') |
1305
|
|
|
{ |
1306
|
|
|
$args = new stdClass(); |
1307
|
|
|
$args->user_id = $user_id; |
1308
|
|
|
$args->description = $description; |
1309
|
|
|
$args->list_order = -1*getNextSequence(); |
1310
|
|
|
|
1311
|
|
|
return executeQuery('member.insertDeniedID', $args); |
1312
|
|
|
} |
1313
|
|
|
|
1314
|
|
|
function insertDeniedNickName($nick_name, $description = '') |
1315
|
|
|
{ |
1316
|
|
|
$args = new stdClass(); |
1317
|
|
|
$args->nick_name = $nick_name; |
1318
|
|
|
$args->description = $description; |
1319
|
|
|
|
1320
|
|
|
return executeQuery('member.insertDeniedNickName', $args); |
1321
|
|
|
} |
1322
|
|
|
|
1323
|
|
|
/** |
1324
|
|
|
* delete a denied id |
1325
|
|
|
* @param string $user_id |
1326
|
|
|
* @return object |
1327
|
|
|
*/ |
1328
|
|
|
function deleteDeniedID($user_id) |
1329
|
|
|
{ |
1330
|
|
|
if(!$user_id) unset($user_id); |
1331
|
|
|
|
1332
|
|
|
$args = new stdClass; |
1333
|
|
|
$args->user_id = $user_id; |
1334
|
|
|
return executeQuery('member.deleteDeniedID', $args); |
1335
|
|
|
} |
1336
|
|
|
|
1337
|
|
|
/** |
1338
|
|
|
* delete a denied nick name |
1339
|
|
|
* @param string $nick_name |
1340
|
|
|
* @return object |
1341
|
|
|
*/ |
1342
|
|
|
function deleteDeniedNickName($nick_name) |
1343
|
|
|
{ |
1344
|
|
|
if(!$nick_name) unset($nick_name); |
1345
|
|
|
|
1346
|
|
|
$args = new stdClass; |
1347
|
|
|
$args->nick_name = $nick_name; |
1348
|
|
|
return executeQuery('member.deleteDeniedNickName', $args); |
1349
|
|
|
} |
1350
|
|
|
|
1351
|
|
|
/** |
1352
|
|
|
* Delete a join form |
1353
|
|
|
* @param int $member_join_form_srl |
1354
|
|
|
* @return Object |
1355
|
|
|
*/ |
1356
|
|
|
function deleteJoinForm($member_join_form_srl) |
1357
|
|
|
{ |
1358
|
|
|
$args = new stdClass(); |
1359
|
|
|
$args->member_join_form_srl = $member_join_form_srl; |
1360
|
|
|
$output = executeQuery('member.deleteJoinForm', $args); |
1361
|
|
|
return $output; |
1362
|
|
|
} |
1363
|
|
|
|
1364
|
|
|
/** |
1365
|
|
|
* Move up a join form |
1366
|
|
|
* @deprecated |
1367
|
|
|
* @param int $member_join_form_srl |
1368
|
|
|
* @return Object |
1369
|
|
|
*/ |
1370
|
|
|
function moveJoinFormUp($member_join_form_srl) |
1371
|
|
|
{ |
1372
|
|
|
$oMemberModel = getModel('member'); |
1373
|
|
|
// Get information of the join form |
1374
|
|
|
$args = new stdClass; |
1375
|
|
|
$args->member_join_form_srl = $member_join_form_srl; |
1376
|
|
|
$output = executeQuery('member.getJoinForm', $args); |
1377
|
|
|
|
1378
|
|
|
$join_form = $output->data; |
1379
|
|
|
$list_order = $join_form->list_order; |
1380
|
|
|
// Get a list of all join forms |
1381
|
|
|
$join_form_list = $oMemberModel->getJoinFormList(); |
1382
|
|
|
$join_form_srl_list = array_keys($join_form_list); |
1383
|
|
|
if(count($join_form_srl_list)<2) return new Object(); |
1384
|
|
|
|
1385
|
|
|
$prev_member_join_form = NULL; |
1386
|
|
|
foreach($join_form_list as $key => $val) |
1387
|
|
|
{ |
1388
|
|
|
if($val->member_join_form_srl == $member_join_form_srl) break; |
1389
|
|
|
$prev_member_join_form = $val; |
1390
|
|
|
} |
1391
|
|
|
// Return if no previous join form exists |
1392
|
|
|
if(!$prev_member_join_form) return new Object(); |
1393
|
|
|
// Information of the join form |
1394
|
|
|
$cur_args = new stdClass; |
1395
|
|
|
$cur_args->member_join_form_srl = $member_join_form_srl; |
1396
|
|
|
$cur_args->list_order = $prev_member_join_form->list_order; |
1397
|
|
|
// Information of the target join form |
1398
|
|
|
$prev_args = new stdClass; |
1399
|
|
|
$prev_args->member_join_form_srl = $prev_member_join_form->member_join_form_srl; |
1400
|
|
|
$prev_args->list_order = $list_order; |
1401
|
|
|
// Execute Query |
1402
|
|
|
$output = executeQuery('member.updateMemberJoinFormListorder', $cur_args); |
1403
|
|
|
if(!$output->toBool()) return $output; |
1404
|
|
|
|
1405
|
|
|
executeQuery('member.updateMemberJoinFormListorder', $prev_args); |
1406
|
|
|
if(!$output->toBool()) return $output; |
1407
|
|
|
|
1408
|
|
|
return new Object(); |
1409
|
|
|
} |
1410
|
|
|
|
1411
|
|
|
/** |
1412
|
|
|
* Move down a join form |
1413
|
|
|
* @deprecated |
1414
|
|
|
* @param int $member_join_form_srl |
1415
|
|
|
* @return Object |
1416
|
|
|
*/ |
1417
|
|
|
function moveJoinFormDown($member_join_form_srl) |
1418
|
|
|
{ |
1419
|
|
|
$oMemberModel = getModel('member'); |
1420
|
|
|
// Get information of the join form |
1421
|
|
|
$args = new stdClass; |
1422
|
|
|
$args->member_join_form_srl = $member_join_form_srl; |
1423
|
|
|
$output = executeQuery('member.getJoinForm', $args); |
1424
|
|
|
|
1425
|
|
|
$join_form = $output->data; |
1426
|
|
|
$list_order = $join_form->list_order; |
1427
|
|
|
// Get information of all join forms |
1428
|
|
|
$join_form_list = $oMemberModel->getJoinFormList(); |
1429
|
|
|
$join_form_srl_list = array_keys($join_form_list); |
1430
|
|
|
if(count($join_form_srl_list)<2) return new Object(); |
1431
|
|
|
|
1432
|
|
|
for($i=0;$i<count($join_form_srl_list);$i++) |
|
|
|
|
1433
|
|
|
{ |
1434
|
|
|
if($join_form_srl_list[$i]==$member_join_form_srl) break; |
1435
|
|
|
} |
1436
|
|
|
|
1437
|
|
|
$next_member_join_form_srl = $join_form_srl_list[$i+1]; |
1438
|
|
|
// Return if no previous join form exists |
1439
|
|
|
if(!$next_member_join_form_srl) return new Object(); |
1440
|
|
|
$next_member_join_form = $join_form_list[$next_member_join_form_srl]; |
1441
|
|
|
// Information of the join form |
1442
|
|
|
$cur_args = new stdClass; |
1443
|
|
|
$cur_args->member_join_form_srl = $member_join_form_srl; |
1444
|
|
|
$cur_args->list_order = $next_member_join_form->list_order; |
1445
|
|
|
// Information of the target join form |
1446
|
|
|
$next_args = new stdClass; |
1447
|
|
|
$next_args->member_join_form_srl = $next_member_join_form->member_join_form_srl; |
1448
|
|
|
$next_args->list_order = $list_order; |
1449
|
|
|
// Execute Query |
1450
|
|
|
$output = executeQuery('member.updateMemberJoinFormListorder', $cur_args); |
1451
|
|
|
if(!$output->toBool()) return $output; |
1452
|
|
|
|
1453
|
|
|
$output = executeQuery('member.updateMemberJoinFormListorder', $next_args); |
1454
|
|
|
if(!$output->toBool()) return $output; |
1455
|
|
|
|
1456
|
|
|
return new Object(); |
1457
|
|
|
} |
1458
|
|
|
} |
1459
|
|
|
/* End of file member.admin.controller.php */ |
1460
|
|
|
/* Location: ./modules/member/member.admin.controller.php */ |
1461
|
|
|
|
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.
Both the
$myVar
assignment in line 1 and the$higher
assignment in line 2 are dead. The first because$myVar
is never used and the second because$higher
is always overwritten for every possible time line.