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 1891e2495..29c7e7b01 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -2170,30 +2170,41 @@ if (!function_exists('file_put_contents')) { // HTML 마지막 처리 function html_end() { - $end = new html_process(); - return $end->run(); + global $html_process; + + 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 $links = array(); + protected $css = array(); - function css_callback1($m) { - $s = $m[0]; - if(preg_match('/]+>/i', $s)) { - preg_match_all("/(]+>)|(]+>)/is", $s, $m); - $this->links = array_merge($this->links, $m[0]); + function merge_stylesheet($stylesheet, $order) + { + $links = $this->css; + $is_merge = true; + + foreach($links as $link) { + if($link[1] == $stylesheet) { + $is_merge = false; + break; + } } - return ''; - } - function css_callback2($m) { - $this->links = array_merge($this->links, array($m[0])); - return ''; + if($is_merge) + $this->css[] = array($order, $stylesheet); } function run() { - global $config, $g5, $member, $css; + global $config, $g5, $member; // 현재접속자 처리 $tmp_sql = " select count(*) as cnt from {$g5['login_table']} where lo_ip = '{$_SERVER['REMOTE_ADDR']}' "; @@ -2214,28 +2225,29 @@ class html_process { //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); - - $bodys = preg_replace_callback("//is", 'html_process::css_callback1', $bodys); - $bodys = preg_replace_callback("//is", 'html_process::css_callback2', $bodys); - $bodys = preg_replace_callback("/]+>/is", 'html_process::css_callback2', $bodys); - - $links = array_unique($this->links); $stylesheet = ''; + $links = $this->css; - foreach($links as $link) { - if(!trim($link)) - continue; + if(!empty($links)) { + foreach ($links as $key => $row) { + $order[$key] = $row[0]; + $index[$key] = $key; + $style[$key] = $row[1]; + } - if(preg_match('/]+>/i', $link)) - $buffer = preg_replace('#'.$link.'#', '', $buffer); + array_multisort($order, SORT_ASC, $index, SORT_ASC, $links); - $stylesheet .= PHP_EOL.$link; + foreach($links as $link) { + if(!trim($link[1])) + continue; + + $stylesheet .= PHP_EOL.$link[1]; + } } + /* 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); ?> - -