Server : Apache/2.4.58 (Ubuntu) System : Linux yumsem00.cafe24.com 5.4.0-131-generic #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 x86_64 User : root ( 0) PHP Version : 8.2.14 Disable Function : NONE Directory : /var/www/html/wp-content/plugins/kboard-comments/class/ |
Upload File : |
<?php /** * KBoard 워드프레스 게시판 댓글 빌더 * @link www.cosmosfarm.com * @copyright Copyright 2021 Cosmosfarm. All rights reserved. * @license http://www.gnu.org/licenses/gpl.html */ class KBCommentsBuilder { var $board; var $board_id; var $content_uid; var $skin; var $skin_name; var $permission_comment_write; public function __construct(){ global $kboard_comment_builder; $kboard_comment_builder = $this; $this->setSkin('default'); } /** * 스킨을 지정한다. * @param string $skin_name * @return KBCommentsBuilder */ public function setSkin($skin_name){ $this->skin = KBCommentSkin::getInstance(); $this->skin_name = $skin_name; return $this; } /** * 댓글창 화면을 생성한다. * @return string */ public function create(){ if(!$this->content_uid) return 'KBoard 댓글 알림 :: content_uid=null, content_uid값은 필수 입니다.'; $current_user = wp_get_current_user(); $commentList = new KBCommentList($this->content_uid); $commentList->board = $this->board; $url = new KBUrl(); $url->setBoard($this->board); $comment_url = new KBCommentUrl(); $comment_url->setBoard($this->board); $vars = array( 'content_uid' => $this->content_uid, 'commentList' => $commentList, 'temporary' => kboard_comments_get_temporary(), 'url' => $url, 'commentURL' => $comment_url, 'member_uid' => $current_user->ID, 'member_display' => $current_user->display_name, 'skin_path' => $this->skin->url($this->skin_name), 'skin_dir' => $this->skin->dir($this->skin_name), 'board' => $this->board, 'commentBuilder' => $this, ); do_action('kboard_comments_skin_header', $this); echo $this->skin->load($this->skin_name, 'list.php', $vars); do_action('kboard_comments_skin_footer', $this); } /** * 댓글 리스트 트리를 생성한다. * @param string $template * @param int $parent_uid * @param int $depth */ public function buildTreeList($template, $parent_uid='', $depth=0){ $current_user = wp_get_current_user(); $commentList = new KBCommentList(); $commentList->board = $this->board; if($parent_uid){ $commentList->initWithParentUID($parent_uid); } else{ $commentList->initWithUID($this->content_uid); } $url = new KBUrl(); $url->setBoard($this->board); $comment_url = new KBCommentUrl(); $comment_url->setBoard($this->board); $vars = array( 'content_uid' => $this->content_uid, 'commentList' => $commentList, 'depth' => $depth, 'url' => $url, 'commentURL' => $comment_url, 'member_uid' => $current_user->ID, 'member_display' => $current_user->display_name, 'skin_path' => $this->skin->url($this->skin_name), 'skin_dir' => $this->skin->dir($this->skin_name), 'board' => $this->board, 'commentBuilder' => $this, ); echo $this->skin->load($this->skin_name, $template, $vars); } /** * 댓글 쓰기 권한이 있는 사용자인지 확인한다. * @return boolean */ public function isWriter(){ $is_writer = false; if(!$this->permission_comment_write){ $is_writer = true; } else if(is_user_logged_in()){ if($this->permission_comment_write == '1'){ $is_writer = true; } else if($this->board->isAdmin()){ $is_writer = true; } else if($this->permission_comment_write == 'roles'){ if(array_intersect($this->board->getCommentRoles(), kboard_current_user_roles())){ $is_writer = true; } } } return apply_filters('kboard_comments_is_writer', $is_writer, $this); } }