HEX
Server: Apache/2.4.54 (Debian)
System: Linux f988254d8f22 6.8.0-87-generic #88~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct 14 14:03:14 UTC 2 x86_64
User: (1000)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/kboard-widget/class/KBoardWidget.class.php
<?php
/**
 * KBoard 위젯
 * @link http://www.cosmosfarm.com
 * @copyright Copyright 2017 Cosmosfarm. All rights reserved.
 */
final class KBoardWidget extends WP_Widget {
	
	public function __construct(){
		parent::__construct('kboard_widget', 'KBoard 위젯', array(
			'classname' => 'kboard_widget',
			'description' => '최신글, 최신댓글, 추천글, 인기글, 공지사항, 내가쓴글, 내가쓴댓글로 구성된 탭 위젯입니다.',
		));
	}
	
	public function widget($args, $instance){
		
		echo $args['before_widget'];
		
		if(isset($instance['title'])){
			echo $args['before_title'] . apply_filters('widget_title', $instance['title']) . $args['after_title'];
		}
		
		$tab = (isset($instance['tab']))?strip_tags($instance['tab']):'';
		$tab_sep = $tab ? explode(',' , $tab) : array();
		
		$skin_style = (isset($instance['skin']))?strip_tags($instance['skin']):'';
		$limit = (isset($instance['limit'])&&intval($instance['limit'])>0)?intval($instance['limit']):5;
		$exclude = (isset($instance['exclude']))?esc_sql($instance['exclude']) : '';
		$with_notice = (isset($instance['with_notice']))?strip_tags($instance['with_notice']):'';
		
		$list = new KBoardWidgetList();
		
		wp_enqueue_script('kboard-widget-script', KBOARD_WIDGET_URL . "/skin/{$skin_style}/script.js", array(), KBOARD_WIDGET_VERSION);
		wp_enqueue_style('kboard-widget-style', KBOARD_WIDGET_URL . "/skin/{$skin_style}/style.css", array(), KBOARD_WIDGET_VERSION);
		
		$skin_path = KBOARD_WIDGET_URL . "/skin/{$skin_style}";
		
		if(file_exists(KBOARD_WIDGET_DIR_PATH . "/skin/{$skin_style}/list.php")){
			include KBOARD_WIDGET_DIR_PATH . "/skin/{$skin_style}/list.php";
		}
		
		echo $args['after_widget'];
	}
	
	public function form($instance){
		$tab_list = apply_filters('kboard_widget_tab_list', array('latest', 'comment', 'vote', 'view', 'notice', 'my_post', 'my_comment'));
		
		$title = (isset($instance['title']))?$instance['title']:'';
		$limit = (isset($instance['limit']))&&$instance['limit']>0?$instance['limit']:'5';
		$exclude = (isset($instance['exclude']))?$instance['exclude']:'';
		$tab = (isset($instance['tab']))?$instance['tab']:'';
		$tab_sep = $tab ? explode(',' , $tab) : array();
		$skin_style = (isset($instance['skin']))?$instance['skin']:'';
		$with_notice = (isset($instance['with_notice']))?$instance['with_notice']:'0';
		
		$dir = KBOARD_WIDGET_DIR_PATH . '/skin';
		if($dh = @opendir($dir)){
			while(($name = readdir($dh)) !== false){
				if($name == "." || $name == ".." || $name == "readme.txt") continue;
				$skin = new stdClass();
				$skin->name = $name;
				$skin->dir = KBOARD_WIDGET_DIR_PATH . "/skin/{$name}";
				$skin->url = KBOARD_WIDGET_URL . "/skin/{$name}";
				$list[$name] = $skin;
			}
		}
		closedir($dh);
		
		$list = apply_filters('kboard_widget_skin_list', $list);
		
		wp_enqueue_script('kboard-widget-admin-script', KBOARD_WIDGET_URL . "/admin/admin.js", array(), KBOARD_WIDGET_VERSION);
		wp_enqueue_style('kboard-widget-admin-style', KBOARD_WIDGET_URL . "/admin/admin.css", array(), KBOARD_WIDGET_VERSION);
		
		include KBOARD_WIDGET_DIR_PATH . '/admin/setting.php';
	}
	
	public function update($new_instance, $old_instance){
		$instance = array();
		$instance['title'] = (isset($new_instance['title']))?strip_tags($new_instance['title']):'';
		$instance['limit'] = (isset($new_instance['limit']))?intval($new_instance['limit']):'';
		$instance['exclude'] = (isset($new_instance['exclude']))?strip_tags($new_instance['exclude']):'';
		$instance['tab'] = (isset($new_instance['tab']))?strip_tags($new_instance['tab']):'';
		$instance['skin'] = (isset($new_instance['skin']))?strip_tags($new_instance['skin']):'';
		$instance['with_notice'] = (isset($new_instance['with_notice']))?intval($new_instance['with_notice']):'';
		
		return $instance;
	}
}
?>