레

기간제 최신글에서 특정게시판의 최신글만 링크를 다르게.....

· 2007-04-20 (금) 03:54:28 · 2010 · 8
기간제 최신글에서 특정게시판의 최신글만 링크를 다르게.....
 
그룹내 게시판의 게시글중 조회순으로 최신글이 보여지는 최신글 스킨 사용중인데요
 
최신글중에서 특정게시판의 글의 경우만 최신글 스킨에서
링크를 원래 링크가 아닌 별도의
예) http://naver.com 이런식으로 링크를 줄수 있는지요
도움주시면 감사드립니다.. ^^*
 
 
먼저 같은 질문에서 어떤분이 조건문으로 하라고 하셨는데요?
최신글 스킨부분에서 제외 시키고자 하는 게시판의 최신글만 조건문으로
원래글의 링크가 아닌 따로 지정한 링크로 예)http://naver.com 과 같이
(제외 시키고자 하는 게시판의 최신글은 모두 naver.com 으로 똑같이)
주려면 조건문을 어떻게 주어야 하나요.. 고수님들 도움 부탁드립니다.
 
== 기간제 최신글 스킨부분 ==
 
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<table width=100% cellpadding=0 cellspacing=0 >
<? for ($i=0; $i<count($list); $i++) { ?>
<tr>
    <td colspan=4 align=center >
        <table width=95% valign=top border=0 cellpadding=0 cellspacing=0>
        <tr>
            <td height=22><img src="<?=$latest_skin_path?>/img/btn<?=$titles?>_<?=$i+1?>.gif" width="12" height="11" align="absmiddle"> 
            <?
            echo $list[$i]['icon_reply'] . " ";
            //echo "<a href='{$list[$i]['href']}' target=_parent>";
   echo "<a href='{$list[$i]['href']}' target=ucc>";
            if ($list[$i]['is_notice'])
                echo "<font style='font-family:굴림; font-size:9pt; '>{$list[$i]['subject']}</font>";
            else
                echo "<font style='font-family:굴림; font-size:9pt; '>{$list[$i]['subject']}</font>";
            echo "</a>";
            //if ($list[$i]['comment_cnt']) //
                //echo " <a href=\"{$list[$i]['comment_href']}\"><span style='font-family:돋움; font-size:8pt; '>{$list[$i]['comment_cnt']}</span></a>";//
            // if ($list[$i]['link']['count']) { echo "[{$list[$i]['link']['count']}]"; }
            // if ($list[$i]['file']['count']) { echo "<{$list[$i]['file']['count']}>"; }
            ?></td></tr>
       
        </table></td>
</tr>
<? } ?>
<? if (count($list) == 0) { ?><tr><td colspan=4 align=center height=50>게시물이 없습니다.</a></td></tr><? } ?>
</table>
 
= 기간제 최신글 스킨 = 
 
 
|

댓글 8개

특정게시판만 네이버(특정링크)로 걸려고 하시는거 맞죠?
그럼..
echo "<a href='{$list[$i]['href']}' target=ucc>";
요걸..

if ($bo_table =="특정게시판") { //특정게시판만..
echo "<a href='네이버(특정 링크)' target=ucc>"; //특정 링크 걸기
} else { //그외게시판은..
echo "<a href='{$list[$i]['href']}' target=ucc>"; //본래링크 그대로 걸기
}

요런식으로하시면 되겠네요..
특정게시판이 2~3개이라면..
if ($bo_table =="특정게시판" || $bo_table =="특정게시판2" || $bo_table =="특정게시판3") { //특정게시판몇개만..
이런식으로 2~3개 또는 그 이상을 지정할 수 있어요.
2007-04-20 (금) 21:26:46
먼저 답변을 주셔서 정말 감사드립니다. 치에님 ^^*

말씀하신대로 해보았는데요.. else 문만 실행 되는듯 합니다.
특정링크걸기 가 되지 않고 본래링크만 됩니다.

해서 아래 부분에 echo "테이블값:{$bo_table}"; 추가해보면
bo_table 값이 넘어오지 못해서 비교가 안되는듯 한데요...

혹시 일반적인 최신글 스킨이 아니라 기간제 스킨이라
izen.hit.lib.php 파일을 extend 폴더에 올려서
<? echo izen_group('topclick', 'sell_board', wr_hit, 10, 32, 30); ?>
와 같이 사용하고 있어서 그런것은 아닌지.. ^^;

= 기간제 최신글 스킨 =
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=42102&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%B1%E2%B0%A3%C1%A6&sop=and

다시한번 도움 부탁드립니다. ^^*
2007-04-20 (금) 21:27:21
== izen.hit.lib.php==

<?
if (!defined('_GNUBOARD_')) exit;

/*
izen.group.lib.php
제작일 : 2006-12-08

지정 기간제 히트순 최근 게시물 수정본
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/7328

그룹 최신글 관련하여 통합하도록 하였다.
정렬 필드값에 의해서 SQL 문을 추가하도록 하면 된다.

izen_group('스킨', '그룹명', 정렬필드, 출력갯수, 자를 문자열, 최근 몇일간을 출력할 것인가?);
예) echo izen_group('gr_best_news', 'news', wr_hit, 10, 28, 30);
*/

# 인기글
function izen_usort1($a, $b)
{
return $b['wr_hit'] - $a['wr_hit'];
}

# 헤드라인
function izen_usort2($a, $b)
{
return $b['wr_good'] - $a['wr_good'];
}

# 최신글 추출
function izen_group($skin_dir="", $gr_id, $izen_sort, $rows=10, $subject_len=40, $listdate)
{
global $g4;

$nowYmd = date(Ymd); # 시작시간을 구합니다.
$time = time();
$startYmd = date("Ymd",strtotime("-".$listdate." day", $time));

if ($skin_dir)
{
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
}
else
{
$latest_skin_path = "$g4[path]/skin/latest/basic";
}

$list = array();

$sql= " select bo_table from {$g4['board_table']} where gr_id='$gr_id' and bo_use_search='1' order by bo_order_search ";
$ress = sql_query($sql);
for($i=0, $ii=0; $board=sql_fetch_array($ress); $ii++)
{
$tmp_write_table = $g4['write_prefix'] . $board['bo_table']; # 게시판 테이블 전체이름
#$sql = "select * from `$tmp_write_table` where wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $sort desc limit 0, $rows ";

# 정렬 필드에 의해서 전체적으로 정렬, 관리한다.
if ($izen_sort == 'wr_hit')
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_scrap')
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_scrap <> 0 order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_datetime') # wr_1 헤드라인
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_1 = 1 order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_good') #
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_good <> '0' order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_id')
{
$sql_gr_Q = " wr_is_comment <> '1' order by $izen_sort desc limit 0, $rows ";
}

$sql = " select * from `$tmp_write_table` where $sql_gr_Q ";
$result = sql_query($sql);

#for (; $row=sql_fetch_array($result); $i++) # *오류* 전체 게시물 가운데 날짜에 상관없이 히트순으로 지정한 갯수만큼 출력된다.
for ($i==0; $row=sql_fetch_array($result); $i++)
{
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len, $listdate);
}
}

if ($izen_sort == 'wr_hit')
{
usort($list, 'izen_usort1');
}

elseif ($izen_sort == 'wr_good')
{
usort($list, 'izen_usort2');
}

$list= array_slice($list, 0, $rows);

ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();

return $content;
}
?>
그럼.. $board['bo_table'] 로 해보세요.
2007-04-21 (토) 01:08:33
$board['bo_table'] 역시 안되는것 같습니다.
역시 본래 링크만 되어 버립니다. ^^;
죄송하지만 다시 도움요청 드려요... ^^*
위의 lib 화일입니다...

<?
if (!defined('_GNUBOARD_')) exit;

/*
izen.group.lib.php
제작일 : 2006-12-08

지정 기간제 히트순 최근 게시물 수정본
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/7328

그룹 최신글 관련하여 통합하도록 하였다.
정렬 필드값에 의해서 SQL 문을 추가하도록 하면 된다.

izen_group('스킨', '그룹명', 정렬필드, 출력갯수, 자를 문자열, 최근 몇일간을 출력할 것인가?);
예) echo izen_group('gr_best_news', 'news', wr_hit, 10, 28, 30);
*/

# 인기글
function izen_usort1($a, $b)
{
return $b['wr_hit'] - $a['wr_hit'];
}

# 헤드라인
function izen_usort2($a, $b)
{
return $b['wr_good'] - $a['wr_good'];
}

# 최신글 추출
function izen_group($skin_dir="", $gr_id, $izen_sort, $rows=10, $subject_len=40, $listdate)
{
global $g4;

$nowYmd = date(Ymd); # 시작시간을 구합니다.
$time = time();
$startYmd = date("Ymd",strtotime("-".$listdate." day", $time));

if ($skin_dir)
{
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
}
else
{
$latest_skin_path = "$g4[path]/skin/latest/basic";
}

$list = array();

$sql= " select bo_table from {$g4['board_table']} where gr_id='$gr_id' and bo_use_search='1' order by bo_order_search ";
$ress = sql_query($sql);
for($i=0, $ii=0; $board=sql_fetch_array($ress); $ii++)
{
$tmp_write_table = $g4['write_prefix'] . $board['bo_table']; # 게시판 테이블 전체이름
#$sql = "select * from `$tmp_write_table` where wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $sort desc limit 0, $rows ";

# 정렬 필드에 의해서 전체적으로 정렬, 관리한다.
if ($izen_sort == 'wr_hit')
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_scrap')
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_scrap <> 0 order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_datetime') # wr_1 헤드라인
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_1 = 1 order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_good') #
{
$sql_gr_Q = " wr_is_comment <> '1' and date_format(wr_datetime, '%Y%m%d') between '$startYmd' and '$nowYmd' and wr_good <> '0' order by $izen_sort desc limit 0, $rows ";
}
elseif ($izen_sort == 'wr_id')
{
$sql_gr_Q = " wr_is_comment <> '1' order by $izen_sort desc limit 0, $rows ";
}

$sql = " select * from `$tmp_write_table` where $sql_gr_Q ";
$result = sql_query($sql);

#for (; $row=sql_fetch_array($result); $i++) # *오류* 전체 게시물 가운데 날짜에 상관없이 히트순으로 지정한 갯수만큼 출력된다.
for ($i==0; $row=sql_fetch_array($result); $i++)
{

$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len, $listdate);
$list[$i]['bo_table'] = $board['bo_table'];
}

}

if ($izen_sort == 'wr_hit')
{
usort($list, 'izen_usort1');
}

elseif ($izen_sort == 'wr_good')
{
usort($list, 'izen_usort2');
}

$list= array_slice($list, 0, $rows);

ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();

return $content;
}
?>
출력부분은

치에님 소스를

echo "<a href='{$list[$i]['href']}' target=ucc>";
요걸..

if ($list[$i][bo_table] =="게시판아이디") { //특정게시판만..
echo "<a href='네이버(특정 링크)' target=ucc>"; //특정 링크 걸기
} else { //그외게시판은..
echo "<a href='{$list[$i]['href']}' target=ucc>"; //본래링크 그대로 걸기
}
2007-04-21 (토) 02:01:29
감사드립니다. 지앤미 님 말씀하신대로 하여서 해결이 되었습니다. ^^*
치에 님께도 정말 감사드립니다. 두분에게 모두 포인트를 드려야 되는데..
여건상 한분에게만.. 치에님 죄송~~ ^^;;
치에 님 , 지앤미 님 다시 한번 감사드리며, 즐거운 주말되시길 바랍니다. ^^*
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

66,531건

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
07-04-20 조회 2,046
07-04-20 조회 1,597
07-04-20 조회 1,601
07-04-20 조회 1,593
07-04-20 조회 2,005
07-04-20 조회 2,011
07-04-20 조회 1,684
07-04-20 조회 1,701
07-04-19 조회 1,737
07-04-19 조회 1,647
07-04-19 조회 1,642
07-04-19 조회 1,614
07-04-19 조회 1,590
07-04-19 조회 1,593
07-04-19 조회 1,607
07-04-19 조회 1,745
07-04-19 조회 1,883
07-04-19 조회 1,602
07-04-19 조회 1,730
07-04-19 조회 2,047