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,191 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
* Notelib class
*
* Copyright (c) CIBoard <www.ciboard.co.kr>
*
* @author CIBoard (develop@ciboard.co.kr)
*/
/**
* 쪽지 발송을 관리하는 class 입니다.
*/
class Notelib extends CI_Controller
{
private $CI;
function __construct()
{
$this->CI = & get_instance();
$this->CI->load->model( array('Note_model', 'Member_meta_model'));
$this->CI->load->helper( array('array'));
}
/**
* 쪽지를 발송하는 함수입니다
*/
public function send_note($sender = '', $receiver = '', $title = '', $content = '', $content_type = '', $originfilename = '', $uploadfilename = '')
{
// 포인트 사용을 하지 않는다면 return
if ( ! $this->CI->cbconfig->item('use_note')) {
$result = json_encode( array('error' => '쪽지를 사용하지 않는 사이트입니다'));
return $result;
}
if ($sender && ! is_numeric($sender)) {
$result = json_encode( array('error' => '보내는 이가 잘못되었습니다'));
return $result;
}
if (empty($sender)) {
$sender = 0; // 사이트 관리자가 보낸 경우임
}
if (empty($receiver)) {
$result = json_encode( array('error' => '받는이가 지정되지 않았습니다'));
return $result;
}
if (empty($title)) {
$result = json_encode( array('error' => '쪽지 제목이 존재하지 않습니다'));
return $result;
}
if (empty($content)) {
$result = json_encode( array('error' => '쪽지 내용이 존재하지 않습니다'));
return $result;
}
if ( ! $this->CI->cbconfig->item('use_note_file')) {
if ($originfilename OR $uploadfilename) {
$result = json_encode( array('error' => '쪽지에 첨부파일 기능을 지원하지 않습니다'));
return $result;
}
}
$point_note = $this->CI->cbconfig->item('use_point')
? $this->CI->cbconfig->item('point_note') : 0;
$point_note_file = ($uploadfilename && $this->CI->cbconfig->item('use_point'))
? $this->CI->cbconfig->item('point_note_file') : 0;
$send_member = '';
if ($sender) {
$select = 'mem_id, mem_point, mem_use_note, mem_is_admin, mem_nickname';
$send_member = $this->CI->Member_model->get_by_memid($sender, $select);
if ( ! element('mem_id', $send_member)) {
$result = json_encode( array('error' => '보내는이가 존재하지 않습니다'));
return $result;
}
if ( ! element('mem_use_note', $send_member) && ! element('mem_is_admin', $send_member)) {
$result = json_encode( array('error' => '보내는이가 쪽지기능을 사용하지 않습니다'));
return $result;
}
if ((element('mem_point', $send_member) < $point_note) && $this->CI->member->is_admin() !== 'super') {
$result = json_encode( array('error' => '보유하신 포인트가 모자라 쪽지를 보낼 수 없습니다, 쪽지발송에는 ' . number_format($point_note) . '점이 필요합니다'));
return $result;
}
}
$recv_member = '';
if ($receiver) {
$select = 'mem_id, mem_point, mem_use_note, mem_nickname, mem_denied';
$recv_member = $this->CI->Member_model->get_by_memid($receiver, $select);
if ( ! element('mem_id', $recv_member)) {
$result = json_encode( array('error' => '받는이가 존재하지 않습니다'));
return $result;
}
if (element('mem_denied', $recv_member)) {
$result = json_encode( array('error' => '받는이가 존재하지 않습니다'));
return $result;
}
if ( ! element('mem_use_note', $recv_member)) {
$result = json_encode( array('error' => '받는이가 쪽지기능을 사용하지 않습니다'));
return $result;
}
}
if (empty($content_type)) {
$content_type = 0;
}
$nte_content_html_type = $content_type;
$insertdata = array(
'send_mem_id' => $sender,
'recv_mem_id' => $receiver,
'nte_type' => 1,
'nte_title' => $title,
'nte_content' => $content,
'nte_content_html_type' => $nte_content_html_type,
'nte_datetime' => cdate('Y-m-d H:i:s'),
'nte_originname' => $originfilename,
'nte_filename' => $uploadfilename,
);
$note_id = $this->CI->Note_model->insert($insertdata);
$unread_note_num = $this->CI->Member_meta_model->item($receiver, 'meta_unread_note_num') + 1;
$metadata = array(
'meta_note_received_datetime' => cdate('Y-m-d H:i:s'),
'meta_note_received_from_id' => $sender,
'meta_note_received_from_nickname' => element('mem_nickname', $send_member),
'meta_unread_note_num' => $unread_note_num,
);
$this->CI->Member_meta_model->save($receiver, $metadata);
if ($sender) {
$insertdata = array(
'send_mem_id' => $sender,
'recv_mem_id' => $receiver,
'nte_type' => 2,
'related_note_id' => $note_id,
'nte_title' => $title,
'nte_content' => $content,
'nte_content_html_type' => $nte_content_html_type,
'nte_datetime' => cdate('Y-m-d H:i:s'),
'nte_originname' => $originfilename,
'nte_filename' => $uploadfilename,
);
$note_id2 = $this->CI->Note_model->insert($insertdata);
if ($this->CI->cbconfig->item('use_point') && $point_note && $point_note > 0) {
$point = 0 - $point_note;
$this->CI->load->library('point');
$this->CI->point->insert_point(
$sender,
$point,
element('mem_nickname', $recv_member) . '님께 쪽지 발송',
'note',
$note_id,
$note_id . ' 쪽지 발송'
);
}
if ($this->CI->cbconfig->item('use_point') && $point_note_file && $point_note_file > 0) {
$point = 0 - $point_note_file;
$this->CI->load->library('point');
$this->CI->point->insert_point(
$sender,
$point,
element('mem_nickname', $recv_member) . '님께 발송한 쪽지에 파일첨부',
'note',
$note_id,
$note_id . ' 쪽지 발송 파일첨부'
);
}
}
if ($this->CI->cbconfig->item('use_notification') && $this->CI->cbconfig->item('notification_note')) {
$this->CI->load->library('notificationlib');
$sender_name = $sender ? element('mem_nickname', $send_member) : '알림';
$not_message = $sender_name . '님께서 [' . $title . '] 쪽지를 남기셨습니다';
$not_url = site_url('note/view/recv/' . $note_id);
$return = $this->CI->notificationlib->set_noti(
$receiver,
$sender,
'note',
$note_id,
$not_message,
$not_url
);
}
$result = json_encode( array('success' => element('mem_nickname', $recv_member) . '님께 쪽지를 발송하였습니다'));
return $result;
}
}