Merge branch 'master' of github.com:gnuboard/g5

This commit is contained in:
minsupkr
2020-10-27 15:30:49 +09:00
41 changed files with 166 additions and 73 deletions

View File

@ -77,13 +77,15 @@ if (!isset($board['bo_mobile_subject'])) {
}
if (!isset($board['bo_use_captcha'])) {
sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_use_captcha` TINYINT NOT NULL DEFAULT '0' AFTER `bo_use_sns` ");
sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_use_captcha` TINYINT NOT NULL DEFAULT '0' AFTER `bo_use_sns` ", false);
}
if (!isset($board['bo_select_editor'])) {
sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_select_editor` VARCHAR(50) NOT NULL DEFAULT '' AFTER `bo_use_dhtml_editor` ");
sql_query(" ALTER TABLE `{$g5['board_table']}` ADD `bo_select_editor` VARCHAR(50) NOT NULL DEFAULT '' AFTER `bo_use_dhtml_editor` ", false);
}
run_event('adm_board_form_before', $board, $w);
$required = "";
$readonly = "";
$sound_only = "";

View File

@ -69,5 +69,7 @@ if ($w == '') {
alert('제대로 된 값이 넘어오지 않았습니다.');
}
run_event('admin_boardgroup_form_update', $gr_id, $w);
goto_url('./boardgroup_form.php?w=u&gr_id='.$gr_id.'&'.$qstr);
?>

View File

@ -10,19 +10,23 @@ auth_check($auth[$sub_menu], 'w');
check_admin_token();
$count = count($_POST['chk']);
$post_chk = isset($_POST['chk']) ? (array) $_POST['chk'] : array();
$post_group_id = isset($_POST['group_id']) ? (array) $_POST['group_id'] : array();
$act_button = isset($_POST['act_button']) ? $_POST['act_button'] : '';
$count = count($post_chk);
if(!$count)
alert($_POST['act_button'].'할 게시판그룹을 1개이상 선택해 주세요.');
alert($act_button.'할 게시판그룹을 1개이상 선택해 주세요.');
for ($i=0; $i<$count; $i++)
{
$k = $_POST['chk'][$i];
$gr_id = preg_replace('/[^a-z0-9_]/i', '', $_POST['group_id'][$k]);
$k = $post_chk[$i];
$gr_id = preg_replace('/[^a-z0-9_]/i', '', $post_group_id[$k]);
$gr_subject = is_array($_POST['gr_subject']) ? strip_tags(clean_xss_attributes($_POST['gr_subject'][$k])) : '';
$gr_admin = is_array($_POST['gr_admin']) ? strip_tags(clean_xss_attributes($_POST['gr_admin'][$k])) : '';
if($_POST['act_button'] == '선택수정') {
if($act_button == '선택수정') {
$sql = " update {$g5['group_table']}
set gr_subject = '{$gr_subject}',
gr_device = '".sql_real_escape_string($_POST['gr_device'][$k])."',
@ -33,7 +37,7 @@ for ($i=0; $i<$count; $i++)
if ($is_admin != 'super')
$sql .= " and gr_admin = '{$gr_admin}' ";
sql_query($sql);
} else if($_POST['act_button'] == '선택삭제') {
} else if($act_button == '선택삭제') {
$row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where gr_id = '$gr_id' ");
if ($row['cnt'])
alert("이 그룹에 속한 게시판이 존재하여 게시판 그룹을 삭제할 수 없습니다.\\n\\n이 그룹에 속한 게시판을 먼저 삭제하여 주십시오.", './board_list.php?sfl=gr_id&amp;stx='.$gr_id);
@ -46,5 +50,7 @@ for ($i=0; $i<$count; $i++)
}
}
run_event('admin_boardgroup_list_update', $act_button, $chk, $post_group_id, $qstr);
goto_url('./boardgroup_list.php?'.$qstr);
?>

View File

@ -197,12 +197,14 @@ a.btn_submit{background:#ff4081;color:#fff}
.btn_frmline{display:inline-block;background:#9eacc6;color:#fff;height:35px;border:0;border-radius:5px;padding:0 10px}
a.btn_frmline{display:inline-block;background:#9eacc6;color:#fff;height:35px;line-height:33px;border-radius:5px;padding:0 10px;text-decoration:none !important}
.btn_ov01{display:inline-block;line-height:30px;height:30px;font-size:0.92em;vertical-align:top}
.btn_ov01:after{display:block;visibility:hidden;clear :both;content:""}
.btn_ov01 .ov_txt{float:left;background:#9eacc6;color:#fff;border-radius:5px 0 0 5px;padding:0 5px}
.btn_ov01 .ov_num{float:left;background:#ededed;color:#666;border-radius:0 5px 5px 0;padding:0 5px}
a.btn_ov02,a.ov_listall{display:inline-block;line-height:30px;height:30px;font-size:0.92em;background:#565e8c;color:#fff;vertical-align:top;border-radius:5px;padding:0 7px }
a.btn_ov02:hover,a.ov_listall:hover{background:#3f51b5}
.local_ov01.local_ov [data-tooltip-text]:hover {position:relative}
.local_ov01.local_ov [data-tooltip-text]:hover:after{line-height:20px;background-color:#000;background-color:rgba(0,0,0,0.8);-webkit-box-shadow:0 0 3px 1px rgba(50,50,50,0.4);-moz-box-shadow:0 0 3px 1px rgba(50,50,50,0.4);box-shadow:0 0 3px 1px rgba(50,50,50,0.4);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;color:#FFF;font-size:11px;content:attr(data-tooltip-text);white-space: pre;margin-bottom:10px;top:130%;left:0;padding:7px 12px;position:absolute;max-width:500px;word-wrap:break-word;z-index:9999}
/*form*/
.sound_only {display:inline-block !important;position:absolute;top:0;left:0;margin:0 !important;padding:0 !important;width:1px !important;height:1px !important;font-size:0;line-height:0;border:0 !important;overflow:hidden !important}
.frm_input{height:35px;line-height:32px;border:1px solid #d5d5d5;}

View File

@ -70,8 +70,8 @@ $colspan = 16;
<div class="local_ov01 local_ov">
<?php echo $listall ?>
<span class="btn_ov01"><span class="ov_txt">총회원수 </span><span class="ov_num"> <?php echo number_format($total_count) ?>명 </span></span>
<a href="?sst=mb_intercept_date&amp;sod=desc&amp;sfl=<?php echo $sfl ?>&amp;stx=<?php echo $stx ?>" class="btn_ov01"> <span class="ov_txt">차단 </span><span class="ov_num"><?php echo number_format($intercept_count) ?>명</span></a>
<a href="?sst=mb_leave_date&amp;sod=desc&amp;sfl=<?php echo $sfl ?>&amp;stx=<?php echo $stx ?>" class="btn_ov01"> <span class="ov_txt">탈퇴 </span><span class="ov_num"><?php echo number_format($leave_count) ?>명</span></a>
<a href="?sst=mb_intercept_date&amp;sod=desc&amp;sfl=<?php echo $sfl ?>&amp;stx=<?php echo $stx ?>" class="btn_ov01" data-tooltip-text="차단된 순으로 정렬합니다.&#xa;전체 데이터를 출력합니다."> <span class="ov_txt">차단 </span><span class="ov_num"><?php echo number_format($intercept_count) ?>명</span></a>
<a href="?sst=mb_leave_date&amp;sod=desc&amp;sfl=<?php echo $sfl ?>&amp;stx=<?php echo $stx ?>" class="btn_ov01" data-tooltip-text="탈퇴된 순으로 정렬합니다.&#xa;전체 데이터를 출력합니다."> <span class="ov_txt">탈퇴 </span><span class="ov_num"><?php echo number_format($leave_count) ?>명</span></a>
</div>
<form id="fsearch" name="fsearch" class="local_sch01 local_sch" method="get">

View File

@ -68,5 +68,7 @@ for ($i=0; $i<$count; $i++)
sql_query($sql);
}
run_event('admin_menu_list_update');
goto_url('./menu_list.php');
?>

View File

@ -100,7 +100,8 @@ if(preg_match("/[\xA1-\xFE][\xA1-\xFE]/", $file['bf_source'])){
}
*/
$original = urlencode($file['bf_source']);
//$original = urlencode($file['bf_source']);
$original = rawurlencode($file['bf_source']);
@include_once($board_skin_path.'/download.tail.skin.php');
@ -114,7 +115,8 @@ if(preg_match("/msie/i", $_SERVER['HTTP_USER_AGENT']) && preg_match("/5\.5/", $_
} else if (preg_match("/Firefox/i", $_SERVER['HTTP_USER_AGENT'])){
header("content-type: file/unknown");
header("content-length: ".filesize($filepath));
header("content-disposition: attachment; filename=\"".basename($file['bf_source'])."\"");
//header("content-disposition: attachment; filename=\"".basename($file['bf_source'])."\"");
header("content-disposition: attachment; filename=\"".$original."\"");
header("content-description: php generated data");
} else {
header("content-type: file/unknown");

View File

@ -27,6 +27,8 @@ $sql = " select distinct wr_num from $write_table where wr_id in ({$wr_id_list})
$result = sql_query($sql);
while ($row = sql_fetch_array($result))
{
$save[$cnt]['wr_contents'] = array();
$wr_num = $row['wr_num'];
for ($i=0; $i<count($_POST['chk_bo_table']); $i++)
{
@ -52,6 +54,8 @@ while ($row = sql_fetch_array($result))
$result2 = sql_query($sql2);
while ($row2 = sql_fetch_array($result2))
{
$save[$cnt]['wr_contents'][] = $row2['wr_content'];
$nick = cut_str($member['mb_nick'], $config['cf_cut_name']);
if (!$row2['wr_is_comment'] && $config['cf_use_copy_log']) {
if(strstr($row2['wr_option'], 'html')) {
@ -210,16 +214,20 @@ if ($sw == 'move')
{
if( isset($save[$i]['bf_file']) && $save[$i]['bf_file'] ){
for ($k=0; $k<count($save[$i]['bf_file']); $k++) {
$del_file = $save[$i]['bf_file'][$k];
$del_file = run_replace('delete_file_path', clean_relative_paths($save[$i]['bf_file'][$k]), $save[$i]);
if ( is_file($del_file) && file_exists($del_file) ){
@unlink($del_file);
}
// 썸네일 파일 삭제, 먼지손 님 코드 제안
delete_board_thumbnail($bo_table, basename($save[$i]['bf_file'][$k]));
}
}
for ($k=0; $k<count($save[$i]['wr_contents']); $k++){
delete_editor_thumbnail($save[$i]['wr_contents'][$k]);
}
sql_query(" delete from $write_table where wr_parent = '{$save[$i]['wr_id']}' ");
sql_query(" delete from {$g5['board_new_table']} where bo_table = '$bo_table' and wr_id = '{$save[$i]['wr_id']}' ");

View File

@ -155,7 +155,8 @@ if(is_file($skin_file)) {
for ($i=1; $i<=2; $i++) {
if(preg_match("/\.({$config['cf_image_extension']})$/i", $view['qa_file'.$i])) {
$view['img_file'][] = '<a href="'.G5_BBS_URL.'/view_image.php?fn='.urlencode('/data/qa/'.$view['qa_file'.$i]).'" target="_blank" class="view_image"><img src="'.G5_DATA_URL.'/qa/'.$view['qa_file'.$i].'"></a>';
$attr_href = run_replace('thumb_view_image_href', G5_BBS_URL.'/view_image.php?fn='.urlencode('/'.G5_DATA_DIR.'/qa/'.$view['qa_file'.$i]), '/'.G5_DATA_DIR.'/qa/'.$view['qa_file'.$i], '', '', '', '');
$view['img_file'][] = '<a href="'.$attr_href.'" target="_blank" class="view_image"><img src="'.G5_DATA_URL.'/qa/'.$view['qa_file'.$i].'"></a>';
$view['img_count']++;
continue;
}

View File

@ -221,7 +221,7 @@ ini_set("session.cookie_domain", G5_COOKIE_DOMAIN);
//------------------------------------------------------------------------------
// 기본환경설정
// 기본적으로 사용하는 필드만 얻은 후 상황에 따라 필드를 추가로 얻음
$config = get_config();
$config = get_config(true);
// 본인인증 또는 쇼핑몰 사용시에만 secure; SameSite=None 로 설정합니다.
if( $config['cf_cert_use'] || (defined('G5_YOUNGCART_VER') && G5_YOUNGCART_VER) ) {
@ -442,7 +442,7 @@ if ($_SESSION['ss_mb_id']) { // 로그인중이라면
$write = array();
$write_table = "";
if ($bo_table) {
$board = get_board_db($bo_table);
$board = get_board_db($bo_table, true);
if ($board['bo_table']) {
set_cookie("ck_bo_table", $board['bo_table'], 86400 * 1);
$gr_id = $board['gr_id'];
@ -465,7 +465,7 @@ if ($bo_table) {
}
if ($gr_id && !is_array($gr_id)) {
$group = get_group($gr_id);
$group = get_group($gr_id, true);
}
if ($config['cf_editor']) {

View File

@ -5,7 +5,7 @@
********************/
define('G5_VERSION', '그누보드5');
define('G5_GNUBOARD_VER', '5.4.2.7');
define('G5_GNUBOARD_VER', '5.4.2.9');
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define('_GNUBOARD_', true);

View File

@ -33,9 +33,9 @@ class FileCache
*
* @param string $id
*/
public function get($id)
public function get($id, $expired_time=0)
{
$data = $this->_get($id);
$data = $this->_get($id, $expired_time);
return is_array($data) ? $data['data'] : FALSE;
}
@ -59,7 +59,7 @@ class FileCache
}
protected function _get($id)
protected function _get($id, $expired_time=0)
{
$cache_file_path = $this->get_cache_file_path($id);
@ -68,20 +68,27 @@ class FileCache
return FALSE;
}
$server_time = defined('G5_SERVER_TIME') ? G5_SERVER_TIME : time();
try{
$file_contents = file_get_contents($cache_file_path);
$file_ex = explode("\n\n", $file_contents);
$data = unserialize(base64_decode($file_ex[1]));
} catch(Exception $e){
$data = array('ttl'=>1, 'time'=>time() - 1000);
$data = array('ttl'=>1, 'time'=> $server_time - 1000);
}
if ($data['ttl'] > 0 && time() > $data['time'] + $data['ttl'])
if ($data['ttl'] > 0 && $server_time > $data['time'] + $data['ttl'])
{
unlink( $cache_file_path );
return FALSE;
}
if ($data['time'] && $expired_time && $data['time'] < ($server_time - $expired_time)){
unlink( $cache_file_path );
return FALSE;
}
return $data;
}

View File

@ -52,10 +52,10 @@ function g5_set_cache($key, $save_data, $ttl = null){
}
}
function g5_get_cache($key){
function g5_get_cache($key, $expired_time=0){
if( $cache = get_cachemanage_instance() ){
return $cache->get($key);
return $cache->get($key, $expired_time);
}
return false;

View File

@ -611,7 +611,7 @@ function html_purifier($html)
//유튜브, 비메오 전체화면 가능하게 하기
$config->set('Filter.Custom', array(new HTMLPurifier_Filter_Iframevideo()));
$purifier = new HTMLPurifier($config);
return $purifier->purify($html);
return run_replace('html_purifier_result', $purifier->purify($html), $purifier, $html);
}
@ -754,6 +754,7 @@ function get_group($gr_id, $is_cache=false)
static $cache = array();
$gr_id = preg_replace('/[^a-z0-9_]/i', '', $gr_id);
$cache = run_replace('get_group_db_cache', $cache, $gr_id, $is_cache);
$key = md5($gr_id);
if( $is_cache && isset($cache[$key]) ){
@ -1403,7 +1404,8 @@ function view_file_link($file, $width, $height, $content='')
$attr = '';
if (preg_match("/\.({$config['cf_image_extension']})$/i", $file)) {
$img = '<a href="'.G5_BBS_URL.'/view_image.php?bo_table='.$board['bo_table'].'&amp;fn='.urlencode($file).'" target="_blank" class="view_image">';
$attr_href = run_replace('thumb_view_image_href', G5_BBS_URL.'/view_image.php?bo_table='.$board['bo_table'].'&amp;fn='.urlencode($file), $file, $board['bo_table'], $width, $height, $content);
$img = '<a href="'.$attr_href.'" target="_blank" class="view_image">';
$img .= '<img src="'.G5_DATA_URL.'/file/'.$board['bo_table'].'/'.urlencode($file).'" alt="'.$content.'" '.$attr.'>';
$img .= '</a>';
@ -2318,6 +2320,8 @@ function delete_editor_thumbnail($contents)
{
if(!$contents)
return;
run_event('delete_editor_thumbnail_before', $contents);
// $contents 중 img 태그 추출
$matchs = get_editor_image($contents);
@ -2338,6 +2342,8 @@ function delete_editor_thumbnail($contents)
unlink($filename);
}
}
run_event('delete_editor_thumbnail_after', $contents, $matchs);
}
// 1:1문의 첨부파일 썸네일 삭제

View File

@ -70,11 +70,10 @@ function get_board_db($bo_table, $is_cache=false){
static $cache = array();
$bo_table = preg_replace('/[^a-z0-9_]/i', '', $bo_table);
$cache = run_replace('get_board_db_cache', $cache, $bo_table, $is_cache);
$key = md5($bo_table);
$bo_table = preg_replace('/[^a-z0-9_]/i', '', $bo_table);
if( $is_cache && isset($cache[$key]) ){
return $cache[$key];
}

View File

@ -9,6 +9,8 @@ function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=
global $g5;
if (!$skin_dir) $skin_dir = 'basic';
$time_unit = 3600; // 1시간으로 고정
if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) {
if (G5_IS_MOBILE) {
@ -35,7 +37,7 @@ function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=
if(G5_USE_CACHE) {
$cache_file_name = "latest-{$bo_table}-{$skin_dir}-{$rows}-{$subject_len}-".g5_cache_secret_key();
$caches = g5_get_cache($cache_file_name);
$caches = g5_get_cache($cache_file_name, $time_unit * $cache_time);
$cache_list = isset($caches['list']) ? $caches['list'] : array();
g5_latest_cache_data($bo_table, $cache_list);
}
@ -90,7 +92,7 @@ function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=
'bo_subject' => sql_escape_string($bo_subject),
);
g5_set_cache($cache_file_name, $caches, 3600 * $cache_time);
g5_set_cache($cache_file_name, $caches, $time_unit * $cache_time);
}
} else {
$list = $cache_list;

View File

@ -86,7 +86,7 @@ function exist_mb_nick($reg_mb_nick, $reg_mb_id)
function reserve_mb_nick($reg_mb_nick)
{
global $config;
if (preg_match("/[\,]?{$reg_mb_nick}/i", $config['cf_prohibit_id']))
if (preg_match("/[\,]?".preg_quote($reg_mb_nick)."/i", $config['cf_prohibit_id']))
return "이미 예약된 단어로 사용할 수 없는 닉네임 입니다.";
else
return "";

View File

@ -110,6 +110,8 @@ function get_view_thumbnail($contents, $thumb_width=0)
for($i=0; $i<count($matches[1]); $i++) {
$img = $matches[1][$i];
$img_tag = isset($matches[0][$i]) ? $matches[0][$i] : '';
preg_match("/src=[\'\"]?([^>\'\"]+[^>\'\"]+)/i", $img, $m);
$src = $m[1];
preg_match("/style=[\"\']?([^\"\'>]+)/i", $img, $m);
@ -161,16 +163,22 @@ function get_view_thumbnail($contents, $thumb_width=0)
}
}
// 원본 width가 thumb_width보다 작다면
if($size[0] <= $thumb_width)
continue;
// Animated GIF 체크
$is_animated = false;
if($size[2] == 1) {
$is_animated = is_animated_gif($srcfile);
if($replace_content = run_replace('thumbnail_is_animated_gif_content', '', $contents, $srcfile, $is_animated, $img_tag, $data_path, $size)){
$contents = $replace_content;
continue;
}
}
// 원본 width가 thumb_width보다 작다면
if($size[0] <= $thumb_width)
continue;
// 썸네일 높이
$thumb_height = round(($thumb_width * $size[1]) / $size[0]);
$filename = basename($srcfile);
@ -190,12 +198,12 @@ function get_view_thumbnail($contents, $thumb_width=0)
} else {
$thumb_tag = '<img src="'.G5_URL.str_replace($filename, $thumb_file, $data_path).'" alt="'.$alt.'"/>';
}
// $img_tag에 editor 경로가 있으면 원본보기 링크 추가
$img_tag = $matches[0][$i];
if(strpos($img_tag, G5_DATA_DIR.'/'.G5_EDITOR_DIR) && preg_match("/\.({$config['cf_image_extension']})$/i", $filename)) {
$imgurl = str_replace(G5_URL, "", $src);
$thumb_tag = '<a href="'.G5_BBS_URL.'/view_image.php?fn='.urlencode($imgurl).'" target="_blank" class="view_image">'.$thumb_tag.'</a>';
$attr_href = run_replace('thumb_view_image_href', G5_BBS_URL.'/view_image.php?fn='.urlencode($imgurl), $filename, '', $width, $height, $alt);
$thumb_tag = '<a href="'.$attr_href.'" target="_blank" class="view_image">'.$thumb_tag.'</a>';
}
$contents = str_replace($img_tag, $thumb_tag, $contents);
@ -687,8 +695,19 @@ and the roundoff errors in the Gaussian blur process, are welcome.
}
function is_animated_gif($filename) {
if(!($fh = @fopen($filename, 'rb')))
static $cache = array();
$key = md5($filename);
if( isset($cache[$key]) ){
return $cache[$key];
}
if(!($fh = @fopen($filename, 'rb'))){
$cache[$key] = false;
return false;
}
$count = 0;
// 출처 : http://www.php.net/manual/en/function.imagecreatefromgif.php#104473
// an animated gif contains multiple "frames", with each frame having a
@ -705,6 +724,11 @@ function is_animated_gif($filename) {
}
fclose($fh);
return $count > 1;
$cache[$key] = ($count > 1) ? true : false;
run_event('is_animated_gif_after', $filename, $cache[$key]);
return $cache[$key];
}
?>

View File

@ -99,7 +99,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
$img_content = '<span class="no_img"><i class="fa fa-picture-o" aria-hidden="true"></i></span>';
}
echo $img_content;
echo run_replace('thumb_image_tag', $img_content, $thumb);
}
?>
</a>

View File

@ -158,7 +158,7 @@
#bo_gall .gall_li_wr {position:relative;}
#bo_gall .gall_li_chk {display:inline-block;position:absolute;top:10px;left:10px}
#bo_gall .gall_li:nth-child(2n+1) {clear:both}
#bo_gall .gall_li .gall_img img{width:100%;height:auto}
#bo_gall .gall_li .gall_img img, #bo_gall .gall_li .gall_img video{width:100%;height:auto}
#bo_gall .gall_li .gall_img .no_img,
#bo_gall .gall_li .gall_notice {display:block;background:#eaeaea;color:#d0d0d0;font-size:3em;text-align:center;padding:25% 0}

View File

@ -38,7 +38,7 @@ $is_show_next_prev = ($list_count > 4) ? 1 : 0;
//echo $list[$i]['icon_reply']." ";
if( $img_content ){
echo "<a href=\"".$list[$i]['href']."\" class=\"lt_thumb\">".$img_content."</a> ";
echo "<a href=\"".$list[$i]['href']."\" class=\"lt_thumb\">".run_replace('thumb_image_tag', $img_content, $thumb)."</a> ";
}
echo "<a href=\"".$list[$i]['href']."\" class=\"lt_tit\">";

View File

@ -9,7 +9,7 @@
.lt ul li:after {display:block;visibility:hidden;clear:both;content:""}
.lt ul li:hover a.lt_tit {color:#3a8afd}
.lt .lt_thumb {display:inline-block;float:left;margin-right:10px}
.lt .lt_thumb img {width:138px;height:auto;overflow:hidden}
.lt .lt_thumb img, .lt .lt_thumb video{width:138px;height:auto;overflow:hidden}
.lt .lt_tit {display:block;font-size:1.2em;font-weight:bold;max-height:60px;overflow:hidden;padding-bottom:10px}
.lt .lt_info {display:inline-block;position:relative;line-height:20px;color:#828282;font-size:0.925em;vertical-align:top}
.lt .lt_date {color:#828282}

View File

@ -118,13 +118,30 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_PLUGIN_URL.'/debugbar/style.cs
$is_print = $rowspan;
foreach($datas as $data){
$print_function = '';
if( $data['function'] && is_array($data['function']) ){
foreach( (array) $data['function'] as $key=>$fn_name ){
$str_delimiter = '';
if($key) $str_delimiter = ' :: ';
if( is_object($fn_name) ){
$fn_name = get_class($fn_name);
}
$print_function .= $str_delimiter.(string) $fn_name;
}
} else {
$print_function = $data['function'];
}
?>
<tr>
<?php if ($is_print){ ?>
<td scope="row" data-label="event_tag" <?php echo $rowspan; ?>><?php echo $tag.' <span class="hook_count">('.$count.')</span>'; ?></td>
<?php } ?>
<td data-label="event_function">
<?php echo $data['function']; ?>
<?php echo $print_function; ?>
</td>
<td data-label="인수의 수"><?php echo $data['arguments']; ?></td>
<td data-label="우선 순위"><?php echo $data['priority']; ?></td>
@ -194,13 +211,30 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_PLUGIN_URL.'/debugbar/style.cs
$is_print = $rowspan;
foreach($datas as $data){
$print_function = '';
if( $data['function'] && is_array($data['function']) ){
foreach( (array) $data['function'] as $key=>$fn_name ){
$str_delimiter = '';
if($key) $str_delimiter = ' :: ';
if( is_object($fn_name) ){
$fn_name = get_class($fn_name);
}
$print_function .= $str_delimiter.(string) $fn_name;
}
} else {
$print_function = $data['function'];
}
?>
<tr>
<?php if ($is_print){ ?>
<td scope="row" data-label="replace_tag" <?php echo $rowspan; ?>><?php echo $tag.' <span class="hook_count">('.$count.')</span>'; ?></td>
<?php } ?>
<td data-label="replace_function">
<?php echo $data['function']; ?>
<?php echo $print_function; ?>
</td>
<td data-label="인수의 수"><?php echo $data['arguments']; ?></td>
<td data-label="우선 순위"><?php echo $data['priority']; ?></td>

View File

@ -1,10 +1,6 @@
<?php
include_once("_common.php");
if( strpos($config['cf_editor'], 'cheditor5') === false ){
exit;
}
define("CHE_UPLOAD_IMG_CHECK", 1); // <20>̹<EFBFBD><CCB9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ҽ<EFBFBD> <20>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD>θ<EFBFBD> üũ<C3BC>մϴ<D5B4>. ( <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̹<EFBFBD><CCB9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ<C3BC>մϴ<D5B4>. 1<≯<EFBFBD> <20><><EFBFBD><EFBFBD>, 0<≯<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> )
// ---------------------------------------------------------------------------

View File

@ -50,13 +50,13 @@ class KCAPTCHA{
$transparent = (imagecolorat($font, $i, 0) >> 24) == 127;
if(!$reading_symbol && !$transparent){
$font_metrics[$alphabet{$symbol}]=array('start'=>$i);
$font_metrics[$alphabet[$symbol]]=array('start'=>$i);
$reading_symbol=true;
continue;
}
if($reading_symbol && $transparent){
$font_metrics[$alphabet{$symbol}]['end']=$i;
$font_metrics[$alphabet[$symbol]]['end']=$i;
$reading_symbol=false;
$symbol++;
continue;
@ -75,7 +75,7 @@ class KCAPTCHA{
$odd=mt_rand(0,1);
if($odd==0) $odd=-1;
for($i=0;$i<$length;$i++){
$m=$font_metrics[$this->keystring{$i}];
$m=$font_metrics[$this->keystring[$i]];
$y=(($i%2)*$fluctuation_amplitude - $fluctuation_amplitude/2)*$odd
+ mt_rand(-round($fluctuation_amplitude/3), round($fluctuation_amplitude/3))

View File

@ -120,7 +120,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
$img_content = '<span class="no_image">no image</span>';
}
echo $img_content;
echo run_replace('thumb_image_tag', $img_content, $thumb);
}
?>
</a>

View File

@ -126,7 +126,7 @@ box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
#bo_gall .gall_href a:link, #bo_gall .gall_href a:focus, #bo_gall .gall_href a:hover {text-decoration:none}
#bo_gall .gall_img {border-bottom:1px solid #eee;text-align:center;height:200px;max-height:200px;overflow:hidden}
#bo_gall .gall_img a,#bo_gall .gall_img .no_image,#bo_gall .gall_img .is_notice {display:block}
#bo_gall .gall_img img {max-width:100%;height:auto !important}
#bo_gall .gall_img img, #bo_gall .gall_img video {max-width:100%;height:auto !important}
#bo_gall .gall_img span {display:inline-block;background:#eaeaea;text-align:center;line-height:200px;text-transform:uppercase;font-weight:bold;font-size:1.25em;color:#777}
#bo_gall .gall_text_href {margin:10px 0}

View File

@ -25,7 +25,7 @@ $list_count = (is_array($list) && $list) ? count($list) : 0;
$img_content = '<img src="'.$img.'" alt="'.$thumb['alt'].'" >';
?>
<li class="gallery_li">
<a href="<?php echo $list[$i]['href'] ?>" class="lt_img"><?php echo $img_content; ?></a>
<a href="<?php echo $list[$i]['href'] ?>" class="lt_img"><?php echo run_replace('thumb_image_tag', $img_content, $thumb); ?></a>
<?php
if ($list[$i]['icon_secret']) echo "<i class=\"fa fa-lock\" aria-hidden=\"true\"></i><span class=\"sound_only\">비밀글</span> ";

View File

@ -12,7 +12,7 @@
.pic_lt li {float:left;width:25%;padding:0 10px}
.pic_lt li.gallery_li:nth-child(4n+1) {clear: both!important}
.pic_lt li .lt_img {margin:5px 0;display:block}
.pic_lt li .lt_img img {width:100%;height:auto}
.pic_lt li .lt_img img, .pic_lt li .lt_img video {width:100%;height:auto}
.pic_lt li a:hover {color:#a22121}
.pic_lt li .fa-heart {color:#ff0000}
.pic_lt li .fa-lock {display:inline-block;line-height:14px;width:16px;font-size:0.833em;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;font-size:12px;border:1px solid #cbe3e8;vertical-align:middle}

View File

@ -27,7 +27,7 @@ $list_count = (is_array($list) && $list) ? count($list) : 0;
$thumb['alt'] = '이미지가 없습니다.';
}
$img_content = '<img src="'.$img.'" alt="'.$thumb['alt'].'" >';
$img_link_html = '<a href="'.$list[$i]['href'].'" class="lt_img" >'.$img_content.'</a>';
$img_link_html = '<a href="'.$list[$i]['href'].'" class="lt_img" >'.run_replace('thumb_image_tag', $img_content, $thumb).'</a>';
}
?>
<li>

View File

@ -12,7 +12,7 @@
.pic_li_lt li {border-bottom:1px solid #e5ecee;margin-bottom:10px}
.pic_li_lt li .lt_img {display:none}
.pic_li_lt li:first-child .lt_img {display:block;margin:0 0 10px;display:block}
.pic_li_lt li:first-child .lt_img img {width:100%;height:auto}
.pic_li_lt li:first-child .lt_img img, .pic_li_lt li .lt_img video {width:100%;height:auto}
.pic_li_lt li .pic_li_tit {font-weight:bold;font-size:1.2em;line-height:20px;vertical-align:middle}
.pic_li_lt li .fa-heart {color:#ff0000}

View File

@ -99,7 +99,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
$img_content = '<span class="no_img"><i class="fa fa-picture-o" aria-hidden="true"></i></span>';
}
echo $img_content;
echo run_replace('thumb_image_tag', $img_content, $thumb);
}
?>
</a>

View File

@ -158,7 +158,7 @@
#bo_gall .gall_li_wr {position:relative;}
#bo_gall .gall_li_chk {display:inline-block;position:absolute;top:10px;left:10px}
#bo_gall .gall_li:nth-child(2n+1) {clear:both}
#bo_gall .gall_li .gall_img img{width:100%;height:auto}
#bo_gall .gall_li .gall_img img, #bo_gall .gall_li .gall_img video{width:100%;height:auto}
#bo_gall .gall_li .gall_img .no_img,
#bo_gall .gall_li .gall_notice {display:block;background:#eaeaea;color:#d0d0d0;font-size:3em;text-align:center;padding:25% 0}

View File

@ -38,7 +38,7 @@ $is_show_next_prev = ($list_count > 4) ? 1 : 0;
//echo $list[$i]['icon_reply']." ";
if( $img_content ){
echo "<a href=\"".$list[$i]['href']."\" class=\"lt_thumb\">".$img_content."</a> ";
echo "<a href=\"".$list[$i]['href']."\" class=\"lt_thumb\">".run_replace('thumb_image_tag', $img_content, $thumb)."</a> ";
}
echo "<a href=\"".$list[$i]['href']."\" class=\"lt_tit\">";

View File

@ -9,7 +9,7 @@
.lt ul li:after {display:block;visibility:hidden;clear:both;content:""}
.lt ul li:hover a.lt_tit {color:#3a8afd}
.lt .lt_thumb {display:inline-block;float:left;margin-right:10px}
.lt .lt_thumb img {width:138px;height:auto;overflow:hidden}
.lt .lt_thumb img, .lt .lt_thumb video {width:138px !important;height:auto;overflow:hidden}
.lt .lt_tit {display:block;font-size:1.2em;font-weight:bold;max-height:60px;overflow:hidden;padding-bottom:10px}
.lt .lt_info {display:inline-block;position:relative;line-height:20px;color:#828282;font-size:0.925em;vertical-align:top}
.lt .lt_date {color:#828282}

View File

@ -120,7 +120,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
$img_content = '<span class="no_image">no image</span>';
}
echo $img_content;
echo run_replace('thumb_image_tag', $img_content, $thumb);
}
?>
</a>

View File

@ -126,7 +126,7 @@ box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
#bo_gall .gall_href a:link, #bo_gall .gall_href a:focus, #bo_gall .gall_href a:hover {text-decoration:none}
#bo_gall .gall_img {border-bottom:1px solid #eee;text-align:center;height:200px;max-height:200px;overflow:hidden}
#bo_gall .gall_img a,#bo_gall .gall_img .no_image,#bo_gall .gall_img .is_notice {display:block}
#bo_gall .gall_img img {max-width:100%;height:auto !important}
#bo_gall .gall_img img, #bo_gall .gall_img video {max-width:100%;height:auto !important}
#bo_gall .gall_img span {display:inline-block;background:#eaeaea;text-align:center;line-height:200px;text-transform:uppercase;font-weight:bold;font-size:1.25em;color:#777}
#bo_gall .gall_text_href {margin:10px 0}

View File

@ -25,7 +25,7 @@ $list_count = (is_array($list) && $list) ? count($list) : 0;
$img_content = '<img src="'.$img.'" alt="'.$thumb['alt'].'" >';
?>
<li class="galley_li">
<a href="<?php echo $list[$i]['href'] ?>" class="lt_img"><?php echo $img_content; ?></a>
<a href="<?php echo $list[$i]['href'] ?>" class="lt_img"><?php echo run_replace('thumb_image_tag', $img_content, $thumb); ?></a>
<?php
if ($list[$i]['icon_secret']) echo "<i class=\"fa fa-lock\" aria-hidden=\"true\"></i><span class=\"sound_only\">비밀글</span> ";

View File

@ -12,7 +12,7 @@
.pic_lt li {float:left;width:25%;padding:0 10px}
.pic_lt li.galley_li:nth-child(4n+1) {clear: both!important}
.pic_lt li .lt_img {margin:5px 0;display:block}
.pic_lt li .lt_img img {width:100%;height:auto}
.pic_lt li .lt_img img, .pic_lt li .lt_img video{width:100%;height:auto}
.pic_lt li a:hover {color:#a22121}
.pic_lt li .fa-heart {color:#ff0000}
.pic_lt li .fa-lock {display:inline-block;line-height:14px;width:16px;font-size:0.833em;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;font-size:12px;border:1px solid #cbe3e8;vertical-align:middle}

View File

@ -27,7 +27,7 @@ $list_count = (is_array($list) && $list) ? count($list) : 0;
$thumb['alt'] = '이미지가 없습니다.';
}
$img_content = '<img src="'.$img.'" alt="'.$thumb['alt'].'" >';
$img_link_html = '<a href="'.$list[$i]['href'].'" class="lt_img" >'.$img_content.'</a>';
$img_link_html = '<a href="'.$list[$i]['href'].'" class="lt_img" >'.run_replace('thumb_image_tag', $img_content, $thumb).'</a>';
}
?>
<li>

View File

@ -12,7 +12,7 @@
.pic_li_lt li {border-bottom:1px solid #e5ecee;margin-bottom:10px}
.pic_li_lt li .lt_img {display:none}
.pic_li_lt li:first-child .lt_img {display:block;margin:0 0 10px;display:block}
.pic_li_lt li:first-child .lt_img img {width:100%;height:auto}
.pic_li_lt li:first-child .lt_img img, .pic_li_lt li .lt_img video {width:100%;height:auto}
.pic_li_lt li .pic_li_tit {font-weight:bold;font-size:1.2em;line-height:20px;vertical-align:middle}
.pic_li_lt li .fa-heart {color:#ff0000}