Initial import from local backup (Documents-Playground/pakerpale)

This commit is contained in:
jeonghwa
2026-07-03 05:27:41 +09:00
commit 5b1bfe3390
2223 changed files with 561621 additions and 0 deletions

View File

@@ -0,0 +1,339 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Member class
*
* Copyright (c) CIBoard <www.ciboard.co.kr>
*
* @author CIBoard (develop@ciboard.co.kr)
*/
/**
* member table 을 관리하는 class 입니다.
*/
class Member extends CI_Controller
{
private $CI;
private $mb;
private $member_group;
function __construct()
{
$this->CI = & get_instance();
$this->CI->load->model( array('Member_model'));
$this->CI->load->helper( array('array'));
}
/**
* 접속한 유저가 회원인지 아닌지를 판단합니다
*/
public function is_member()
{
if ($this->CI->session->userdata('mem_id')) {
return $this->CI->session->userdata('mem_id');
} else {
return false;
}
}
/**
* 접속한 유저가 관리자인지 아닌지를 판단합니다
*/
public function is_admin($check = array())
{
if ($this->item('mem_is_admin')) {
return 'super';
}
if (element('group_id', $check)) {
$this->CI->load->library('board_group');
$is_group_admin = $this->CI->board_group->is_admin(element('group_id', $check));
if ($is_group_admin) {
return 'group';
}
}
if (element('board_id', $check)) {
$this->CI->load->library('board');
$is_board_admin = $this->CI->board->is_admin(element('board_id', $check));
if ($is_board_admin) {
return 'board';
}
}
return false;
}
/**
* member, member_extra_vars, member_meta 테이블에서 정보를 가져옵니다
*/
public function get_member()
{
if ($this->is_member()) {
if (empty($this->mb)) {
$member = $this->CI->Member_model->get_by_memid($this->is_member());
$extras = $this->get_all_extras(element('mem_id', $member));
if (is_array($extras)) {
$member = array_merge($member, $extras);
}
$metas = $this->get_all_meta(element('mem_id', $member));
if (is_array($metas)) {
$member = array_merge($member, $metas);
}
$member['social'] = $this->get_all_social_meta(element('mem_id', $member));
$this->mb = $member;
}
return $this->mb;
} else {
return false;
}
}
/**
* get_member 에서 가져온 데이터의 item 을 보여줍니다
*/
public function item($column = '')
{
if (empty($column)) {
return false;
}
if (empty($this->mb)) {
$this->get_member();
}
if (empty($this->mb)) {
return false;
}
$member = $this->mb;
return isset($member[$column]) ? $member[$column] : false;
}
/**
* get_member 에서 가져온 데이터의 item 을 보여줍니다
*/
public function socialitem($column = '')
{
if (empty($column)) {
return false;
}
if (empty($this->mb)) {
$this->get_member();
}
if (empty($this->mb)) {
return false;
}
$member = $this->mb;
return isset($member['social']) && isset($member['social'][$column]) ? $member['social'][$column] : false;
}
/**
* 회원이 속한 그룹 정보를 가져옵니다
*/
public function group()
{
if (empty($this->member_group)) {
$where = array(
'mem_id' => $this->item('mem_id'),
);
$this->CI->load->model('Member_group_member_model');
$this->member_group = $this->CI->Member_group_member_model->get('', '', $where, '', 0, 'mgm_id', 'ASC');
}
return $this->member_group;
}
/**
* member_extra_vars 테이블에서 가져옵니다
*/
public function get_all_extras($mem_id = 0)
{
if (empty($mem_id)) {
return false;
}
$this->CI->load->model('Member_extra_vars_model');
$result = $this->CI->Member_extra_vars_model->get_all_meta($mem_id);
return $result;
}
/**
* member_meta 테이블에서 가져옵니다
*/
public function get_all_meta($mem_id = 0)
{
$mem_id = (int) $mem_id;
if (empty($mem_id) OR $mem_id < 1) {
return false;
}
$this->CI->load->model('Member_meta_model');
$result = $this->CI->Member_meta_model->get_all_meta($mem_id);
return $result;
}
/**
* social_meta 테이블에서 가져옵니다
*/
public function get_all_social_meta($mem_id = 0)
{
$mem_id = (int) $mem_id;
if (empty($mem_id) OR $mem_id < 1) {
return false;
}
if ($this->CI->db->table_exists('social_meta') === false) {
return;
}
$this->CI->load->model('Social_meta_model');
$result = $this->CI->Social_meta_model->get_all_meta($mem_id);
return $result;
}
/**
* 로그인 기록을 남깁니다
*/
public function update_login_log($mem_id= 0, $userid = '', $success= 0, $reason = '')
{
$success = $success ? 1 : 0;
$mem_id = (int) $mem_id ? (int) $mem_id : 0;
$reason = isset($reason) ? $reason : '';
$referer = $this->CI->input->get_post('url', null, '');
$loginlog = array(
'mll_success' => $success,
'mem_id' => $mem_id,
'mll_userid' => $userid,
'mll_datetime' => cdate('Y-m-d H:i:s'),
'mll_ip' => $this->CI->input->ip_address(),
'mll_reason' => $reason,
'mll_useragent' => $this->CI->agent->agent_string(),
'mll_url' => current_full_url(),
'mll_referer' => $referer,
);
$this->CI->load->model('Member_login_log_model');
$this->CI->Member_login_log_model->insert($loginlog);
return true;
}
/**
* 회원삭제 남깁니다
*/
public function delete_member($mem_id = 0)
{
$mem_id = (int) $mem_id;
if (empty($mem_id) OR $mem_id < 1) {
return false;
}
$this->CI->load->model(
array(
'Autologin_model', 'Board_admin_model', 'Board_group_admin_model', 'Follow_model',
'Member_model', 'Member_auth_email_model', 'Member_dormant_model',
'Member_dormant_notify_model', 'Member_extra_vars_model', 'Member_group_member_model',
'Member_level_history_model', 'Member_login_log_model', 'Member_meta_model',
'Member_register_model', 'Notification_model', 'Point_model',
'Scrap_model', 'Social_meta_model',
'Tempsave_model', 'Member_userid_model',
)
);
$deletewhere = array(
'mem_id' => $mem_id,
);
$this->CI->Autologin_model->delete_where($deletewhere);
$this->CI->Board_admin_model->delete_where($deletewhere);
$this->CI->Board_group_admin_model->delete_where($deletewhere);
$this->CI->Follow_model->delete_where($deletewhere);
$this->CI->Member_model->delete_where($deletewhere);
$this->CI->Member_auth_email_model->delete_where($deletewhere);
$this->CI->Member_dormant_model->delete_where($deletewhere);
$this->CI->Member_dormant_notify_model->delete_where($deletewhere);
$this->CI->Member_extra_vars_model->delete_where($deletewhere);
$this->CI->Member_group_member_model->delete_where($deletewhere);
$this->CI->Member_level_history_model->delete_where($deletewhere);
$this->CI->Member_login_log_model->delete_where($deletewhere);
$this->CI->Member_meta_model->delete_where($deletewhere);
$this->CI->Member_register_model->delete_where($deletewhere);
$this->CI->Notification_model->delete_where($deletewhere);
$this->CI->Point_model->delete_where($deletewhere);
$this->CI->Scrap_model->delete_where($deletewhere);
$this->CI->Social_meta_model->delete_where($deletewhere);
$this->CI->Tempsave_model->delete_where($deletewhere);
$this->CI->Member_userid_model->update($mem_id, array('mem_status' => 1));
return true;
}
/**
* 휴면처리시 별도의 저장소로 이동하는 프로세스입니다
*/
public function archive_to_dormant($mem_id = 0)
{
$mem_id = (int) $mem_id;
if (empty($mem_id) OR $mem_id < 1) {
return false;
}
$this->CI->load->model(array('Member_model', 'Member_dormant_model', 'Member_meta_model', 'Member_userid_model'));
$data = $this->CI->Member_model->get_one($mem_id);
$cleanpoint = (-1) * element('mem_point', $data);
$point_content = '휴면회원 전환으로 인한 포인트 초기화 (' . cdate('Y-m-d H:i:s') . ')';
if ($this->CI->cbconfig->item('member_dormant_reset_point')) {
$this->CI->load->library('point');
$point = $this->CI->point->insert_point(
$mem_id,
$cleanpoint,
$point_content,
'@member_dormant',
$mem_id,
$mem_id . '-' . uniqid('')
);
}
$this->CI->Member_dormant_model->insert($data);
$this->CI->Member_model->delete($mem_id);
$metadata = array('archived_dormant_datetime' => cdate('Y-m-d H:i:s'));
$this->CI->Member_meta_model->save($mem_id, $metadata);
$this->CI->Member_userid_model->update($mem_id, array('mem_status' => 2));
return true;
}
/**
* 휴면상태에 있던 회원을 원래 회원 디비로 복원하는 프로세스입니다
*/
public function recover_from_dormant($mem_id = 0)
{
$mem_id = (int) $mem_id;
if (empty($mem_id) OR $mem_id < 1) {
return false;
}
$this->CI->load->model(array('Member_model', 'Member_dormant_model', 'Member_meta_model', 'Member_userid_model'));
$data = $this->CI->Member_dormant_model->get_one($mem_id);
$this->CI->Member_model->insert($data);
$this->CI->Member_dormant_model->delete($mem_id);
$metadata = array('archived_dormant_datetime' => '');
$this->CI->Member_meta_model->save($mem_id, $metadata);
$this->CI->Member_userid_model->update($mem_id, array('mem_status' => 0));
return true;
}
}