그누보드 스킨 div로 레이어로 제작시 정보
그누보드 스킨 div로 레이어로 제작시첨부파일
본문
지난번 글에서 스샷을 올려달래셔서/
질문도 보강할겸 새로 써봅니다.
이전글 : http://www.sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=210083
첨부된 스크린샷을 보시면
그누보드 적용후 라는 스샷은 만들어둔 뼈대에다가 출석부랭킹이랄지 로그인 부분 등을 추가하고
라이브러리도 적용해준 상태입니다.
원본.zip에서 쪼개었던 대로 그대로 쪼갰구요.
라이브러리 부분은 전혀 건들지 않고 각 header.php header.sub.php main.php tail.php tail.sub.php 의 사이트 구성부분만 편집하였습니다.
편집된 소스가 수정본.zip이구요.
그누보드 적용후 라는 스샷이 수정본 적용된 스샷이고
그누보드 적용전 이라는 스샷이 수정본의 뼈대만 적용한 시점입니다.
이때 뼈대의 각 부분에 header.php등의 파일 내용을 집어넣고 필요없는 부분이나 보완할 부분을 추가/제거한 상태구요. 만들당시 서버가 공사중이어서 모든 외부 접속이 차단된 관계로 그누보드 관련된 모든 php를 주석화한 상태입니다.
즉, 저 주석을 풀면 레이아웃이 깨진다는 겁니다.ㅠㅠ
안에 들어간 무언가가 방해를 한거 같은데 뭔지를 모르겠어요..
원본 시안 스샷이 초기에 table로 제작된 레이아웃입니다.
사이트주소는 seuai.co.cc/main.php입니다..
그냥님 말씀대로 레이어로 한번 더 감싸도 보았구요.
Left Center Right는 전부 float:left;속성이 들어있는데요.
이놈이 누군가랑 충돌하는 것 같아요..
다른 것들을 제작할때도 저놈이 문제를 일으키지는 않았거든요..
최대한 표준으로 맞추려고 float를 사용하고 있습니다.
float:left를 제거하면 아예 1줄에 1개의 div만 자리잡고 나머지는 아래로 내려가 버리구요.
1줄에 1개의 div만 자리잡는 것은 float 적용과 상관없이 파폭에서는 무조건 일어나고 있습니다.
Warning: Cannot modify header information - headers already sent by (output started at C:\APM_Setup\htdocs\head.php:1) in C:\APM_Setup\htdocs\head.php on line 12
이 오류도 문제네요;;
분명 원본에서 정의된 것을 같은 부분에 적용한건데 왜 문제가 나는지 이해가 안가요..ㅠㅠ
저부분이
// 자바스크립트에서 go(-1) 함수를 쓰면 폼값이 사라질때 해당 폼의 상단에 사용하면
// 캐쉬의 내용을 가져옴. 완전한지는 검증되지 않음
header("Content-Type: text/html; charset=$g4[charset]");
$gmnow = gmdate("D, d M Y H:i:s") . " GMT";
header("Expires: 0"); // rfc2616 - Section 14.21
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
이 소스인데요.
원본에서는 각 부분에 동일하게 들어가서 넣어주었는데
저렇게 문제가 나네요;;
더이상은 제 실력으로는 어찌할지 모르겠습니다..
// 첨부파일 추가합니다.
// 각 컨텐츠에 쓰인 파일들도 도움이되실까 해서 첨부해봅니다.
// 왜가리.zip 안에 사용된 위젯들이 있습니다.
질문도 보강할겸 새로 써봅니다.
이전글 : http://www.sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=210083
첨부된 스크린샷을 보시면
그누보드 적용후 라는 스샷은 만들어둔 뼈대에다가 출석부랭킹이랄지 로그인 부분 등을 추가하고
라이브러리도 적용해준 상태입니다.
원본.zip에서 쪼개었던 대로 그대로 쪼갰구요.
라이브러리 부분은 전혀 건들지 않고 각 header.php header.sub.php main.php tail.php tail.sub.php 의 사이트 구성부분만 편집하였습니다.
편집된 소스가 수정본.zip이구요.
그누보드 적용후 라는 스샷이 수정본 적용된 스샷이고
그누보드 적용전 이라는 스샷이 수정본의 뼈대만 적용한 시점입니다.
이때 뼈대의 각 부분에 header.php등의 파일 내용을 집어넣고 필요없는 부분이나 보완할 부분을 추가/제거한 상태구요. 만들당시 서버가 공사중이어서 모든 외부 접속이 차단된 관계로 그누보드 관련된 모든 php를 주석화한 상태입니다.
즉, 저 주석을 풀면 레이아웃이 깨진다는 겁니다.ㅠㅠ
안에 들어간 무언가가 방해를 한거 같은데 뭔지를 모르겠어요..
원본 시안 스샷이 초기에 table로 제작된 레이아웃입니다.
사이트주소는 seuai.co.cc/main.php입니다..
그냥님 말씀대로 레이어로 한번 더 감싸도 보았구요.
Left Center Right는 전부 float:left;속성이 들어있는데요.
이놈이 누군가랑 충돌하는 것 같아요..
다른 것들을 제작할때도 저놈이 문제를 일으키지는 않았거든요..
최대한 표준으로 맞추려고 float를 사용하고 있습니다.
float:left를 제거하면 아예 1줄에 1개의 div만 자리잡고 나머지는 아래로 내려가 버리구요.
1줄에 1개의 div만 자리잡는 것은 float 적용과 상관없이 파폭에서는 무조건 일어나고 있습니다.
Warning: Cannot modify header information - headers already sent by (output started at C:\APM_Setup\htdocs\head.php:1) in C:\APM_Setup\htdocs\head.php on line 12
이 오류도 문제네요;;
분명 원본에서 정의된 것을 같은 부분에 적용한건데 왜 문제가 나는지 이해가 안가요..ㅠㅠ
저부분이
// 자바스크립트에서 go(-1) 함수를 쓰면 폼값이 사라질때 해당 폼의 상단에 사용하면
// 캐쉬의 내용을 가져옴. 완전한지는 검증되지 않음
header("Content-Type: text/html; charset=$g4[charset]");
$gmnow = gmdate("D, d M Y H:i:s") . " GMT";
header("Expires: 0"); // rfc2616 - Section 14.21
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
이 소스인데요.
원본에서는 각 부분에 동일하게 들어가서 넣어주었는데
저렇게 문제가 나네요;;
더이상은 제 실력으로는 어찌할지 모르겠습니다..
// 첨부파일 추가합니다.
// 각 컨텐츠에 쓰인 파일들도 도움이되실까 해서 첨부해봅니다.
// 왜가리.zip 안에 사용된 위젯들이 있습니다.
댓글 전체
시안으로 봐도 정확하게 알 수는 없지만 원하는 형태는 나올 것 같네요.
아래와 같이 파일 내용을 바꿔 보세요.
1. head.php 파일 내용
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once("$g4[path]/head.sub.php");
include_once("$g4[path]/lib/outlogin.lib.php");
include_once("$g4[path]/lib/poll.lib.php");
include_once("$g4[path]/lib/visit.lib.php");
include_once("$g4[path]/lib/connect.lib.php");
include_once("$g4[path]/lib/popular.lib.php");
// 자바스크립트에서 go(-1) 함수를 쓰면 폼값이 사라질때 해당 폼의 상단에 사용하면
// 캐쉬의 내용을 가져옴. 완전한지는 검증되지 않음
header("Content-Type: text/html; charset=$g4[charset]");
$gmnow = gmdate("D, d M Y H:i:s") . " GMT";
header("Expires: 0"); // rfc2616 - Section 14.21
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
//print_r2(get_defined_constants());
// 사용자 화면 상단과 좌측을 담당하는 페이지입니다.
// 상단, 좌측 화면을 꾸미려면 이 파일을 수정합니다.
$table_width = 1004;
?>
<div align="center">
<!-- 상단 로고 및 버튼 시작 -->
<!-- 로고 -->
<a href="<?=$g4['path']?>/main.php"><img src="<?=$g4['path']?>/img/banner.png"border="0"></a>
<!-- 상단 로고 및 버튼 끝 -->
<table width='<?=$table_width?>' cellpadding=0 cellspacing=0 border=0>
<tr>
<!-- 왼쪽 메뉴 -->
<td width=180 valign=top>
<?=popular("KanZi_popular",10)?>
<?=connect("cygnus"); // 접속자 ?>
<? include_once("$g4[path]/skin/board/attendance/list.skin.php"); ?>
</td>
<!-- 중간 -->
<td width=100% valign=top>
2. main.php 파일내용
<?
define("__CASTLE_PHP_VERSION_BASE_DIR__", "/home/seuai/public_html/castle");
include_once(__CASTLE_PHP_VERSION_BASE_DIR__."/castle_referee.php");
include_once("./_common.php");
include_once("$g4[path]/lib/latest.lib.php");
include_once("$g4[path]/lib/new.lib.php");
include_once("$g4[path]/lib/fixing.lib.php");
$g4['title'] = "";
include_once("./_head.php");
?>
<!-- 메인화면 최신글 시작 -->
<table width="100%" cellpadding=0 cellspacing=0>
<tr>
<td valign=top>
<? include_once("counter_img.php");?>
<br><br>
<?=latest("fr.best.simple","best",3,75);?>
<?=boardnew("전체글", "basic", 15, 75)?>
</td>
</tr>
</table>
<!-- 메인화면 최신글 끝 -->
<?
include_once("./_tail.php");
?>
3. tail.php 파일내용
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
define("__CASTLE_PHP_VERSION_BASE_DIR__", "/home/seuai/public_html/castle");
include_once(__CASTLE_PHP_VERSION_BASE_DIR__."/castle_referee.php");
// 사용자 화면 우측과 하단을 담당하는 페이지입니다.
// 우측, 하단 화면을 꾸미려면 이 파일을 수정합니다.
?>
</td>
<!-- 오른쪽 메뉴 -->
<td width="180px" valign="top">
<?=outlogin("login"); // 외부 로그인 ?>
<? include_once("$g4[path]/point-month-ranking.php");?>
<div style='height:10px;'></div>
</td>
</tr>
</table>
</div>
<br>
총괄자 : <b>스아이</b> | 회원관리담당자 : <b>시아</b> | 게시판담당자 : <b>칸라</b> | 디자인담당자 : <b>스머프Blue</b>
<br><br><br><br><br>
<?
include_once("$g4[path]/tail.sub.php");
?>
4. tail.sub.php 파일내용
<script type="text/javascript" src="<?=$g4['path']?>/js/wrest.js"></script>
<!-- 새창 대신 사용하는 iframe -->
<iframe width=0 height=0 name='hiddenframe' style='display:none;'></iframe>
<? if ($is_admin == "super") { ?><!-- <div style='float:left; width:<?=$table_width?>px; text-align:center;'>RUN TIME : <?=get_microtime()-$begin_time;?><br></div> --><? } ?>
</body>
</html>
<?
$tmp_sql = " select count(*) as cnt from $g4[login_table] where lo_ip = '$_SERVER[REMOTE_ADDR]' ";
$tmp_row = sql_fetch($tmp_sql);
//sql_query(" lock table $g4[login_table] write ", false);
if ($tmp_row['cnt'])
{
$tmp_sql = " update $g4[login_table] set mb_id = '$member[mb_id]', lo_datetime = '$g4[time_ymdhis]', lo_location = '$lo_location', lo_url = '$lo_url' where lo_ip = '$_SERVER[REMOTE_ADDR]' ";
sql_query($tmp_sql, FALSE);
}
else
{
$tmp_sql = " insert into $g4[login_table] ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '$_SERVER[REMOTE_ADDR]', '$member[mb_id]', '$g4[time_ymdhis]', '$lo_location', '$lo_url' ) ";
sql_query($tmp_sql, FALSE);
// 시간이 지난 접속은 삭제한다
sql_query(" delete from $g4[login_table] where lo_datetime < '".date("Y-m-d H:i:s", $g4[server_time] - (60 * $config[cf_login_minutes]))."' ");
// 부담(overhead)이 있다면 테이블 최적화
//$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g4[login_table]' ");
//if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g4[login_table] ");
}
//sql_query(" unlock tables ", false);
?>
우선 백업은 필수입니다.
각 파일을 위에 있는 소스로 모두 바꾼 후 저장해 주시고 한 번 확인해 보세요.
파일안에 추가된 확인되지 않은 파일들은 고려 되지 않았습니다.
칼럼간 여백이나 상하의 여백등은 조절을 해 주셔야 합니다.
가능하면 다른 태그는 넣지 마시고 만일 페이지의 모양이 다르다면
문제가 있는 그 파일을 확인해 보세요.
그럼 성공하시길....
아래와 같이 파일 내용을 바꿔 보세요.
1. head.php 파일 내용
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once("$g4[path]/head.sub.php");
include_once("$g4[path]/lib/outlogin.lib.php");
include_once("$g4[path]/lib/poll.lib.php");
include_once("$g4[path]/lib/visit.lib.php");
include_once("$g4[path]/lib/connect.lib.php");
include_once("$g4[path]/lib/popular.lib.php");
// 자바스크립트에서 go(-1) 함수를 쓰면 폼값이 사라질때 해당 폼의 상단에 사용하면
// 캐쉬의 내용을 가져옴. 완전한지는 검증되지 않음
header("Content-Type: text/html; charset=$g4[charset]");
$gmnow = gmdate("D, d M Y H:i:s") . " GMT";
header("Expires: 0"); // rfc2616 - Section 14.21
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
//print_r2(get_defined_constants());
// 사용자 화면 상단과 좌측을 담당하는 페이지입니다.
// 상단, 좌측 화면을 꾸미려면 이 파일을 수정합니다.
$table_width = 1004;
?>
<div align="center">
<!-- 상단 로고 및 버튼 시작 -->
<!-- 로고 -->
<a href="<?=$g4['path']?>/main.php"><img src="<?=$g4['path']?>/img/banner.png"border="0"></a>
<!-- 상단 로고 및 버튼 끝 -->
<table width='<?=$table_width?>' cellpadding=0 cellspacing=0 border=0>
<tr>
<!-- 왼쪽 메뉴 -->
<td width=180 valign=top>
<?=popular("KanZi_popular",10)?>
<?=connect("cygnus"); // 접속자 ?>
<? include_once("$g4[path]/skin/board/attendance/list.skin.php"); ?>
</td>
<!-- 중간 -->
<td width=100% valign=top>
2. main.php 파일내용
<?
define("__CASTLE_PHP_VERSION_BASE_DIR__", "/home/seuai/public_html/castle");
include_once(__CASTLE_PHP_VERSION_BASE_DIR__."/castle_referee.php");
include_once("./_common.php");
include_once("$g4[path]/lib/latest.lib.php");
include_once("$g4[path]/lib/new.lib.php");
include_once("$g4[path]/lib/fixing.lib.php");
$g4['title'] = "";
include_once("./_head.php");
?>
<!-- 메인화면 최신글 시작 -->
<table width="100%" cellpadding=0 cellspacing=0>
<tr>
<td valign=top>
<? include_once("counter_img.php");?>
<br><br>
<?=latest("fr.best.simple","best",3,75);?>
<?=boardnew("전체글", "basic", 15, 75)?>
</td>
</tr>
</table>
<!-- 메인화면 최신글 끝 -->
<?
include_once("./_tail.php");
?>
3. tail.php 파일내용
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
define("__CASTLE_PHP_VERSION_BASE_DIR__", "/home/seuai/public_html/castle");
include_once(__CASTLE_PHP_VERSION_BASE_DIR__."/castle_referee.php");
// 사용자 화면 우측과 하단을 담당하는 페이지입니다.
// 우측, 하단 화면을 꾸미려면 이 파일을 수정합니다.
?>
</td>
<!-- 오른쪽 메뉴 -->
<td width="180px" valign="top">
<?=outlogin("login"); // 외부 로그인 ?>
<? include_once("$g4[path]/point-month-ranking.php");?>
<div style='height:10px;'></div>
</td>
</tr>
</table>
</div>
<br>
총괄자 : <b>스아이</b> | 회원관리담당자 : <b>시아</b> | 게시판담당자 : <b>칸라</b> | 디자인담당자 : <b>스머프Blue</b>
<br><br><br><br><br>
<?
include_once("$g4[path]/tail.sub.php");
?>
4. tail.sub.php 파일내용
<script type="text/javascript" src="<?=$g4['path']?>/js/wrest.js"></script>
<!-- 새창 대신 사용하는 iframe -->
<iframe width=0 height=0 name='hiddenframe' style='display:none;'></iframe>
<? if ($is_admin == "super") { ?><!-- <div style='float:left; width:<?=$table_width?>px; text-align:center;'>RUN TIME : <?=get_microtime()-$begin_time;?><br></div> --><? } ?>
</body>
</html>
<?
$tmp_sql = " select count(*) as cnt from $g4[login_table] where lo_ip = '$_SERVER[REMOTE_ADDR]' ";
$tmp_row = sql_fetch($tmp_sql);
//sql_query(" lock table $g4[login_table] write ", false);
if ($tmp_row['cnt'])
{
$tmp_sql = " update $g4[login_table] set mb_id = '$member[mb_id]', lo_datetime = '$g4[time_ymdhis]', lo_location = '$lo_location', lo_url = '$lo_url' where lo_ip = '$_SERVER[REMOTE_ADDR]' ";
sql_query($tmp_sql, FALSE);
}
else
{
$tmp_sql = " insert into $g4[login_table] ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '$_SERVER[REMOTE_ADDR]', '$member[mb_id]', '$g4[time_ymdhis]', '$lo_location', '$lo_url' ) ";
sql_query($tmp_sql, FALSE);
// 시간이 지난 접속은 삭제한다
sql_query(" delete from $g4[login_table] where lo_datetime < '".date("Y-m-d H:i:s", $g4[server_time] - (60 * $config[cf_login_minutes]))."' ");
// 부담(overhead)이 있다면 테이블 최적화
//$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g4[login_table]' ");
//if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g4[login_table] ");
}
//sql_query(" unlock tables ", false);
?>
우선 백업은 필수입니다.
각 파일을 위에 있는 소스로 모두 바꾼 후 저장해 주시고 한 번 확인해 보세요.
파일안에 추가된 확인되지 않은 파일들은 고려 되지 않았습니다.
칼럼간 여백이나 상하의 여백등은 조절을 해 주셔야 합니다.
가능하면 다른 태그는 넣지 마시고 만일 페이지의 모양이 다르다면
문제가 있는 그 파일을 확인해 보세요.
그럼 성공하시길....
table로 만들면 일부 모바일 브라우저에서 문제가 나거든요..
저놈 성사시키고 모바일 스킨도 같이 수정해야되는데요.
모바일서 테이블 사용시 일부 브라우저에서 코어에 따라서 깨집니다..
레이어로는 안깨지더라구요;;
그래서 레이어로 바꾸는건데 도로 테이블로 바꾸시면..ㅠㅠ
도로 아미타불..ㅠㅠ
저놈 성사시키고 모바일 스킨도 같이 수정해야되는데요.
모바일서 테이블 사용시 일부 브라우저에서 코어에 따라서 깨집니다..
레이어로는 안깨지더라구요;;
그래서 레이어로 바꾸는건데 도로 테이블로 바꾸시면..ㅠㅠ
도로 아미타불..ㅠㅠ
지금 만드신 페이지는 레이어도 아니고 테이블도 아닌 이것 저것 섞여 있는 상태입니다.
그런 것을 정리해서 기본 테이블로 수정해 드린 것이었구요.
현재처럼 하시면 절대 모바일과 함께 모든 브라우저에서 깨어지지 않게 만드실 수 없습니다.
솔직히 말해서 우선 레이어와 테이블의 개념부터 잡으시고 하시는 것이 좋으실 수 있습니다.
현재는 이것 맞추면 다른 것이 깨지고 또 깨진것을 수정하면 또 다른 것이 깨지는 악순환의 반복일 뿐입니다.
좀 잘 아시는 분께 의뢰를 하시는 것이 좋을 듯 싶습니다.
잘 마무리 되셨으면 좋겠네요.
그런 것을 정리해서 기본 테이블로 수정해 드린 것이었구요.
현재처럼 하시면 절대 모바일과 함께 모든 브라우저에서 깨어지지 않게 만드실 수 없습니다.
솔직히 말해서 우선 레이어와 테이블의 개념부터 잡으시고 하시는 것이 좋으실 수 있습니다.
현재는 이것 맞추면 다른 것이 깨지고 또 깨진것을 수정하면 또 다른 것이 깨지는 악순환의 반복일 뿐입니다.
좀 잘 아시는 분께 의뢰를 하시는 것이 좋을 듯 싶습니다.
잘 마무리 되셨으면 좋겠네요.
제가 원하던 소스네요.. 감사