스킨의 css가 적용되면서 이상한 것이 있습니다.
list.skin.php 파일에
<link rel="stylesheet" href="<?php echo $board_skin_url ?>/style.css">
<!--[if lt IE 9]><link rel="stylesheet" href="<?php echo $board_skin_url ?>/css/ie8.css" /><![endif]-->
위 처럼 적어 놓으면 자동으로 head.sub.php 파일의 상단에 적용되는 것 같습니다.
그런데 적용되면서 익스 호환문제로 적어 놓은 아래 구문은
<!--[if lt IE 9]><link rel="stylesheet" href="<?php echo $board_skin_url ?>/css/ie8.css" /><![endif]-->
앞의 <!--[if lt IE 9]> 와 뒤의 <![endif]--> 가 삭제된 상태로 적용이 되어
<link rel="stylesheet" href="<?php echo $board_skin_url ?>/style.css">
<link rel="stylesheet" href="<?php echo $board_skin_url ?>/css/ie8.css" />
위처럼 되어 버립니다.
즉 원하지 않는 결과가 나오게 되는데 이 문제는 버그인 것인지
아니면 제가 적용을 잘 못한 것인지 모르겠습니다.
<link rel="stylesheet" href="<?php echo $board_skin_url ?>/style.css">
<!--[if lt IE 9]><link rel="stylesheet" href="<?php echo $board_skin_url ?>/css/ie8.css" /><![endif]-->
위 처럼 적어 놓으면 자동으로 head.sub.php 파일의 상단에 적용되는 것 같습니다.
그런데 적용되면서 익스 호환문제로 적어 놓은 아래 구문은
<!--[if lt IE 9]><link rel="stylesheet" href="<?php echo $board_skin_url ?>/css/ie8.css" /><![endif]-->
앞의 <!--[if lt IE 9]> 와 뒤의 <![endif]--> 가 삭제된 상태로 적용이 되어
<link rel="stylesheet" href="<?php echo $board_skin_url ?>/style.css">
<link rel="stylesheet" href="<?php echo $board_skin_url ?>/css/ie8.css" />
위처럼 되어 버립니다.
즉 원하지 않는 결과가 나오게 되는데 이 문제는 버그인 것인지
아니면 제가 적용을 잘 못한 것인지 모르겠습니다.
|
댓글을 작성하시려면 로그인이 필요합니다.
댓글 2개
말씀하신 것처럼 조건문에 대한 처리가 되어 있지 않아 해당 오류가 발생했습니다. 아래처럼 함수를 수정하셔서 테스트해 보세요.
lib/common.lib.php 파일입니다.
[code]
// HTML 마지막 처리
function html_end()
{
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'] ");
}
// 버퍼의 내용에서 body 태그 중간의 외부 css 파일을 CAPTURE 하여 head 태그로 이동시켜준다.
$buffer = ob_get_contents();
ob_end_clean();
preg_match('#<body>(.*)</body>#is', $buffer, $bodys);
preg_match_all('/[\n\r]?(<!.*)?(<link[^>]+>).*(<!.*>)?/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);
}
/*
</title>
<link rel="stylesheet" href="default.css">
밑으로 스킨의 스타일시트가 위치하도록 하게 한다.
*/
return preg_replace('#(</title>[^<]*<link[^>]+>)#', "$1$stylesheet", $buffer);
}
[/code]
그리고 조건이 포함된 css 파일 경로가 하나의 라인일 경우에만 가능합니다.
늘 빠른 시간에 답변을 주셔서 감사드립니다.^^