1078 lines
39 KiB
PHP
1078 lines
39 KiB
PHP
<?php
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
|
|
/**
|
|
* Dormant class
|
|
*
|
|
* Copyright (c) CIBoard <www.ciboard.co.kr>
|
|
*
|
|
* @author CIBoard (develop@ciboard.co.kr)
|
|
*/
|
|
|
|
/**
|
|
* 관리자>회원설정>휴면계정관리 controller 입니다.
|
|
*/
|
|
class Dormant extends CB_Controller
|
|
{
|
|
|
|
/**
|
|
* 관리자 페이지 상의 현재 디렉토리입니다
|
|
* 페이지 이동시 필요한 정보입니다
|
|
*/
|
|
public $pagedir = 'member/dormant';
|
|
|
|
public $dormant_days_text;
|
|
|
|
/**
|
|
* 모델을 로딩합니다
|
|
*/
|
|
protected $models = array();
|
|
|
|
/**
|
|
* 이 컨트롤러의 메인 모델 이름입니다
|
|
*/
|
|
protected $modelname = '';
|
|
|
|
/**
|
|
* 헬퍼를 로딩합니다
|
|
*/
|
|
protected $helpers = array('form', 'array');
|
|
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
|
|
/**
|
|
* 라이브러리를 로딩합니다
|
|
*/
|
|
$this->load->library(array('pagination', 'querystring'));
|
|
$this->dormant_days_text = array(
|
|
'30' => '30일',
|
|
'90' => '90일',
|
|
'180' => '180일',
|
|
'365' => '1년',
|
|
'730' => '2년',
|
|
'1095' => '3년',
|
|
'1460' => '4년',
|
|
'1825' => '5년',
|
|
);
|
|
}
|
|
|
|
/**
|
|
* 기본정보를 가져오는 메소드입니다
|
|
*/
|
|
public function index()
|
|
{
|
|
// 이벤트 라이브러리를 로딩합니다
|
|
$eventname = 'event_admin_member_dormant_index';
|
|
$this->load->event($eventname);
|
|
|
|
$view = array();
|
|
$view['view'] = array();
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['before'] = Events::trigger('before', $eventname);
|
|
|
|
/**
|
|
* Validation 라이브러리를 가져옵니다
|
|
*/
|
|
$this->load->library('form_validation');
|
|
|
|
/**
|
|
* 모델을 로딩합니다
|
|
*/
|
|
$this->load->model('Config_model');
|
|
|
|
/**
|
|
* 전송된 데이터의 유효성을 체크합니다
|
|
*/
|
|
$config = array(
|
|
array(
|
|
'field' => 'is_submit',
|
|
'label' => '전송',
|
|
'rules' => 'trim|required',
|
|
),
|
|
array(
|
|
'field' => 'member_dormant_days',
|
|
'label' => '휴면계정 전환 조건',
|
|
'rules' => 'trim|required|numeric|is_natural',
|
|
),
|
|
array(
|
|
'field' => 'member_dormant_method',
|
|
'label' => '휴면계정 정리 방법',
|
|
'rules' => 'trim',
|
|
),
|
|
array(
|
|
'field' => 'member_dormant_auto_clean',
|
|
'label' => '자동정리여부',
|
|
'rules' => 'trim',
|
|
),
|
|
array(
|
|
'field' => 'member_dormant_auto_email',
|
|
'label' => '자동메일발송여부',
|
|
'rules' => 'trim',
|
|
),
|
|
array(
|
|
'field' => 'member_dormant_auto_email_days',
|
|
'label' => '자동메일발송 기간',
|
|
'rules' => 'trim|required|numeric|is_natural',
|
|
),
|
|
array(
|
|
'field' => 'member_dormant_reset_point',
|
|
'label' => '포인트 몰수 여부',
|
|
'rules' => 'trim|required|numeric|is_natural',
|
|
),
|
|
);
|
|
$this->form_validation->set_rules($config);
|
|
|
|
/**
|
|
* 유효성 검사를 하지 않는 경우, 또는 유효성 검사에 실패한 경우입니다.
|
|
* 즉 글쓰기나 수정 페이지를 보고 있는 경우입니다
|
|
*/
|
|
if ($this->form_validation->run() === false) {
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['formrunfalse'] = Events::trigger('formrunfalse', $eventname);
|
|
|
|
} else {
|
|
/**
|
|
* 유효성 검사를 통과한 경우입니다.
|
|
* 즉 데이터의 insert 나 update 의 process 처리가 필요한 상황입니다
|
|
*/
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['formruntrue'] = Events::trigger('formruntrue', $eventname);
|
|
|
|
$array = array(
|
|
'member_dormant_days', 'member_dormant_method', 'member_dormant_auto_clean',
|
|
'member_dormant_auto_email', 'member_dormant_auto_email_days', 'member_dormant_reset_point'
|
|
);
|
|
foreach ($array as $value) {
|
|
$savedata[$value] = $this->input->post($value, null, '');
|
|
}
|
|
|
|
$this->Config_model->save($savedata);
|
|
$view['view']['alert_message'] = '기본정보 설정이 저장되었습니다';
|
|
}
|
|
|
|
$getdata = $this->Config_model->get_all_meta();
|
|
if ( ! isset($getdata['member_dormant_days']) OR ! $getdata['member_dormant_days']) $getdata['member_dormant_days'] = '365';
|
|
if ( ! isset($getdata['member_dormant_auto_email_days']) OR ! $getdata['member_dormant_auto_email_days']) $getdata['member_dormant_auto_email_days'] = '30';
|
|
$view['view']['data'] = $getdata;
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
|
|
|
|
/**
|
|
* 어드민 레이아웃을 정의합니다
|
|
*/
|
|
$layoutconfig = array('layout' => 'layout', 'skin' => 'index');
|
|
$view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
|
|
$this->data = $view;
|
|
$this->layout = element('layout_skin_file', element('layout', $view));
|
|
$this->view = element('view_skin_file', element('layout', $view));
|
|
}
|
|
|
|
/**
|
|
* 휴면계정 일괄정리 하는 페이지입니다
|
|
*/
|
|
public function cleantodormant()
|
|
{
|
|
// 이벤트 라이브러리를 로딩합니다
|
|
$eventname = 'event_admin_member_dormant_cleantodormant';
|
|
$this->load->event($eventname);
|
|
|
|
$view = array();
|
|
$view['view'] = array();
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['before'] = Events::trigger('before', $eventname);
|
|
|
|
/**
|
|
* Validation 라이브러리를 가져옵니다
|
|
*/
|
|
$this->load->library('form_validation');
|
|
|
|
/**
|
|
* 전송된 데이터의 유효성을 체크합니다
|
|
*/
|
|
$config = array(
|
|
array(
|
|
'field' => 'execute',
|
|
'label' => '실행',
|
|
'rules' => 'trim',
|
|
),
|
|
);
|
|
$this->form_validation->set_rules($config);
|
|
|
|
/**
|
|
* 유효성 검사를 하지 않는 경우, 또는 유효성 검사에 실패한 경우입니다.
|
|
* 즉 글쓰기나 수정 페이지를 보고 있는 경우입니다
|
|
*/
|
|
if ($this->form_validation->run() === false) {
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['formrunfalse'] = Events::trigger('formrunfalse', $eventname);
|
|
|
|
$where = array();
|
|
$dormant_days = $this->cbconfig->item('member_dormant_days') ? $this->cbconfig->item('member_dormant_days') : 365;
|
|
$gap = $dormant_days * 24 * 60 * 60;
|
|
$lastlogin = ctimestamp() - $gap;
|
|
$lastlogin_datetime = cdate('Y-m-d H:i:s', $lastlogin);
|
|
$where['mem_lastlogin_datetime <='] = $lastlogin_datetime;
|
|
$where['mem_register_datetime <='] = $lastlogin_datetime;
|
|
$view['view']['count'] = $this->Member_model->count_by($where);
|
|
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
|
|
|
|
/**
|
|
* 어드민 레이아웃을 정의합니다
|
|
*/
|
|
$layoutconfig = array('layout' => 'layout', 'skin' => 'cleantodormant');
|
|
$view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
|
|
$this->data = $view;
|
|
$this->layout = element('layout_skin_file', element('layout', $view));
|
|
$this->view = element('view_skin_file', element('layout', $view));
|
|
|
|
} else {
|
|
/**
|
|
* 유효성 검사를 통과한 경우입니다.
|
|
* 즉 데이터의 insert 나 update 의 process 처리가 필요한 상황입니다
|
|
*/
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['formruntrue'] = Events::trigger('formruntrue', $eventname);
|
|
|
|
$where = array();
|
|
$dormant_days = $this->cbconfig->item('member_dormant_days') ? $this->cbconfig->item('member_dormant_days') : 365;
|
|
$gap = $dormant_days * 24 * 60 * 60;
|
|
$lastlogin = ctimestamp() - $gap;
|
|
$lastlogin_datetime = cdate('Y-m-d H:i:s', $lastlogin);
|
|
$where['mem_lastlogin_datetime <='] = $lastlogin_datetime;
|
|
$where['mem_register_datetime <='] = $lastlogin_datetime;
|
|
$result = $this->Member_model->get('', 'mem_id', $where);
|
|
if ($result) {
|
|
foreach ($result as $value) {
|
|
$mem_id = element('mem_id', $value);
|
|
if ($this->cbconfig->item('member_dormant_method') === 'delete') {
|
|
$this->member->delete_member($mem_id);
|
|
} else {
|
|
$this->member->archive_to_dormant($mem_id);
|
|
}
|
|
}
|
|
exit(json_encode(array('success' => 'ok', 'message' => '정리가 완료되었습니다')));
|
|
} else {
|
|
exit(json_encode(array('success' => 'fail', 'message' => '정리할 대상이 없습니다')));
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 안내메일 일괄발송 하는 페이지입니다
|
|
*/
|
|
public function emailtowaiting()
|
|
{
|
|
// 이벤트 라이브러리를 로딩합니다
|
|
$eventname = 'event_admin_member_dormant_emailtowaiting';
|
|
$this->load->event($eventname);
|
|
|
|
$view = array();
|
|
$view['view'] = array();
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['before'] = Events::trigger('before', $eventname);
|
|
|
|
/**
|
|
* Validation 라이브러리를 가져옵니다
|
|
*/
|
|
$this->load->library('form_validation');
|
|
|
|
/**
|
|
* 모델을 로딩합니다
|
|
*/
|
|
$this->load->model('Member_dormant_notify_model');
|
|
|
|
/**
|
|
* 전송된 데이터의 유효성을 체크합니다
|
|
*/
|
|
$config = array(
|
|
array(
|
|
'field' => 'execute',
|
|
'label' => '실행',
|
|
'rules' => 'trim',
|
|
),
|
|
);
|
|
$this->form_validation->set_rules($config);
|
|
|
|
$view['view']['period_text'] = $this->dormant_days_text[$this->cbconfig->item('member_dormant_days')];
|
|
|
|
/**
|
|
* 유효성 검사를 하지 않는 경우, 또는 유효성 검사에 실패한 경우입니다.
|
|
* 즉 글쓰기나 수정 페이지를 보고 있는 경우입니다
|
|
*/
|
|
if ($this->form_validation->run() === false) {
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['formrunfalse'] = Events::trigger('formrunfalse', $eventname);
|
|
|
|
$where = array();
|
|
$dormant_days = $this->cbconfig->item('member_dormant_days') ? $this->cbconfig->item('member_dormant_days') : 365;
|
|
$email_days = $this->cbconfig->item('member_dormant_auto_email_days') ? $this->cbconfig->item('member_dormant_auto_email_days') : 365;
|
|
$gap = $dormant_days * 24 * 60 * 60;
|
|
$email_gap = $email_days * 24 * 60 * 60;
|
|
$lastlogin = ctimestamp() - $gap + $email_gap;
|
|
$lastlogin_datetime = cdate('Y-m-d H:i:s', $lastlogin);
|
|
$view['view']['count_unsent_email_member'] = $this->Member_dormant_notify_model->count_unsent_email_member($lastlogin_datetime);
|
|
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
|
|
|
|
/**
|
|
* 어드민 레이아웃을 정의합니다
|
|
*/
|
|
$layoutconfig = array('layout' => 'layout', 'skin' => 'emailtowaiting');
|
|
$view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
|
|
$this->data = $view;
|
|
$this->layout = element('layout_skin_file', element('layout', $view));
|
|
$this->view = element('view_skin_file', element('layout', $view));
|
|
|
|
} else {
|
|
/**
|
|
* 유효성 검사를 통과한 경우입니다.
|
|
* 즉 데이터의 insert 나 update 의 process 처리가 필요한 상황입니다
|
|
*/
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['formruntrue'] = Events::trigger('formruntrue', $eventname);
|
|
|
|
/**
|
|
* Email 라이브러리를 가져옵니다
|
|
*/
|
|
$this->load->library('email');
|
|
|
|
$where = array();
|
|
$dormant_days = $this->cbconfig->item('member_dormant_days') ? $this->cbconfig->item('member_dormant_days') : 365;
|
|
$email_days = $this->cbconfig->item('member_dormant_auto_email_days') ? $this->cbconfig->item('member_dormant_auto_email_days') : 365;
|
|
$gap = $dormant_days * 24 * 60 * 60;
|
|
$email_gap = $email_days * 24 * 60 * 60;
|
|
$lastlogin = ctimestamp() - $gap + $email_gap;
|
|
$lastlogin_datetime = cdate('Y-m-d H:i:s', $lastlogin);
|
|
$result = $this->Member_dormant_notify_model->get_unsent_email_member($lastlogin_datetime);
|
|
if ($result) {
|
|
foreach ($result as $value) {
|
|
$mem_id = element('mem_id', $value);
|
|
// 메일 발송하기
|
|
|
|
$searchconfig = array(
|
|
'{홈페이지명}',
|
|
'{회사명}',
|
|
'{홈페이지주소}',
|
|
'{회원아이디}',
|
|
'{회원닉네임}',
|
|
'{회원실명}',
|
|
'{회원이메일}',
|
|
'{메일수신여부}',
|
|
'{쪽지수신여부}',
|
|
'{문자수신여부}',
|
|
'{최종로그인시간}',
|
|
'{정리예정날짜}',
|
|
'{정리기준}',
|
|
'{정리방법}',
|
|
);
|
|
$receive_email = element('mem_receive_email', $value) ? '동의' : '거부';
|
|
$receive_note = element('mem_use_note', $value) ? '동의' : '거부';
|
|
$receive_sms = element('mem_receive_sms', $value) ? '동의' : '거부';
|
|
$dormant_timestamp = strtotime(element('mem_lastlogin_datetime', $value)) + ($this->cbconfig->item('member_dormant_days') * 24 * 60 * 60);
|
|
$dormant_date = cdate('Y년 m월 d일', $dormant_timestamp);
|
|
$dormant_datetime = cdate('Y-m-d H:i:s', $dormant_timestamp);
|
|
$replaceconfig = array(
|
|
$this->cbconfig->item('site_title'),
|
|
$this->cbconfig->item('company_name'),
|
|
site_url(),
|
|
element('mem_userid', $value),
|
|
element('mem_nickname', $value),
|
|
element('mem_username', $value),
|
|
element('mem_email', $value),
|
|
$receive_email,
|
|
$receive_note,
|
|
$receive_sms,
|
|
cdate('Y년 m월 d일 H시 i분', strtotime(element('mem_lastlogin_datetime', $value))),
|
|
$dormant_date,
|
|
$this->dormant_days_text[$this->cbconfig->item('member_dormant_days')],
|
|
($this->cbconfig->item('member_dormant_method') === 'delete' ? '삭제' : '별도의 저장소에 보관'),
|
|
);
|
|
$replaceconfig_escape = array(
|
|
html_escape($this->cbconfig->item('site_title')),
|
|
html_escape($this->cbconfig->item('company_name')),
|
|
site_url(),
|
|
html_escape(element('mem_userid', $value)),
|
|
html_escape(element('mem_nickname', $value)),
|
|
html_escape(element('mem_username', $value)),
|
|
html_escape(element('mem_email', $value)),
|
|
$receive_email,
|
|
$receive_note,
|
|
$receive_sms,
|
|
cdate('Y년 m월 d일 H시 i분', strtotime(element('mem_lastlogin_datetime', $value))),
|
|
$dormant_date,
|
|
$this->dormant_days_text[$this->cbconfig->item('member_dormant_days')],
|
|
($this->cbconfig->item('member_dormant_method') === 'delete' ? '삭제' : '별도의 저장소에 보관'),
|
|
);
|
|
|
|
$title = str_replace(
|
|
$searchconfig,
|
|
$replaceconfig,
|
|
$this->cbconfig->item('send_email_dormant_notify_user_title')
|
|
);
|
|
$content = str_replace(
|
|
$searchconfig,
|
|
$replaceconfig_escape,
|
|
$this->cbconfig->item('send_email_dormant_notify_user_content')
|
|
);
|
|
|
|
$this->email->clear(true);
|
|
$this->email->from($this->cbconfig->item('webmaster_email'), $this->cbconfig->item('webmaster_name'));
|
|
$this->email->to(element('mem_email', $value));
|
|
$this->email->subject($title);
|
|
$this->email->message($content);
|
|
$this->email->send();
|
|
|
|
$insertdata = array(
|
|
'mem_id' => element('mem_id', $value),
|
|
'mem_userid' => element('mem_userid', $value),
|
|
'mem_email' => element('mem_email', $value),
|
|
'mem_username' => element('mem_username', $value),
|
|
'mem_nickname' => element('mem_nickname', $value),
|
|
'mem_register_datetime' => element('mem_register_datetime', $value),
|
|
'mem_lastlogin_datetime' => element('mem_lastlogin_datetime', $value),
|
|
'mdn_dormant_datetime' => $dormant_datetime,
|
|
'mdn_dormant_notify_datetime' => cdate('Y-m-d H:i:s'),
|
|
);
|
|
$this->Member_dormant_notify_model->insert($insertdata);
|
|
|
|
}
|
|
exit(json_encode(array('success' => 'ok', 'message' => '메일발송이 완료되었습니다')));
|
|
} else {
|
|
exit(json_encode(array('success' => 'fail', 'message' => '메일발송할 대상이 없습니다')));
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 휴면대상에게 보낼 안내메일내용을 관리합니다
|
|
*/
|
|
public function emailcontent()
|
|
{
|
|
// 이벤트 라이브러리를 로딩합니다
|
|
$eventname = 'event_admin_config_dormant_emailcontent';
|
|
$this->load->event($eventname);
|
|
|
|
$view = array();
|
|
$view['view'] = array();
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['before'] = Events::trigger('before', $eventname);
|
|
|
|
/**
|
|
* Validation 라이브러리를 가져옵니다
|
|
*/
|
|
$this->load->library('form_validation');
|
|
|
|
/**
|
|
* 모델을 로딩합니다
|
|
*/
|
|
$this->load->model('Config_model');
|
|
|
|
/**
|
|
* Editor 헬퍼를 가져옵니다
|
|
*/
|
|
$this->load->helper('dhtml_editor');
|
|
|
|
/**
|
|
* 전송된 데이터의 유효성을 체크합니다
|
|
*/
|
|
$config = array(
|
|
array(
|
|
'field' => 'is_submit',
|
|
'label' => '전송',
|
|
'rules' => 'trim|numeric',
|
|
),
|
|
array(
|
|
'field' => 'send_email_dormant_notify_user_title',
|
|
'label' => '발송메일 제목',
|
|
'rules' => 'trim|required',
|
|
),
|
|
array(
|
|
'field' => 'send_email_dormant_notify_user_content',
|
|
'label' => '발송메일 내용',
|
|
'rules' => 'trim|required',
|
|
),
|
|
);
|
|
$this->form_validation->set_rules($config);
|
|
|
|
/**
|
|
* 유효성 검사를 하지 않는 경우, 또는 유효성 검사에 실패한 경우입니다.
|
|
* 즉 글쓰기나 수정 페이지를 보고 있는 경우입니다
|
|
*/
|
|
if ($this->form_validation->run() === false) {
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['formrunfalse'] = Events::trigger('formrunfalse', $eventname);
|
|
|
|
} else {
|
|
/**
|
|
* 유효성 검사를 통과한 경우입니다.
|
|
* 즉 데이터의 insert 나 update 의 process 처리가 필요한 상황입니다
|
|
*/
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['formruntrue'] = Events::trigger('formruntrue', $eventname);
|
|
|
|
$array = array(
|
|
'send_email_dormant_notify_user_title', 'send_email_dormant_notify_user_content'
|
|
);
|
|
foreach ($array as $value) {
|
|
$savedata[$value] = $this->input->post($value, null, '');
|
|
}
|
|
$this->Config_model->save($savedata);
|
|
$view['view']['alert_message'] = '이메일변경시인증메일 발송양식 설정이 저장되었습니다';
|
|
}
|
|
|
|
$getdata = $this->Config_model->get_all_meta();
|
|
$view['view']['data'] = $getdata;
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
|
|
|
|
/**
|
|
* 어드민 레이아웃을 정의합니다
|
|
*/
|
|
$layoutconfig = array('layout' => 'layout', 'skin' => 'emailcontent');
|
|
$view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
|
|
$this->data = $view;
|
|
$this->layout = element('layout_skin_file', element('layout', $view));
|
|
$this->view = element('view_skin_file', element('layout', $view));
|
|
}
|
|
|
|
/**
|
|
* 안내메일 발송내역을 확인하는 페이지입니다
|
|
*/
|
|
public function emailsendlist()
|
|
{
|
|
// 이벤트 라이브러리를 로딩합니다
|
|
$eventname = 'event_admin_member_dormant_emailsendlist';
|
|
$this->load->event($eventname);
|
|
|
|
$view = array();
|
|
$view['view'] = array();
|
|
|
|
/**
|
|
* 모델을 로딩합니다
|
|
*/
|
|
$this->load->model('Member_dormant_notify_model');
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['before'] = Events::trigger('before', $eventname);
|
|
|
|
/**
|
|
* 페이지에 숫자가 아닌 문자가 입력되거나 1보다 작은 숫자가 입력되면 에러 페이지를 보여줍니다.
|
|
*/
|
|
$param =& $this->querystring;
|
|
$page = (((int) $this->input->get('page')) > 0) ? ((int) $this->input->get('page')) : 1;
|
|
$view['view']['sort'] = array(
|
|
'mem_id' => $param->sort('mem_id', 'asc'),
|
|
'mem_userid' => $param->sort('mem_userid', 'asc'),
|
|
'mem_username' => $param->sort('mem_username', 'asc'),
|
|
'mem_nickname' => $param->sort('mem_nickname', 'asc'),
|
|
'mem_email' => $param->sort('mem_email', 'asc'),
|
|
'mem_register_datetime' => $param->sort('mem_register_datetime', 'asc'),
|
|
'mem_lastlogin_datetime' => $param->sort('mem_lastlogin_datetime', 'asc'),
|
|
'mdn_dormant_datetime' => $param->sort('mdn_dormant_datetime', 'asc'),
|
|
'mdn_dormant_notify_datetime' => $param->sort('mdn_dormant_notify_datetime', 'asc'),
|
|
);
|
|
$findex = $this->input->get('findex', null, 'mdn_id');
|
|
$forder = $this->input->get('forder', null, 'desc');
|
|
$sfield = $this->input->get('sfield', null, '');
|
|
$skeyword = $this->input->get('skeyword', null, '');
|
|
|
|
$per_page = admin_listnum();
|
|
$offset = ($page - 1) * $per_page;
|
|
|
|
/**
|
|
* 게시판 목록에 필요한 정보를 가져옵니다.
|
|
*/
|
|
$this->Member_model->allow_search_field = array('mdn_id', 'mem_id', 'mem_userid', 'mem_email', 'mem_username', 'mem_nickname', 'mem_register_datetime', 'mem_lastlogin_datetime', 'mdn_dormant_datetime', 'mdn_dormant_notify_datetime'); // 검색이 가능한 필드
|
|
$this->Member_model->search_field_equal = array('mdn_id', 'mem_id'); // 검색중 like 가 아닌 = 검색을 하는 필드
|
|
$this->Member_model->allow_order_field = array('mdn_id', 'mem_id', 'mem_userid', 'mem_username', 'mem_nickname', 'mem_email', 'mem_register_datetime', 'mem_lastlogin_datetime', 'mdn_dormant_datetime', 'mdn_dormant_notify_datetime'); // 정렬이 가능한 필드
|
|
|
|
$where = array();
|
|
$result = $this->Member_dormant_notify_model
|
|
->get_admin_list($per_page, $offset, $where, '', $findex, $forder, $sfield, $skeyword);
|
|
$list_num = $result['total_rows'] - ($page - 1) * $per_page;
|
|
|
|
if (element('list', $result)) {
|
|
foreach (element('list', $result) as $key => $val) {
|
|
$result['list'][$key]['num'] = $list_num--;
|
|
}
|
|
}
|
|
$view['view']['data'] = $result;
|
|
|
|
/**
|
|
* primary key 정보를 저장합니다
|
|
*/
|
|
$view['view']['primary_key'] = $this->Member_model->primary_key;
|
|
|
|
/**
|
|
* 페이지네이션을 생성합니다
|
|
*/
|
|
$config['base_url'] = admin_url($this->pagedir) . '/emailsendlist?' . $param->replace('page');
|
|
$config['total_rows'] = $result['total_rows'];
|
|
$config['per_page'] = $per_page;
|
|
$this->pagination->initialize($config);
|
|
$view['view']['paging'] = $this->pagination->create_links();
|
|
$view['view']['page'] = $page;
|
|
|
|
/**
|
|
* 쓰기 주소, 삭제 주소등 필요한 주소를 구합니다
|
|
*/
|
|
$search_option = array('mem_userid' => '회원아이디', 'mem_email' => '이메일', 'mem_username' => '회원명', 'mem_nickname' => '닉네임', 'mem_register_datetime' => '회원가입날짜', 'mem_lastlogin_datetime' => '최종로그인날짜', 'mdn_dormant_datetime' => '전환예정일', 'mdn_dormant_notify_datetime' => '메일발송날짜');
|
|
$view['view']['skeyword'] = ($sfield && array_key_exists($sfield, $search_option)) ? $skeyword : '';
|
|
$view['view']['search_option'] = search_option($search_option, $sfield);
|
|
$view['view']['listall_url'] = admin_url($this->pagedir . '/emailsendlist');
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
|
|
|
|
/**
|
|
* 어드민 레이아웃을 정의합니다
|
|
*/
|
|
$layoutconfig = array('layout' => 'layout', 'skin' => 'emailsendlist');
|
|
$view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
|
|
$this->data = $view;
|
|
$this->layout = element('layout_skin_file', element('layout', $view));
|
|
$this->view = element('view_skin_file', element('layout', $view));
|
|
}
|
|
|
|
/**
|
|
* 휴면처리 해야할 회원 목록을 가져오는 메소드입니다
|
|
*/
|
|
public function waitinglist()
|
|
{
|
|
// 이벤트 라이브러리를 로딩합니다
|
|
$eventname = 'event_admin_member_dormant_waitinglist';
|
|
$this->load->event($eventname);
|
|
|
|
$view = array();
|
|
$view['view'] = array();
|
|
|
|
/**
|
|
* 모델을 로딩합니다
|
|
*/
|
|
$this->load->model(array('Member_dormant_notify_model', 'Member_meta_model'));
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['before'] = Events::trigger('before', $eventname);
|
|
|
|
$view['view']['period_text'] = $this->dormant_days_text[$this->cbconfig->item('member_dormant_days')];
|
|
|
|
if ($this->cbconfig->item('member_dormant_auto_clean')) {
|
|
/**
|
|
* 어드민 레이아웃을 정의합니다
|
|
*/
|
|
$layoutconfig = array('layout' => 'layout', 'skin' => 'waitinglist');
|
|
$view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
|
|
$this->data = $view;
|
|
$this->layout = element('layout_skin_file', element('layout', $view));
|
|
$this->view = element('view_skin_file', element('layout', $view));
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* 페이지에 숫자가 아닌 문자가 입력되거나 1보다 작은 숫자가 입력되면 에러 페이지를 보여줍니다.
|
|
*/
|
|
$param =& $this->querystring;
|
|
$page = (((int) $this->input->get('page')) > 0) ? ((int) $this->input->get('page')) : 1;
|
|
$view['view']['sort'] = array(
|
|
'mem_id' => $param->sort('mem_id', 'asc'),
|
|
'mem_userid' => $param->sort('mem_userid', 'asc'),
|
|
'mem_username' => $param->sort('mem_username', 'asc'),
|
|
'mem_nickname' => $param->sort('mem_nickname', 'asc'),
|
|
'mem_email' => $param->sort('mem_email', 'asc'),
|
|
'mem_point' => $param->sort('mem_point', 'asc'),
|
|
'mem_register_datetime' => $param->sort('mem_register_datetime', 'asc'),
|
|
'mem_lastlogin_datetime' => $param->sort('mem_lastlogin_datetime', 'asc'),
|
|
'mem_level' => $param->sort('mem_level', 'asc'),
|
|
);
|
|
$findex = $this->input->get('findex', null, 'member.mem_id');
|
|
$forder = $this->input->get('forder', null, 'desc');
|
|
$sfield = $this->input->get('sfield', null, '');
|
|
$skeyword = $this->input->get('skeyword', null, '');
|
|
|
|
$per_page = admin_listnum();
|
|
$offset = ($page - 1) * $per_page;
|
|
|
|
/**
|
|
* 게시판 목록에 필요한 정보를 가져옵니다.
|
|
*/
|
|
$this->Member_model->allow_search_field = array('mem_id', 'mem_userid', 'mem_email', 'mem_username', 'mem_nickname', 'mem_level', 'mem_homepage', 'mem_register_datetime', 'mem_register_ip', 'mem_lastlogin_datetime', 'mem_lastlogin_ip', 'mem_is_admin'); // 검색이 가능한 필드
|
|
$this->Member_model->search_field_equal = array('mem_id', 'mem_level', 'mem_is_admin'); // 검색중 like 가 아닌 = 검색을 하는 필드
|
|
$this->Member_model->allow_order_field = array('member.mem_id', 'mem_userid', 'mem_username', 'mem_nickname', 'mem_email', 'mem_point', 'mem_register_datetime', 'mem_lastlogin_datetime', 'mem_level'); // 정렬이 가능한 필드
|
|
|
|
$where = array();
|
|
$dormant_days = $this->cbconfig->item('member_dormant_days') ? $this->cbconfig->item('member_dormant_days') : 365;
|
|
$gap = $dormant_days * 24 * 60 * 60;
|
|
$lastlogin = ctimestamp() - $gap;
|
|
$lastlogin_datetime = cdate('Y-m-d H:i:s', $lastlogin);
|
|
$where['mem_lastlogin_datetime <='] = $lastlogin_datetime;
|
|
$where['mem_register_datetime <='] = $lastlogin_datetime;
|
|
$result = $this->Member_model
|
|
->get_admin_list($per_page, $offset, $where, '', $findex, $forder, $sfield, $skeyword);
|
|
$list_num = $result['total_rows'] - ($page - 1) * $per_page;
|
|
|
|
if (element('list', $result)) {
|
|
foreach (element('list', $result) as $key => $val) {
|
|
$where = array(
|
|
'mem_id' => element('mem_id', $val),
|
|
);
|
|
$result['list'][$key]['display_name'] = display_username(
|
|
element('mem_userid', $val),
|
|
element('mem_nickname', $val),
|
|
element('mem_icon', $val)
|
|
);
|
|
$result['list'][$key]['meta'] = $this->Member_meta_model->get_all_meta(element('mem_id', $val));
|
|
|
|
$result['list'][$key]['mdn_dormant_notify_datetime'] = '';
|
|
$notify_where = array(
|
|
'mem_id' => element('mem_id', $val),
|
|
);
|
|
$notify = $this->Member_dormant_notify_model->get('', '', $notify_where);
|
|
if ($notify && is_array($notify)) {
|
|
foreach ($notify as $nval) {
|
|
$result['list'][$key]['mdn_dormant_notify_datetime'] .= display_datetime(element('mdn_dormant_notify_datetime', $nval), 'full') . '<br />';
|
|
}
|
|
}
|
|
$lastloginday = new DateTime(substr(element('mem_lastlogin_datetime', $val), 0, 10));
|
|
$today = new DateTime(cdate('Y-m-d'));
|
|
$date_diff = date_diff($lastloginday, $today);
|
|
$result['list'][$key]['daygap'] = $date_diff->days;
|
|
|
|
$result['list'][$key]['num'] = $list_num--;
|
|
}
|
|
}
|
|
$view['view']['data'] = $result;
|
|
|
|
/**
|
|
* primary key 정보를 저장합니다
|
|
*/
|
|
$view['view']['primary_key'] = $this->Member_model->primary_key;
|
|
|
|
/**
|
|
* 페이지네이션을 생성합니다
|
|
*/
|
|
$config['base_url'] = admin_url($this->pagedir) . '/waitinglist?' . $param->replace('page');
|
|
$config['total_rows'] = $result['total_rows'];
|
|
$config['per_page'] = $per_page;
|
|
$this->pagination->initialize($config);
|
|
$view['view']['paging'] = $this->pagination->create_links();
|
|
$view['view']['page'] = $page;
|
|
|
|
/**
|
|
* 쓰기 주소, 삭제 주소등 필요한 주소를 구합니다
|
|
*/
|
|
$search_option = array('mem_userid' => '회원아이디', 'mem_email' => '이메일', 'mem_username' => '회원명', 'mem_nickname' => '닉네임', 'mem_level' => '회원레벨', 'mem_homepage' => '홈페이지', 'mem_register_datetime' => '회원가입날짜', 'mem_register_ip' => '회원가입IP', 'mem_lastlogin_datetime' => '최종로그인날짜', 'mem_lastlogin_ip' => '최종로그인IP', 'mem_adminmemo' => '관리자메모');
|
|
$view['view']['skeyword'] = ($sfield && array_key_exists($sfield, $search_option)) ? $skeyword : '';
|
|
$view['view']['search_option'] = search_option($search_option, $sfield);
|
|
$view['view']['listall_url'] = admin_url($this->pagedir . '/waitinglist');
|
|
$view['view']['list_update_url'] = admin_url($this->pagedir . '/waitinglist_listupdate/?' . $param->output());
|
|
$view['view']['list_delete_url'] = admin_url($this->pagedir . '/waitinglist_listdelete/?' . $param->output());
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
|
|
|
|
/**
|
|
* 어드민 레이아웃을 정의합니다
|
|
*/
|
|
$layoutconfig = array('layout' => 'layout', 'skin' => 'waitinglist');
|
|
$view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
|
|
$this->data = $view;
|
|
$this->layout = element('layout_skin_file', element('layout', $view));
|
|
$this->view = element('view_skin_file', element('layout', $view));
|
|
}
|
|
|
|
/**
|
|
* 휴면처리해야할 회원을 별도의 저장소로 보관하는 경우 실행되는 메소드입니다
|
|
*/
|
|
public function waitinglist_listupdate()
|
|
{
|
|
// 이벤트 라이브러리를 로딩합니다
|
|
$eventname = 'event_admin_member_dormant_waitinglist_listupdate';
|
|
$this->load->event($eventname);
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
Events::trigger('before', $eventname);
|
|
|
|
/**
|
|
* 체크한 게시물의 삭제를 실행합니다
|
|
*/
|
|
if ($this->input->post('chk') && is_array($this->input->post('chk'))) {
|
|
foreach ($this->input->post('chk') as $val) {
|
|
if ($val) {
|
|
$this->member->archive_to_dormant($val);
|
|
}
|
|
}
|
|
}
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
Events::trigger('after', $eventname);
|
|
|
|
/**
|
|
* 삭제가 끝난 후 목록페이지로 이동합니다
|
|
*/
|
|
$this->session->set_flashdata(
|
|
'message',
|
|
'정상적으로 별도의 보관소로 이동되었습니다'
|
|
);
|
|
$param =& $this->querystring;
|
|
$redirecturl = admin_url($this->pagedir . '/waitinglist?' . $param->output());
|
|
|
|
redirect($redirecturl);
|
|
}
|
|
|
|
/**
|
|
* 휴면처리해야할 회원을 영구삭제한 경우 실행되는 메소드입니다
|
|
*/
|
|
public function waitinglist_listdelete()
|
|
{
|
|
// 이벤트 라이브러리를 로딩합니다
|
|
$eventname = 'event_admin_member_dormant_waitinglist_listdelete';
|
|
$this->load->event($eventname);
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
Events::trigger('before', $eventname);
|
|
|
|
/**
|
|
* 체크한 게시물의 삭제를 실행합니다
|
|
*/
|
|
if ($this->input->post('chk') && is_array($this->input->post('chk'))) {
|
|
foreach ($this->input->post('chk') as $val) {
|
|
if ($val) {
|
|
$this->member->delete_member($val);
|
|
}
|
|
}
|
|
}
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
Events::trigger('after', $eventname);
|
|
|
|
/**
|
|
* 삭제가 끝난 후 목록페이지로 이동합니다
|
|
*/
|
|
$this->session->set_flashdata(
|
|
'message',
|
|
'선택한 회원이 영구 삭제되었습니다'
|
|
);
|
|
$param =& $this->querystring;
|
|
$redirecturl = admin_url($this->pagedir . '/waitinglist?' . $param->output());
|
|
|
|
redirect($redirecturl);
|
|
}
|
|
|
|
/**
|
|
* 휴면처리 해야할 회원 목록을 가져오는 메소드입니다
|
|
*/
|
|
public function dormantlist()
|
|
{
|
|
// 이벤트 라이브러리를 로딩합니다
|
|
$eventname = 'event_admin_member_dormant_dormantlist';
|
|
$this->load->event($eventname);
|
|
|
|
$view = array();
|
|
$view['view'] = array();
|
|
|
|
// 모델을 로딩합니다
|
|
$this->load->model(array('Member_dormant_model', 'Member_meta_model'));
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['before'] = Events::trigger('before', $eventname);
|
|
|
|
$view['view']['period_text'] = $this->dormant_days_text[$this->cbconfig->item('member_dormant_days')];
|
|
|
|
/**
|
|
* 페이지에 숫자가 아닌 문자가 입력되거나 1보다 작은 숫자가 입력되면 에러 페이지를 보여줍니다.
|
|
*/
|
|
$param =& $this->querystring;
|
|
$page = (((int) $this->input->get('page')) > 0) ? ((int) $this->input->get('page')) : 1;
|
|
$view['view']['sort'] = array(
|
|
'mem_id' => $param->sort('mem_id', 'asc'),
|
|
'mem_userid' => $param->sort('mem_userid', 'asc'),
|
|
'mem_username' => $param->sort('mem_username', 'asc'),
|
|
'mem_nickname' => $param->sort('mem_nickname', 'asc'),
|
|
'mem_email' => $param->sort('mem_email', 'asc'),
|
|
'mem_point' => $param->sort('mem_point', 'asc'),
|
|
'mem_register_datetime' => $param->sort('mem_register_datetime', 'asc'),
|
|
'mem_lastlogin_datetime' => $param->sort('mem_lastlogin_datetime', 'asc'),
|
|
'mem_level' => $param->sort('mem_level', 'asc'),
|
|
);
|
|
$findex = $this->input->get('findex', null, 'member_dormant.mem_id');
|
|
$forder = $this->input->get('forder', null, 'desc');
|
|
$sfield = $this->input->get('sfield', null, '');
|
|
$skeyword = $this->input->get('skeyword', null, '');
|
|
|
|
$per_page = admin_listnum();
|
|
$offset = ($page - 1) * $per_page;
|
|
|
|
/**
|
|
* 게시판 목록에 필요한 정보를 가져옵니다.
|
|
*/
|
|
$this->Member_dormant_model->allow_search_field = array('mem_id', 'mem_userid', 'mem_email', 'mem_username', 'mem_nickname', 'mem_level', 'mem_homepage', 'mem_register_datetime', 'mem_register_ip', 'mem_lastlogin_datetime', 'mem_lastlogin_ip', 'mem_is_admin'); // 검색이 가능한 필드
|
|
$this->Member_dormant_model->search_field_equal = array('mem_id', 'mem_level', 'mem_is_admin'); // 검색중 like 가 아닌 = 검색을 하는 필드
|
|
$this->Member_dormant_model->allow_order_field = array('member_dormant.mem_id', 'mem_userid', 'mem_username', 'mem_nickname', 'mem_email', 'mem_point', 'mem_register_datetime', 'mem_lastlogin_datetime', 'mem_level'); // 정렬이 가능한 필드
|
|
|
|
$where = array();
|
|
$dormant_days = $this->cbconfig->item('member_dormant_days') ? $this->cbconfig->item('member_dormant_days') : 365;
|
|
$gap = $dormant_days * 24 * 60 * 60;
|
|
$lastlogin = ctimestamp() - $gap;
|
|
$lastlogin_datetime = cdate('Y-m-d H:i:s', $lastlogin);
|
|
$where['mem_lastlogin_datetime <='] = $lastlogin_datetime;
|
|
$result = $this->Member_dormant_model
|
|
->get_admin_list($per_page, $offset, $where, '', $findex, $forder, $sfield, $skeyword);
|
|
$list_num = $result['total_rows'] - ($page - 1) * $per_page;
|
|
|
|
if (element('list', $result)) {
|
|
foreach (element('list', $result) as $key => $val) {
|
|
$where = array(
|
|
'mem_id' => element('mem_id', $val),
|
|
);
|
|
$result['list'][$key]['meta'] = $this->Member_meta_model->get_all_meta(element('mem_id', $val));
|
|
|
|
$lastloginday = new DateTime(substr(element('mem_lastlogin_datetime', $val), 0, 10));
|
|
$today = new DateTime(cdate('Y-m-d'));
|
|
$date_diff = date_diff($lastloginday, $today);
|
|
$result['list'][$key]['daygap'] = $date_diff->days;
|
|
|
|
$result['list'][$key]['num'] = $list_num--;
|
|
}
|
|
}
|
|
$view['view']['data'] = $result;
|
|
|
|
/**
|
|
* primary key 정보를 저장합니다
|
|
*/
|
|
$view['view']['primary_key'] = $this->Member_dormant_model->primary_key;
|
|
|
|
/**
|
|
* 페이지네이션을 생성합니다
|
|
*/
|
|
$config['base_url'] = admin_url($this->pagedir) . '/dormantlist?' . $param->replace('page');
|
|
$config['total_rows'] = $result['total_rows'];
|
|
$config['per_page'] = $per_page;
|
|
$this->pagination->initialize($config);
|
|
$view['view']['paging'] = $this->pagination->create_links();
|
|
$view['view']['page'] = $page;
|
|
|
|
/**
|
|
* 쓰기 주소, 삭제 주소등 필요한 주소를 구합니다
|
|
*/
|
|
$search_option = array('mem_userid' => '회원아이디', 'mem_email' => '이메일', 'mem_username' => '회원명', 'mem_nickname' => '닉네임', 'mem_level' => '회원레벨', 'mem_homepage' => '홈페이지', 'mem_register_datetime' => '회원가입날짜', 'mem_register_ip' => '회원가입IP', 'mem_lastlogin_datetime' => '최종로그인날짜', 'mem_lastlogin_ip' => '최종로그인IP', 'mem_adminmemo' => '관리자메모');
|
|
$view['view']['skeyword'] = ($sfield && array_key_exists($sfield, $search_option)) ? $skeyword : '';
|
|
$view['view']['search_option'] = search_option($search_option, $sfield);
|
|
$view['view']['listall_url'] = admin_url($this->pagedir . '/dormantlist');
|
|
$view['view']['list_update_url'] = admin_url($this->pagedir . '/dormantlist_listupdate/?' . $param->output());
|
|
$view['view']['list_delete_url'] = admin_url($this->pagedir . '/dormantlist_listdelete/?' . $param->output());
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
$view['view']['event']['before_layout'] = Events::trigger('before_layout', $eventname);
|
|
|
|
/**
|
|
* 어드민 레이아웃을 정의합니다
|
|
*/
|
|
$layoutconfig = array('layout' => 'layout', 'skin' => 'dormantlist');
|
|
$view['layout'] = $this->managelayout->admin($layoutconfig, $this->cbconfig->get_device_view_type());
|
|
$this->data = $view;
|
|
$this->layout = element('layout_skin_file', element('layout', $view));
|
|
$this->view = element('view_skin_file', element('layout', $view));
|
|
}
|
|
|
|
/**
|
|
* 별도의 저장소에 보관되어있는 휴면중인 회원을 복원하는 경우 실행되는 메소드입니다
|
|
*/
|
|
public function dormantlist_listupdate()
|
|
{
|
|
// 이벤트 라이브러리를 로딩합니다
|
|
$eventname = 'event_admin_member_dormant_dormantlist_listupdate';
|
|
$this->load->event($eventname);
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
Events::trigger('before', $eventname);
|
|
|
|
/**
|
|
* 체크한 게시물의 삭제를 실행합니다
|
|
*/
|
|
if ($this->input->post('chk') && is_array($this->input->post('chk'))) {
|
|
foreach ($this->input->post('chk') as $val) {
|
|
if ($val) {
|
|
$this->member->recover_from_dormant($val);
|
|
}
|
|
}
|
|
}
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
Events::trigger('after', $eventname);
|
|
|
|
/**
|
|
* 삭제가 끝난 후 목록페이지로 이동합니다
|
|
*/
|
|
$this->session->set_flashdata(
|
|
'message',
|
|
'정상적으로 복원되었습니다'
|
|
);
|
|
$param =& $this->querystring;
|
|
$redirecturl = admin_url($this->pagedir . '/dormantlist?' . $param->output());
|
|
|
|
redirect($redirecturl);
|
|
}
|
|
|
|
/**
|
|
* 휴면중인 회원을 영구삭제한 경우 실행되는 메소드입니다
|
|
*/
|
|
public function dormantlist_listdelete()
|
|
{
|
|
// 이벤트 라이브러리를 로딩합니다
|
|
$eventname = 'event_admin_member_dormant_dormantlist_listdelete';
|
|
$this->load->event($eventname);
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
Events::trigger('before', $eventname);
|
|
|
|
/**
|
|
* 체크한 게시물의 삭제를 실행합니다
|
|
*/
|
|
if ($this->input->post('chk') && is_array($this->input->post('chk'))) {
|
|
foreach ($this->input->post('chk') as $val) {
|
|
if ($val) {
|
|
$this->member->delete_member($val);
|
|
}
|
|
}
|
|
}
|
|
|
|
// 이벤트가 존재하면 실행합니다
|
|
Events::trigger('after', $eventname);
|
|
|
|
/**
|
|
* 삭제가 끝난 후 목록페이지로 이동합니다
|
|
*/
|
|
$this->session->set_flashdata(
|
|
'message',
|
|
'선택한 회원이 영구 삭제되었습니다'
|
|
);
|
|
$param =& $this->querystring;
|
|
$redirecturl = admin_url($this->pagedir . '/dormantlist?' . $param->output());
|
|
|
|
redirect($redirecturl);
|
|
}
|
|
|
|
|
|
}
|