탭매뉴 최신글 스킨 질문요~ 정보
탭매뉴 최신글 스킨 질문요~관련링크
본문
링크된 게시물- 탭메뉴 최신글 스킨은 소스 구성상 한 개 밖에 사용을 못하는 상태입니다.
두 개 이상 사용하려면 손을 대야하는데 파일을 복사해 이름을 바꾸거나 내용에서
class id 등을 바꿔도 두 번째 적용된 스킨이 제기능을 못합니다. 노출은 되도
두 번째 적용한 탭메뉴에 마우스 오버시 반응이 없고, 대신 첫 번째 적용한 스킨이
동작합니다.
상세설명을 먼저 하려고 했지만 시간이 걸릴거 같아서 우선 답변주실 분을 먼저 섭외 후
질문 수정하려구요...
스킨을 두 개 이상 적용하기 위해 소스가 서로 영향 받지 않도록 분리시키는 방법을
알고 싶습니다. 답변 주실분이 계시다면 댓글 부탁드립니다. 그 후 상세 질문 내용으로
수정 하겠습니다..(__
=====상세설명. ===================================================================================
==================================================================================================
=====호출문=======================================================================================
<? include_once("$g4[path]/lib/tab2.lib.php"); ///tab2.lib.php를 포함시킵니다.
echo latest_tab2("latest_tab2","추천음악|추천도서","basic3|basic3", "01_6|01_9","01_6","5|5","18|30"); ?>
==================================================================================================
=====사용된 문서와 경로============================================================================
1. /lib/tab2.lib.php
2. /skin/tab/latest_tab2/tab.skin.php (경로 끝 img폴더 포함)
==================================================================================================
=====tab2.lib.php 소스=============================================================================
<?
if (!defined('_GNUBOARD_')) exit;
//무한탭
function latest_tab2($tab_skin,$titles,$skin_dirs,$bo_tables,$first_table,$rows, $subject_lens){
global $g4;
$title=explode("|",$titles);
$skin_dir=explode("|",$skin_dirs);
$bo_table=explode("|",$bo_tables);
$row=explode("|",$rows);
$subject_len=explode("|",$subject_lens);
$tab_skin_path = "$g4[path]/skin/tab/".$tab_skin;
include "$tab_skin_path/tab.skin.php";
}
================================================================================================
=====tab.skin.php 소스===========================================================================
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
/************************************************************************
************************ 수정 해서 사용하세요!************************
************************************************************************/
$table_width = 200; // 전체 가로 사이즈
$table_height = 240; // 전체 세로 사이즈
$use_tit_per ='Y'; // 타이틀 너비를 테이블너비/N(타이틀갯수) 으로 사용한다 (사용:'Y',미사용:'N')
// 이럴경우 아래 타이틀(tit_width) 너비는 무시된다.
$tit_width="60px"; //타이틀 너비
$tit_height="30px"; //타이틀 높이
$tit_border_color='#dddddd'; //타이틀 전체컬러
$on_font_size="11"; //마우스 접근시 폰트사이즈
$on_font_family="Tahoma"; //마우스 접근시 폰트명
$on_color="#000000"; //마우스 접근시 폰트컬러
$on_weight="bold"; //마우스 접근시 굵기 (굵게:bold/ 일반:normal)
$on_bgcolor="#ffffff"; //마우스 접근시 배경색
$off_font_size="11"; //마우스 벗어날때 폰트사이즈
$off_font_family="Tahoma"; //마우스 벗어날때 폰트명
$off_color="#32313f"; //마우스 벗어날때 폰트컬러
$off_weight="normal"; //마우스 벗어날때 굵기 (굵게:bold/ 일반:normal)
$off_bgcolor="#f6f9fb"; //마우스 벗어날때 배경색
/************************************************************************
*************************************************************************
************************************************************************/
if($use_tit_per=='Y'){
$tit_width=($table_width)/sizeof($title);
}
$title_num=sizeof($title); //타이틀 갯수
$table_num=sizeof($bo_table); //게시판 객수
?>
<style>
.main_tb {width:<?=$table_width?>;height:<?=$table_height?>;}
.t_tb0{
float:left;
width:99px;
height:<?=$tit_height?>;
border-top: 1px dotted <?=$tit_border_color?>;
border-left: 1px dotted <?=$tit_border_color?>;
border-right: 0px solid <?=$tit_border_color?>;
border-bottom: 0px solid <?=$tit_border_color?>;
text-align:center;
line-height:<?=$tit_height?>;
vertical-align:middle;
}
.t_tb1{
float:right;
width:98px;
height:<?=$tit_height?>;
border-top: 1px dotted <?=$tit_border_color?>;
border-left: 0px solid <?=$tit_border_color?>;
border-right: 1px dotted <?=$tit_border_color?>;
border-bottom: 0px solid <?=$tit_border_color?>;
text-align:center;
line-height:<?=$tit_height?>;
vertical-align:middle;
}
.on_font{ font-family:<?=$on_font_family?>;
font-size:<?=$on_font_size?>;
font-weight:<?=$on_weight?>;
background-color:<?=$on_bgcolor?>;
color:<?=$on_color?>;
}
.off_font{ font-family:<?=$off_font_family?>;
font-size:<?=$off_font_size?>;
font-weight:<?=$off_weight?>;
background-color:<?=$off_bgcolor?>;
color:<?=$off_color?>;
}
.m_tb{clear:both;width:200px;} /*내용 우측길이*/
</style>
<div class="main_tb">
<?
for($i=0;$i<$table_num;$i++){
if($i == 0){$toggle="0";}else{$toggle="1";}
if($first_table == $bo_table[$i]){
$style=" on_font ";
}else{
$style=" off_font ";
}
echo " <div id='title{$i}' class='t_tb{$toggle} {$style}' onclick=\"javascript:location.href='{$g4[bbs_path]}/board.php?bo_table={$bo_table[$i]}'\" onMouseover=\"this.style.cursor='hand';m_view({$i});\" >".$title[$i]."</div>";
}
?>
<div class="m_tb">
<?
for($i=0;$i<$table_num;$i++){
if($first_table == $bo_table[$i]){$bk="block";}else{$bk="none";}
?>
<span id='l_view<?=$i?>' style='display:<?=$bk?>;'>
<?=latest($skin_dir[$i],$bo_table[$i],$row[$i],$subject_len[$i]);?>
</span>
<?}?>
</div>
</div>
<script language="javascript">
function m_view(n) {
for(var a = 0; a < <?=$table_num?>; a++) {
obj = document.getElementById('l_view'+a);
obj2 = document.getElementById('title'+a);
if ( n == a ) {
obj.style.display = "block";
obj2.style.backgroundColor="<?=$on_bgcolor?>";
obj2.style.fontWeight="<?=$on_weight?>";
obj2.style.color="<?=$on_color?>";
//img.src = "<?=$g4[path]?>/img/top_mn_on"+a+".gif";
} else {
obj.style.display = "none";
obj2.style.backgroundColor="<?=$off_bgcolor?>";
obj2.style.fontWeight="<?=$off_weight?>";
obj2.style.color="<?=$off_color?>";
}
}
}
</script>
두 개 이상 사용하려면 손을 대야하는데 파일을 복사해 이름을 바꾸거나 내용에서
class id 등을 바꿔도 두 번째 적용된 스킨이 제기능을 못합니다. 노출은 되도
두 번째 적용한 탭메뉴에 마우스 오버시 반응이 없고, 대신 첫 번째 적용한 스킨이
동작합니다.
상세설명을 먼저 하려고 했지만 시간이 걸릴거 같아서 우선 답변주실 분을 먼저 섭외 후
질문 수정하려구요...
스킨을 두 개 이상 적용하기 위해 소스가 서로 영향 받지 않도록 분리시키는 방법을
알고 싶습니다. 답변 주실분이 계시다면 댓글 부탁드립니다. 그 후 상세 질문 내용으로
수정 하겠습니다..(__
=====상세설명. ===================================================================================
==================================================================================================
=====호출문=======================================================================================
<? include_once("$g4[path]/lib/tab2.lib.php"); ///tab2.lib.php를 포함시킵니다.
echo latest_tab2("latest_tab2","추천음악|추천도서","basic3|basic3", "01_6|01_9","01_6","5|5","18|30"); ?>
==================================================================================================
=====사용된 문서와 경로============================================================================
1. /lib/tab2.lib.php
2. /skin/tab/latest_tab2/tab.skin.php (경로 끝 img폴더 포함)
==================================================================================================
=====tab2.lib.php 소스=============================================================================
<?
if (!defined('_GNUBOARD_')) exit;
//무한탭
function latest_tab2($tab_skin,$titles,$skin_dirs,$bo_tables,$first_table,$rows, $subject_lens){
global $g4;
$title=explode("|",$titles);
$skin_dir=explode("|",$skin_dirs);
$bo_table=explode("|",$bo_tables);
$row=explode("|",$rows);
$subject_len=explode("|",$subject_lens);
$tab_skin_path = "$g4[path]/skin/tab/".$tab_skin;
include "$tab_skin_path/tab.skin.php";
}
================================================================================================
=====tab.skin.php 소스===========================================================================
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
/************************************************************************
************************ 수정 해서 사용하세요!************************
************************************************************************/
$table_width = 200; // 전체 가로 사이즈
$table_height = 240; // 전체 세로 사이즈
$use_tit_per ='Y'; // 타이틀 너비를 테이블너비/N(타이틀갯수) 으로 사용한다 (사용:'Y',미사용:'N')
// 이럴경우 아래 타이틀(tit_width) 너비는 무시된다.
$tit_width="60px"; //타이틀 너비
$tit_height="30px"; //타이틀 높이
$tit_border_color='#dddddd'; //타이틀 전체컬러
$on_font_size="11"; //마우스 접근시 폰트사이즈
$on_font_family="Tahoma"; //마우스 접근시 폰트명
$on_color="#000000"; //마우스 접근시 폰트컬러
$on_weight="bold"; //마우스 접근시 굵기 (굵게:bold/ 일반:normal)
$on_bgcolor="#ffffff"; //마우스 접근시 배경색
$off_font_size="11"; //마우스 벗어날때 폰트사이즈
$off_font_family="Tahoma"; //마우스 벗어날때 폰트명
$off_color="#32313f"; //마우스 벗어날때 폰트컬러
$off_weight="normal"; //마우스 벗어날때 굵기 (굵게:bold/ 일반:normal)
$off_bgcolor="#f6f9fb"; //마우스 벗어날때 배경색
/************************************************************************
*************************************************************************
************************************************************************/
if($use_tit_per=='Y'){
$tit_width=($table_width)/sizeof($title);
}
$title_num=sizeof($title); //타이틀 갯수
$table_num=sizeof($bo_table); //게시판 객수
?>
<style>
.main_tb {width:<?=$table_width?>;height:<?=$table_height?>;}
.t_tb0{
float:left;
width:99px;
height:<?=$tit_height?>;
border-top: 1px dotted <?=$tit_border_color?>;
border-left: 1px dotted <?=$tit_border_color?>;
border-right: 0px solid <?=$tit_border_color?>;
border-bottom: 0px solid <?=$tit_border_color?>;
text-align:center;
line-height:<?=$tit_height?>;
vertical-align:middle;
}
.t_tb1{
float:right;
width:98px;
height:<?=$tit_height?>;
border-top: 1px dotted <?=$tit_border_color?>;
border-left: 0px solid <?=$tit_border_color?>;
border-right: 1px dotted <?=$tit_border_color?>;
border-bottom: 0px solid <?=$tit_border_color?>;
text-align:center;
line-height:<?=$tit_height?>;
vertical-align:middle;
}
.on_font{ font-family:<?=$on_font_family?>;
font-size:<?=$on_font_size?>;
font-weight:<?=$on_weight?>;
background-color:<?=$on_bgcolor?>;
color:<?=$on_color?>;
}
.off_font{ font-family:<?=$off_font_family?>;
font-size:<?=$off_font_size?>;
font-weight:<?=$off_weight?>;
background-color:<?=$off_bgcolor?>;
color:<?=$off_color?>;
}
.m_tb{clear:both;width:200px;} /*내용 우측길이*/
</style>
<div class="main_tb">
<?
for($i=0;$i<$table_num;$i++){
if($i == 0){$toggle="0";}else{$toggle="1";}
if($first_table == $bo_table[$i]){
$style=" on_font ";
}else{
$style=" off_font ";
}
echo " <div id='title{$i}' class='t_tb{$toggle} {$style}' onclick=\"javascript:location.href='{$g4[bbs_path]}/board.php?bo_table={$bo_table[$i]}'\" onMouseover=\"this.style.cursor='hand';m_view({$i});\" >".$title[$i]."</div>";
}
?>
<div class="m_tb">
<?
for($i=0;$i<$table_num;$i++){
if($first_table == $bo_table[$i]){$bk="block";}else{$bk="none";}
?>
<span id='l_view<?=$i?>' style='display:<?=$bk?>;'>
<?=latest($skin_dir[$i],$bo_table[$i],$row[$i],$subject_len[$i]);?>
</span>
<?}?>
</div>
</div>
<script language="javascript">
function m_view(n) {
for(var a = 0; a < <?=$table_num?>; a++) {
obj = document.getElementById('l_view'+a);
obj2 = document.getElementById('title'+a);
if ( n == a ) {
obj.style.display = "block";
obj2.style.backgroundColor="<?=$on_bgcolor?>";
obj2.style.fontWeight="<?=$on_weight?>";
obj2.style.color="<?=$on_color?>";
//img.src = "<?=$g4[path]?>/img/top_mn_on"+a+".gif";
} else {
obj.style.display = "none";
obj2.style.backgroundColor="<?=$off_bgcolor?>";
obj2.style.fontWeight="<?=$off_weight?>";
obj2.style.color="<?=$off_color?>";
}
}
}
</script>
댓글 전체
함수 변수를 전부 따로 줘보세요 ! 예를 들어, 스킨1에 사용된 변수가 a이며, 스킨2는 b로 다 바꾸심 될 듯...
변수 찾는 게 힘들지만, 하다보면 감이 생기더라구요..^^
변수 찾는 게 힘들지만, 하다보면 감이 생기더라구요..^^
네 ㅎ 아무래도 해봐야겠네여.. 함수쪽은 까막눈이라 손을 못댔는데 ; 함 도전해 보는걸로.....
어떤부분이 변수인지만 알아도 좋겠습니다 ㅎ
아싸 끈기로 해결했습니다 ㅎㅎㅎ 정확한 포인트 짚어서 해당 스킨 게시물에 댓글 남겨두겠습니다.
이제야 로그인했네요. ㅎ 성공 축하합니다. 한 단계 발전하셨네요. ^^
네ㅎ.. 근데 뭐 수박 겉만 핥는 기분이네요.. 완전 주먹구구식~ 그래도 포기할까 하다가 동기부여 해주셔서
겨우 해결됐네요 ㅋㅋ
겨우 해결됐네요 ㅋㅋ