module); unset($all_args->act); if(!isset($args->limit_date)) $args->limit_date = ""; // Add extra vars after excluding necessary information from all the requested arguments $extra_vars = delObjectVars($all_args, $args); $args->extra_vars = serialize($extra_vars); // Check if an original member exists having the member_srl if($args->member_srl) { // Create a member model object $oMemberModel = &getModel('member'); // Get memebr profile $columnList = array('member_srl'); $member_info = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl, 0, $columnList); // If no original member exists, make a new one if($member_info->member_srl != $args->member_srl) unset($args->member_srl); } $oMemberController = &getController('member'); // Execute insert or update depending on the value of member_srl if(!$args->member_srl) { $output = $oMemberController->insertMember($args); $msg_code = 'success_registed'; } else { $output = $oMemberController->updateMember($args); $msg_code = 'success_updated'; } if(!$output->toBool()) return $output; // Save Signature $signature = Context::get('signature'); $oMemberController->putSignature($args->member_srl, $signature); // Return result $this->add('member_srl', $args->member_srl); $this->setMessage($msg_code); } /** * @brief Delete a user (Administrator) **/ function procMemberAdminDelete() { // Separate all the values into DB entries and others $member_srl = Context::get('member_srl'); $oMemberController = &getController('member'); $output = $oMemberController->deleteMember($member_srl); if(!$output->toBool()) return $output; $this->add('page',Context::get('page')); $this->setMessage("success_deleted"); } /** * @brief Add information for member administration **/ function procMemberAdminInsertConfig() { // Get the basic information $args = Context::gets( 'webmaster_name', 'webmaster_email', 'skin', 'colorset', 'editor_skin', 'editor_colorset', 'enable_openid', 'enable_join', 'enable_confirm', 'limit_day', 'after_login_url', 'after_logout_url', 'redirect_url', 'agreement', 'profile_image', 'profile_image_max_width', 'profile_image_max_height', 'image_name', 'image_name_max_width', 'image_name_max_height', 'image_mark', 'image_mark_max_width', 'image_mark_max_height', 'group_image_mark', 'group_image_mark_max_width', 'group_image_mark_max_height', 'signature','signature_max_height','change_password_date' ); if(!$args->skin) $args->skin = "default"; if(!$args->colorset) $args->colorset = "white"; if(!$args->editor_skin) $args->editor_skin= "xpresseditor"; if(!$args->editor_colorset) $args->editor_colorset = "white"; if($args->enable_join!='Y') $args->enable_join = 'N'; if($args->enable_openid!='Y') $args->enable_openid= 'N'; if($args->profile_image !='Y') $args->profile_image = 'N'; if($args->image_name!='Y') $args->image_name = 'N'; if($args->image_mark!='Y') $args->image_mark = 'N'; if($args->group_image_mark!='Y') $args->group_image_mark = 'N'; if($args->signature!='Y') $args->signature = 'N'; if(!trim(strip_tags($args->agreement))) $args->agreement = null; $args->limit_day = (int)$args->limit_day; if(!$args->change_password_date) $args->change_password_date = 0; $oMemberController = &getController('member'); $output = $oMemberController->setMemberConfig($args); return $output; } /** * @brief Add a user group **/ function procMemberAdminInsertGroup() { $args = Context::gets('title','description','is_default','image_mark'); $output = $this->insertGroup($args); if(!$output->toBool()) return $output; $this->add('group_srl',''); $this->add('page',Context::get('page')); $this->setMessage('success_registed'); } /** * @brief Update user group information **/ function procMemberAdminUpdateGroup() { $group_srl = Context::get('group_srl'); $mode = Context::get('mode'); switch($mode) { case 'delete' : $output = $this->deleteGroup($group_srl); if(!$output->toBool()) return $output; $msg_code = 'success_deleted'; break; case 'update' : $args = Context::gets('group_srl','title','description','is_default','image_mark'); $args->site_srl = 0; $output = $this->updateGroup($args); if(!$output->toBool()) return $output; $msg_code = 'success_updated'; break; } $this->add('group_srl',''); $this->add('page',Context::get('page')); $this->setMessage($msg_code); } /** * @brief Add a join form **/ function procMemberAdminInsertJoinForm() { $args->member_join_form_srl = Context::get('member_join_form_srl'); $args->column_type = Context::get('column_type'); $args->column_name = strtolower(Context::get('column_name')); $args->column_title = Context::get('column_title'); $args->default_value = explode('|@|', Context::get('default_value')); $args->is_active = Context::get('is_active'); if(!in_array(strtoupper($args->is_active), array('Y','N'))) $args->is_active = 'N'; $args->required = Context::get('required'); if(!in_array(strtoupper($args->required), array('Y','N'))) $args->required = 'N'; $args->description = Context::get('description'); // Default values if(in_array($args->column_type, array('checkbox','select','radio')) && count($args->default_value) ) { $args->default_value = serialize($args->default_value); } else { $args->default_value = ''; } // Fix if member_join_form_srl exists. Add if not exists. if(!$args->member_join_form_srl){ $args->list_order = getNextSequence(); $output = executeQuery('member.insertJoinForm', $args); }else{ $output = executeQuery('member.updateJoinForm', $args); } if(!$output->toBool()) return $output; $this->add('act','dispJoinForm'); $this->setMessage('success_registed'); } /** * @brief Move up/down the member join form and modify it **/ function procMemberAdminUpdateJoinForm() { $member_join_form_srl = Context::get('member_join_form_srl'); $mode = Context::get('mode'); switch($mode) { case 'up' : $output = $this->moveJoinFormUp($member_join_form_srl); $msg_code = 'success_moved'; break; case 'down' : $output = $this->moveJoinFormDown($member_join_form_srl); $msg_code = 'success_moved'; break; case 'delete' : $output = $this->deleteJoinForm($member_join_form_srl); $msg_code = 'success_deleted'; break; case 'update' : break; } if(!$output->toBool()) return $output; $this->setMessage($msg_code); } /** * @brief Delete the selected members */ function procMemberAdminDeleteMembers() { $target_member_srls = Context::get('target_member_srls'); if(!$target_member_srls) return new Object(-1, 'msg_invalid_request'); $member_srls = explode(',', $target_member_srls); $oMemberController = &getController('member'); foreach($member_srls as $member) { $output = $oMemberController->deleteMember($member); if(!$output->toBool()) { $this->setMessage('failed_deleted'); return $output; } } $this->setMessage('success_deleted'); } /** * @brief Update a group of selected memebrs **/ function procMemberAdminUpdateMembersGroup() { $member_srl = Context::get('member_srl'); if(!$member_srl) return new Object(-1,'msg_invalid_request'); $member_srls = explode(',',$member_srl); $group_srl = Context::get('group_srls'); $group_srls = explode('|@|', $group_srl); if(!$group_srl) return new Object(-1,'msg_check_group'); $oDB = &DB::getInstance(); $oDB->begin(); // Delete a group of selected members $args->member_srl = $member_srl; $output = executeQuery('member.deleteMembersGroup', $args); if(!$output->toBool()) { $oDB->rollback(); return $output; } // Add to a selected group $group_count = count($group_srls); $member_count = count($member_srls); for($j=0;$j<$group_count;$j++) { $group_srl = (int)trim($group_srls[$j]); if(!$group_srl) continue; for($i=0;$i<$member_count;$i++) { $member_srl = (int)trim($member_srls[$i]); if(!$member_srl) continue; $args = null; $args->member_srl = $member_srl; $args->group_srl = $group_srl; $output = executeQuery('member.addMemberToGroup', $args); if(!$output->toBool()) { $oDB->rollback(); return $output; } } } $oDB->commit(); $this->setMessage('success_updated'); } /** * @brief Add a denied ID **/ function procMemberAdminInsertDeniedID() { $user_id = Context::get('user_id'); $description = Context::get('description'); $output = $this->insertDeniedID($user_id, $description); if(!$output->toBool()) return $output; $this->add('group_srl',''); $this->add('page',Context::get('page')); $this->setMessage('success_registed'); } /** * @brief Update denied ID **/ function procMemberAdminUpdateDeniedID() { $user_id = Context::get('user_id'); $mode = Context::get('mode'); switch($mode) { case 'delete' : $output = $this->deleteDeniedID($user_id); if(!$output->toBool()) return $output; $msg_code = 'success_deleted'; break; } $this->add('page',Context::get('page')); $this->setMessage($msg_code); } /** * @brief Add an administrator **/ function insertAdmin($args) { // Assign an administrator $args->is_admin = 'Y'; // Get admin group and set $oMemberModel = &getModel('member'); $admin_group = $oMemberModel->getAdminGroup(); $args->group_srl_list = $admin_group->group_srl; $oMemberController = &getController('member'); return $oMemberController->insertMember($args); } /** * @brief Change the group values of member **/ function changeGroup($source_group_srl, $target_group_srl) { $args->source_group_srl = $source_group_srl; $args->target_group_srl = $target_group_srl; return executeQuery('member.changeGroup', $args); } /** * @brief Insert a group **/ function insertGroup($args) { if(!$args->site_srl) $args->site_srl = 0; // Check the value of is_default. if($args->is_default!='Y') { $args->is_default = 'N'; } else { $output = executeQuery('member.updateGroupDefaultClear', $args); if(!$output->toBool()) return $output; } return executeQuery('member.insertGroup', $args); } /** * @brief Modify Group Information **/ function updateGroup($args) { // Check the value of is_default. if($args->is_default!='Y') $args->is_default = 'N'; else { $output = executeQuery('member.updateGroupDefaultClear', $args); if(!$output->toBool()) return $output; } return executeQuery('member.updateGroup', $args); } /** * Delete a Group **/ function deleteGroup($group_srl, $site_srl = 0) { // Create a member model object $oMemberModel = &getModel('member'); // Check the group_srl (If is_default == 'Y', it cannot be deleted) $columnList = array('group_srl', 'is_default'); $group_info = $oMemberModel->getGroup($group_srl, $columnList); if(!$group_info) return new Object(-1, 'lang->msg_not_founded'); if($group_info->is_default == 'Y') return new Object(-1, 'msg_not_delete_default'); // Get groups where is_default == 'Y' $columnList = array('site_srl', 'group_srl'); $default_group = $oMemberModel->getDefaultGroup($site_srl, $columnList); $default_group_srl = $default_group->group_srl; // Change to default_group_srl $this->changeGroup($group_srl, $default_group_srl); $args->group_srl = $group_srl; return executeQuery('member.deleteGroup', $args); } function procMemberAdminGroupImageMarkUpdateOrder() { $oModuleModel = &getModel('module'); $oModuleControll = getController('module'); $config = $oModuleModel->getModuleConfig('member'); // $config->group_image_mark_order = Context::get('group_image_mark_order'); $oModuleControll->insertModuleConfig('member', $config); } /** * @brief Register denied ID **/ function insertDeniedID($user_id, $description = '') { $args->user_id = $user_id; $args->description = $description; $args->list_order = -1*getNextSequence(); return executeQuery('member.insertDeniedID', $args); } /** * @brief Delete a denied ID **/ function deleteDeniedID($user_id) { $args->user_id = $user_id; return executeQuery('member.deleteDeniedID', $args); } /** * @brief Delete a join form **/ function deleteJoinForm($member_join_form_srl) { $args->member_join_form_srl = $member_join_form_srl; $output = executeQuery('member.deleteJoinForm', $args); return $output; } /** * @brief Move up a join form **/ function moveJoinFormUp($member_join_form_srl) { $oMemberModel = &getModel('member'); // Get information of the join form $args->member_join_form_srl = $member_join_form_srl; $output = executeQuery('member.getJoinForm', $args); $join_form = $output->data; $list_order = $join_form->list_order; // Get a list of all join forms $join_form_list = $oMemberModel->getJoinFormList(); $join_form_srl_list = array_keys($join_form_list); if(count($join_form_srl_list)<2) return new Object(); $prev_member_join_form = NULL; foreach($join_form_list as $key => $val) { if($val->member_join_form_srl == $member_join_form_srl) break; $prev_member_join_form = $val; } // Return if no previous join form exists if(!$prev_member_join_form) return new Object(); // Information of the join form $cur_args->member_join_form_srl = $member_join_form_srl; $cur_args->list_order = $prev_member_join_form->list_order; // Information of the target join form $prev_args->member_join_form_srl = $prev_member_join_form->member_join_form_srl; $prev_args->list_order = $list_order; // Execute Query $output = executeQuery('member.updateMemberJoinFormListorder', $cur_args); if(!$output->toBool()) return $output; executeQuery('member.updateMemberJoinFormListorder', $prev_args); if(!$output->toBool()) return $output; return new Object(); } /** * @brief Move down a join form **/ function moveJoinFormDown($member_join_form_srl) { $oMemberModel = &getModel('member'); // Get information of the join form $args->member_join_form_srl = $member_join_form_srl; $output = executeQuery('member.getJoinForm', $args); $join_form = $output->data; $list_order = $join_form->list_order; // Get information of all join forms $join_form_list = $oMemberModel->getJoinFormList(); $join_form_srl_list = array_keys($join_form_list); if(count($join_form_srl_list)<2) return new Object(); for($i=0;$imember_join_form_srl = $member_join_form_srl; $cur_args->list_order = $next_member_join_form->list_order; // Information of the target join form $next_args->member_join_form_srl = $next_member_join_form->member_join_form_srl; $next_args->list_order = $list_order; // Execute Query $output = executeQuery('member.updateMemberJoinFormListorder', $cur_args); if(!$output->toBool()) return $output; $output = executeQuery('member.updateMemberJoinFormListorder', $next_args); if(!$output->toBool()) return $output; return new Object(); } } ?>