diff --git a/adm/admin.head.php b/adm/admin.head.php index 07d9fe27d..7aef36884 100644 --- a/adm/admin.head.php +++ b/adm/admin.head.php @@ -119,7 +119,9 @@ $menu_key = substr($sub_menu, 0, 3); $nl = ''; foreach($menu['menu'.$menu_key] as $key=>$value) { if($key > 0) { - if ($menu_key == substr($menu['menu'.$key][0][0], 0, 2)) echo 1; + if ($is_admin != 'super' && (!array_key_exists($value[0],$auth) || !strstr($auth[$value[0]], 'r'))) + continue; + echo $nl.'
  • '.$value[1].'
  • '; $nl = PHP_EOL; } diff --git a/common.php b/common.php index 82847dfc6..a1c2fa1a1 100644 --- a/common.php +++ b/common.php @@ -489,4 +489,6 @@ header('Last-Modified: ' . $gmnow); header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1 header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1 header('Pragma: no-cache'); // HTTP/1.0 + +$html_process = new html_process(); ?> \ No newline at end of file diff --git a/lib/common.lib.php b/lib/common.lib.php index 29f14485c..e22a53413 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -2170,47 +2170,92 @@ if (!function_exists('file_put_contents')) { // HTML 마지막 처리 function html_end() { - global $config, $g5, $member; + global $html_process; - // 현재접속자 처리 - $tmp_sql = " select count(*) as cnt from {$g5['login_table']} where lo_ip = '{$_SERVER['REMOTE_ADDR']}' "; - $tmp_row = sql_fetch($tmp_sql); - - if ($tmp_row['cnt']) { - $tmp_sql = " update {$g5['login_table']} set mb_id = '{$member['mb_id']}', lo_datetime = '".G5_TIME_YMDHIS."', lo_location = '{$g5['lo_location']}', lo_url = '{$g5['lo_url']}' where lo_ip = '{$_SERVER['REMOTE_ADDR']}' "; - sql_query($tmp_sql, FALSE); - } else { - $tmp_sql = " insert into {$g5['login_table']} ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '{$_SERVER['REMOTE_ADDR']}', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$g5['lo_location']}', '{$g5['lo_url']}' ) "; - sql_query($tmp_sql, FALSE); - - // 시간이 지난 접속은 삭제한다 - sql_query(" delete from {$g5['login_table']} where lo_datetime < '".date("Y-m-d H:i:s", G5_SERVER_TIME - (60 * $config['cf_login_minutes']))."' "); - - // 부담(overhead)이 있다면 테이블 최적화 - //$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g5['login_table']' "); - //if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g5['login_table'] "); - } - - // 버퍼의 내용에서 body 태그 중간의 외부 css 파일을 CAPTURE 하여 head 태그로 이동시켜준다. - $buffer = ob_get_contents(); - ob_end_clean(); - preg_match('#(.*)#is', $buffer, $bodys); - preg_match_all('/[\n\r]?(]+>).*()?/i', $bodys[0], $links); - $stylesheet = ''; - $links[0] = array_unique($links[0]); - foreach ($links[0] as $key=>$link) { - //$link = PHP_EOL.$links[0][$i]; - $stylesheet .= $link; - $buffer = preg_replace('#'.$link.'#', '', $buffer); - } - /* - - - 밑으로 스킨의 스타일시트가 위치하도록 하게 한다. - */ - return preg_replace('#([^<]*]+>)#', "$1$stylesheet", $buffer); + return $html_process->run(); } +function add_stylesheet($stylesheet, $order=0) +{ + global $html_process; + + if(trim($stylesheet)) + $html_process->merge_stylesheet($stylesheet, $order); +} + +class html_process { + protected $css = array(); + + function merge_stylesheet($stylesheet, $order) + { + $links = $this->css; + $is_merge = true; + + foreach($links as $link) { + if($link[1] == $stylesheet) { + $is_merge = false; + break; + } + } + + if($is_merge) + $this->css[] = array($order, $stylesheet); + } + + function run() + { + global $config, $g5, $member; + + // 현재접속자 처리 + $tmp_sql = " select count(*) as cnt from {$g5['login_table']} where lo_ip = '{$_SERVER['REMOTE_ADDR']}' "; + $tmp_row = sql_fetch($tmp_sql); + + if ($tmp_row['cnt']) { + $tmp_sql = " update {$g5['login_table']} set mb_id = '{$member['mb_id']}', lo_datetime = '".G5_TIME_YMDHIS."', lo_location = '{$g5['lo_location']}', lo_url = '{$g5['lo_url']}' where lo_ip = '{$_SERVER['REMOTE_ADDR']}' "; + sql_query($tmp_sql, FALSE); + } else { + $tmp_sql = " insert into {$g5['login_table']} ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '{$_SERVER['REMOTE_ADDR']}', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$g5['lo_location']}', '{$g5['lo_url']}' ) "; + sql_query($tmp_sql, FALSE); + + // 시간이 지난 접속은 삭제한다 + sql_query(" delete from {$g5['login_table']} where lo_datetime < '".date("Y-m-d H:i:s", G5_SERVER_TIME - (60 * $config['cf_login_minutes']))."' "); + + // 부담(overhead)이 있다면 테이블 최적화 + //$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g5['login_table']' "); + //if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g5['login_table'] "); + } + + $buffer = ob_get_contents(); + ob_end_clean(); + + $stylesheet = ''; + $links = $this->css; + + if(!empty($links)) { + foreach ($links as $key => $row) { + $order[$key] = $row[0]; + $index[$key] = $key; + $style[$key] = $row[1]; + } + + array_multisort($order, SORT_ASC, $index, SORT_ASC, $links); + + foreach($links as $link) { + if(!trim($link[1])) + continue; + + $stylesheet .= PHP_EOL.$link[1]; + } + } + + /* + + + 밑으로 스킨의 스타일시트가 위치하도록 하게 한다. + */ + return preg_replace('#([^<]*]+>)#', "$1$stylesheet", $buffer); + } +} // 휴대폰번호의 숫자만 취한 후 중간에 하이픈(-)을 넣는다. function hyphen_hp_number($hp) diff --git a/mobile/skin/board/basic/list.skin.php b/mobile/skin/board/basic/list.skin.php index 7d2d690aa..5b72909c1 100644 --- a/mobile/skin/board/basic/list.skin.php +++ b/mobile/skin/board/basic/list.skin.php @@ -7,9 +7,10 @@ $colspan = 5; if ($is_checkbox) $colspan++; if ($is_good) $colspan++; if ($is_nogood) $colspan++; -?> - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>

    목록

    diff --git a/mobile/skin/board/basic/view.skin.php b/mobile/skin/board/basic/view.skin.php index 891d13005..fd6192049 100644 --- a/mobile/skin/board/basic/view.skin.php +++ b/mobile/skin/board/basic/view.skin.php @@ -1,9 +1,11 @@ ', 0); ?> -
    diff --git a/mobile/skin/board/basic/write.skin.php b/mobile/skin/board/basic/write.skin.php index da1589e9b..b15f921b7 100644 --- a/mobile/skin/board/basic/write.skin.php +++ b/mobile/skin/board/basic/write.skin.php @@ -1,8 +1,9 @@ - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>

    diff --git a/mobile/skin/connect/basic/connect.skin.php b/mobile/skin/connect/basic/connect.skin.php index c74b4f8ef..55849443c 100644 --- a/mobile/skin/connect/basic/connect.skin.php +++ b/mobile/skin/connect/basic/connect.skin.php @@ -1,8 +1,9 @@ ', 0); ?> - - diff --git a/mobile/skin/connect/basic/current_connect.skin.php b/mobile/skin/connect/basic/current_connect.skin.php index 344b6f9cc..5d47774b7 100644 --- a/mobile/skin/connect/basic/current_connect.skin.php +++ b/mobile/skin/connect/basic/current_connect.skin.php @@ -1,8 +1,9 @@ - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>
    diff --git a/mobile/skin/latest/basic/latest.skin.php b/mobile/skin/latest/basic/latest.skin.php index 373997428..89ac1b4b8 100644 --- a/mobile/skin/latest/basic/latest.skin.php +++ b/mobile/skin/latest/basic/latest.skin.php @@ -1,8 +1,9 @@ - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>
    diff --git a/mobile/skin/member/basic/formmail.skin.php b/mobile/skin/member/basic/formmail.skin.php index e25d4c997..3add8546b 100644 --- a/mobile/skin/member/basic/formmail.skin.php +++ b/mobile/skin/member/basic/formmail.skin.php @@ -1,8 +1,9 @@ - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>

    님께 메일보내기

    diff --git a/mobile/skin/member/basic/login.skin.php b/mobile/skin/member/basic/login.skin.php index 3a0ac2d2f..3274b7dd8 100644 --- a/mobile/skin/member/basic/login.skin.php +++ b/mobile/skin/member/basic/login.skin.php @@ -1,8 +1,9 @@ - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>

    diff --git a/mobile/skin/member/basic/member_confirm.skin.php b/mobile/skin/member/basic/member_confirm.skin.php index b792be152..467b801e0 100644 --- a/mobile/skin/member/basic/member_confirm.skin.php +++ b/mobile/skin/member/basic/member_confirm.skin.php @@ -1,8 +1,9 @@ - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>

    diff --git a/mobile/skin/member/basic/memo.skin.php b/mobile/skin/member/basic/memo.skin.php index ece3e6aca..f6cbbb7af 100644 --- a/mobile/skin/member/basic/memo.skin.php +++ b/mobile/skin/member/basic/memo.skin.php @@ -1,8 +1,9 @@ - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>

    diff --git a/mobile/skin/member/basic/memo_form.skin.php b/mobile/skin/member/basic/memo_form.skin.php index 2edb425ef..47d0355f0 100644 --- a/mobile/skin/member/basic/memo_form.skin.php +++ b/mobile/skin/member/basic/memo_form.skin.php @@ -1,8 +1,9 @@ - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>

    쪽지보내기

    diff --git a/mobile/skin/member/basic/memo_view.skin.php b/mobile/skin/member/basic/memo_view.skin.php index cca59b368..13e7bc542 100644 --- a/mobile/skin/member/basic/memo_view.skin.php +++ b/mobile/skin/member/basic/memo_view.skin.php @@ -9,9 +9,10 @@ else { $kind_str = "받는"; $kind_date = "보낸"; } -?> - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>

    diff --git a/mobile/skin/member/basic/password.skin.php b/mobile/skin/member/basic/password.skin.php index a92dc1bc6..7a73f21e9 100644 --- a/mobile/skin/member/basic/password.skin.php +++ b/mobile/skin/member/basic/password.skin.php @@ -5,9 +5,10 @@ if ($w == 'x') $delete_str = "댓"; if ($w == 'u') $g5['title'] = $delete_str."글 수정"; else if ($w == 'd' || $w == 'x') $g5['title'] = $delete_str."글 삭제"; else $g5['title'] = $g5['title']; -?> - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>

    diff --git a/mobile/skin/member/basic/password_lost.skin.php b/mobile/skin/member/basic/password_lost.skin.php index c710e7c47..a4e1d11ef 100644 --- a/mobile/skin/member/basic/password_lost.skin.php +++ b/mobile/skin/member/basic/password_lost.skin.php @@ -1,8 +1,9 @@ +if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>

    아이디/비밀번호 찾기

    diff --git a/mobile/skin/member/basic/profile.skin.php b/mobile/skin/member/basic/profile.skin.php index a4879270c..0cc8d8d02 100644 --- a/mobile/skin/member/basic/profile.skin.php +++ b/mobile/skin/member/basic/profile.skin.php @@ -1,8 +1,9 @@ - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>

    님의 프로필

    diff --git a/mobile/skin/member/basic/register.skin.php b/mobile/skin/member/basic/register.skin.php index 7026c0caa..76069e2df 100644 --- a/mobile/skin/member/basic/register.skin.php +++ b/mobile/skin/member/basic/register.skin.php @@ -1,8 +1,9 @@ +if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>
    @@ -35,7 +36,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 diff --git a/mobile/skin/member/basic/register_result.skin.php b/mobile/skin/member/basic/register_result.skin.php index d7472f2fc..70c88f602 100644 --- a/mobile/skin/member/basic/register_result.skin.php +++ b/mobile/skin/member/basic/register_result.skin.php @@ -1,8 +1,9 @@ - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>
    diff --git a/mobile/skin/member/basic/scrap.skin.php b/mobile/skin/member/basic/scrap.skin.php index b7c3d4fa7..c47e3cd80 100644 --- a/mobile/skin/member/basic/scrap.skin.php +++ b/mobile/skin/member/basic/scrap.skin.php @@ -1,8 +1,9 @@ - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>

    diff --git a/mobile/skin/member/basic/scrap_popin.skin.php b/mobile/skin/member/basic/scrap_popin.skin.php index 833f1e128..04dfd5fd3 100644 --- a/mobile/skin/member/basic/scrap_popin.skin.php +++ b/mobile/skin/member/basic/scrap_popin.skin.php @@ -1,8 +1,9 @@ - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>

    스크랩하기

    diff --git a/mobile/skin/member/basic/zip.skin.php b/mobile/skin/member/basic/zip.skin.php index c4fa75a77..4a1413b95 100644 --- a/mobile/skin/member/basic/zip.skin.php +++ b/mobile/skin/member/basic/zip.skin.php @@ -1,9 +1,11 @@ ', 0); ?> -
    diff --git a/mobile/skin/new/basic/new.skin.php b/mobile/skin/new/basic/new.skin.php index 120d71fd2..30d3aee83 100644 --- a/mobile/skin/new/basic/new.skin.php +++ b/mobile/skin/new/basic/new.skin.php @@ -1,8 +1,9 @@ +if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>
    @@ -41,7 +42,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
    - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?> - +
    diff --git a/skin/member/basic/zip.skin.php b/skin/member/basic/zip.skin.php index 8586bc4e0..a99a6ae79 100644 --- a/skin/member/basic/zip.skin.php +++ b/skin/member/basic/zip.skin.php @@ -1,9 +1,11 @@ ', 0); ?> -
    diff --git a/skin/new/basic/new.skin.php b/skin/new/basic/new.skin.php index 935377785..da1e31a75 100644 --- a/skin/new/basic/new.skin.php +++ b/skin/new/basic/new.skin.php @@ -1,8 +1,9 @@ +if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 - +// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 +add_stylesheet('', 0); +?>
    @@ -63,7 +64,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 ', 0); ?> - -

    회원로그인

    diff --git a/skin/outlogin/basic/outlogin.skin.2.php b/skin/outlogin/basic/outlogin.skin.2.php index 3631ab5fc..fc508b166 100644 --- a/skin/outlogin/basic/outlogin.skin.2.php +++ b/skin/outlogin/basic/outlogin.skin.2.php @@ -1,5 +1,8 @@ ', 0); ?> diff --git a/skin/poll/basic/poll.skin.php b/skin/poll/basic/poll.skin.php index 87848f54e..05d3260e1 100644 --- a/skin/poll/basic/poll.skin.php +++ b/skin/poll/basic/poll.skin.php @@ -1,10 +1,11 @@ ', 0); ?> - - @@ -47,8 +48,8 @@ function fpoll_submit(f) return false; } - var new_win = window.open("about:blank", "win_poll", "width=616,height=500,scrollbars=yes,resizable=yes"); - f.target = "win_poll"; + var new_win = window.open("about:blank", "win_poll", "width=616,height=500,scrollbars=yes,resizable=yes"); + f.target = "win_poll"; return true; } diff --git a/skin/poll/basic/poll_result.skin.php b/skin/poll/basic/poll_result.skin.php index 9de3d6a6c..4741f5941 100644 --- a/skin/poll/basic/poll_result.skin.php +++ b/skin/poll/basic/poll_result.skin.php @@ -1,10 +1,11 @@ ', 0); ?> - -

    diff --git a/skin/popular/basic/popular.skin.php b/skin/popular/basic/popular.skin.php index f254bb432..14fe12281 100644 --- a/skin/popular/basic/popular.skin.php +++ b/skin/popular/basic/popular.skin.php @@ -1,10 +1,11 @@ ', 0); ?> - -