질문드립니다. 여러 게시판에서 추출한 최신글 목록에서 제목 클릭시 새창 띄우는 방법...
본문
혼자 끙끙거리다가 도저히 해결이 안되어 도움 말씀 청합니다..
최종 질문은 "여러 게시판에서 최신글을 추출한 후(여기까지는 성공) 최신글 제목을 클릭시 새창으로 띄우려면 어떻게 해야 할까요???" 입니다.
1) index.php 에서
echo latest_multi("스킨명", 게시판명1,게시판명2,게시판명3,게시판명4, 9, 20, "basic/on//on");
와 같이 여러 게시판에서 최신글 추출을 했습니다.
(latest_multi 는 function으로 latest.lib.php 에 추가해 놓은 상태임)
와 같이 여러 게시판에서 최신글 추출을 했습니다.
(latest_multi 는 function으로 latest.lib.php 에 추가해 놓은 상태임)
2) 그누보드 어딘가에서 받은(출처가 기억나지 않네요..;;;) popup.php를 해당 스킨 폴더 아래에 업로드
3) latest.skin.php 에서
echo "<a href=\"javascript:popup_window('$latest_skin_path/popup.php?bo_table=$board[bo_table]&wr_id={$list[$i][wr_id]}','winBoard','left=150, top=50, width=650, height=500, scrollbars=1')\">{$list[$i]['subject']}</a>";
와 같이 (여러 게시판에서 추출된)최신글 리스트에서 제목 클릭시 본문 새창으로 띄우기 적용.
▶ 위와 같이 진행하고 index.php 를 접속하여
최신글 리스트의 글제목을 클릭하면
새창이 뜨고(페이지를 찾을 수 없다는 메세지를 담은..)
추가로 "글이 존재하지 않습니다. 글이 삭제되었거나 이동된 경우입니다." 라는 알람창이 뜹니다.
▶ 단, 여러 게시판이 아닌 하나의 게시판으로 테스트 ( index.php에서 echo latest("스킨명", 게시판명1, 9, 20, "basic/on//on"); 로 놓고)하면 정상적으로 새창이 뜨는데요
여러 게시판에서 최신글을 추출하게 되면서 latest.skin.php 에서 테이블을 읽어오지 못하기 때문에 글이 존재하지 않는다는 것으로 추정....이 됩니다.
(질문을 올리는 이유는 그 해결 방법을 알 수가 없는 초보이기 때문에... -,.-;;;;)
▶▶▶ 여러 게시판에서 최신글을 추출한 후 (여기까지는 성공) 최신글 제목을 클릭시 새창으로 띄우려면 어떻게 해야 할까요???
조언 해주시면 감사하겠습니다. (--)(__)
참고내용1) : popup.php,
----------------------------------------------------------------
<?
$g4_path = "../../..";
$g4_path = "../../..";
include_once("$g4_path/common.php");
// wr_id 값이 있으면 글읽기
if ($wr_id) {
// 글이 없을 경우 해당 게시판 목록으로 이동
if (!$write[wr_id]) {
$msg = "글이 존재하지 않습니다.\\n\\n글이 삭제되었거나 이동된 경우입니다.";
if ($cwin)
alert_close($msg);
else
alert($msg, "./board.php?bo_table=$bo_table");
}
if ($wr_id) {
// 글이 없을 경우 해당 게시판 목록으로 이동
if (!$write[wr_id]) {
$msg = "글이 존재하지 않습니다.\\n\\n글이 삭제되었거나 이동된 경우입니다.";
if ($cwin)
alert_close($msg);
else
alert($msg, "./board.php?bo_table=$bo_table");
}
// 로그인된 회원의 권한이 설정된 읽기 권한보다 작다면
if ($member[mb_level] < $board[bo_read_level]) {
if ($member[mb_id])
alert("글을 읽을 권한이 없습니다.");
else
alert("글을 읽을 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}
if ($member[mb_level] < $board[bo_read_level]) {
if ($member[mb_id])
alert("글을 읽을 권한이 없습니다.");
else
alert("글을 읽을 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}
// 자신의 글이거나 관리자라면 통과
if (($write[mb_id] && $write[mb_id] == $member[mb_id]) || $is_admin)
;
else {
// 비밀글이라면
if (strstr($write[wr_option], "secret")) {
$ss_name = "ss_secret_{$bo_table}_$write[wr_num]";
//$ss_name = "ss_secret_{$bo_table}_{$wr_id}";
// 한번 읽은 게시물의 번호는 세션에 저장되어 있고 같은 게시물을 읽을 경우는 다시 패스워드를 묻지 않습니다.
// 이 게시물이 저장된 게시물이 아니면서 관리자가 아니라면
//if ("$bo_table|$write[wr_num]" != get_session("ss_secret"))
if (!get_session($ss_name))
goto_url("./password.php?w=s&bo_table=$bo_table&wr_id=$wr_id{$qstr}");
if (($write[mb_id] && $write[mb_id] == $member[mb_id]) || $is_admin)
;
else {
// 비밀글이라면
if (strstr($write[wr_option], "secret")) {
$ss_name = "ss_secret_{$bo_table}_$write[wr_num]";
//$ss_name = "ss_secret_{$bo_table}_{$wr_id}";
// 한번 읽은 게시물의 번호는 세션에 저장되어 있고 같은 게시물을 읽을 경우는 다시 패스워드를 묻지 않습니다.
// 이 게시물이 저장된 게시물이 아니면서 관리자가 아니라면
//if ("$bo_table|$write[wr_num]" != get_session("ss_secret"))
if (!get_session($ss_name))
goto_url("./password.php?w=s&bo_table=$bo_table&wr_id=$wr_id{$qstr}");
set_session($ss_name, TRUE);
}
}
}
}
// 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!get_session($ss_name))
{
sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");
$ss_name = "ss_view_{$bo_table}_{$wr_id}";
if (!get_session($ss_name))
{
sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");
// 자신의 글이면 통과
if ($write[mb_id] && $write[mb_id] == $member[mb_id])
;
else {
// 회원이상 글읽기가 가능하다면
//if ($board[bo_read_level] > 1) {
// 글읽기 포인트가 음수이고 회원의 포인트가 0 이거나 작다면
//if ($board[bo_read_point] < 0 && $member[mb_point] <= 0)
if ($member[mb_point] + $board[bo_read_point] < 0)
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없어나 모자라서 글읽기(".number_format($board[bo_read_point]).")가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.");
if ($write[mb_id] && $write[mb_id] == $member[mb_id])
;
else {
// 회원이상 글읽기가 가능하다면
//if ($board[bo_read_level] > 1) {
// 글읽기 포인트가 음수이고 회원의 포인트가 0 이거나 작다면
//if ($board[bo_read_point] < 0 && $member[mb_point] <= 0)
if ($member[mb_point] + $board[bo_read_point] < 0)
alert("보유하신 포인트(".number_format($member[mb_point]).")가 없어나 모자라서 글읽기(".number_format($board[bo_read_point]).")가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.");
insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기");
//}
}
//}
}
set_session($ss_name, TRUE);
}
}
$g4[title] = "$group[gr_subject] > $board[bo_subject] > " . strip_tags(conv_subject($write[wr_subject], 255));
} else {
if ($member[mb_level] < $board[bo_list_level]) {
if ($member[mb_id])
alert("목록을 볼 권한이 없습니다.");
else
alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}
} else {
if ($member[mb_level] < $board[bo_list_level]) {
if ($member[mb_id])
alert("목록을 볼 권한이 없습니다.");
else
alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}
if (!$page) $page = 1;
$g4[title] = "$group[gr_subject] > $board[bo_subject] $page 페이지";
}
}
include_once("$g4[path]/head.sub.php");
$view = get_view($write, $board, $board_skin_path);
if (strstr($sfl, "subject"))
$view[subject] = search_font($stx, $view[subject]);
$view[subject] = search_font($stx, $view[subject]);
$html = 0;
if (strstr($view[wr_option], "html1"))
$html = 1;
else if (strstr($view[wr_option], "html2"))
$html = 2;
if (strstr($view[wr_option], "html1"))
$html = 1;
else if (strstr($view[wr_option], "html2"))
$html = 2;
$view[content] = conv_content($view[wr_content], $html);
if (strstr($sfl, "content"))
$view[content] = search_font($stx, $view[content]);
$view[content] = preg_replace("/(\<img )([^\>]*)(\>)/i", "\\1 name='target_resize_image[]' onclick='image_window(this)' style='cursor:pointer;' \\2 \\3", $view[content]);
if (strstr($sfl, "content"))
$view[content] = search_font($stx, $view[content]);
$view[content] = preg_replace("/(\<img )([^\>]*)(\>)/i", "\\1 name='target_resize_image[]' onclick='image_window(this)' style='cursor:pointer;' \\2 \\3", $view[content]);
// 트랙백
$trackback_url = "";
if ($member[mb_level] >= $board[bo_trackback_level])
$trackback_url = "$g4[url]/$g4[bbs]/tb.php/$bo_table/$wr_id";
$trackback_url = "";
if ($member[mb_level] >= $board[bo_trackback_level])
$trackback_url = "$g4[url]/$g4[bbs]/tb.php/$bo_table/$wr_id";
// 현재글의 스크랩 카운트
$temp =mysql_fetch_array(mysql_query("select count(*) from g4_scrap where bo_table='$bo_table' and wr_id = $wr_id"));
$scrap_count = $temp[0];
$temp =mysql_fetch_array(mysql_query("select count(*) from g4_scrap where bo_table='$bo_table' and wr_id = $wr_id"));
$scrap_count = $temp[0];
// 이모티콘
function emoticon_html($str, $board_skin_path)
{
function emoticon_html($str, $board_skin_path)
{
for($i=1; $i<=120; $i++) {
if($i < 10) {
$emo_id = "emoticon_00$i";
} else if($i < 100) {
$emo_id = "emoticon_0$i";
} else {
$emo_id = "emoticon_$i";
}
$img_src = "<img src='$board_skin_path/emoticons/$i.gif' width=18 height=18 border=0 title=$emo_id>";
$str = eregi_replace($emo_id, $img_src, $str);
}
if($i < 10) {
$emo_id = "emoticon_00$i";
} else if($i < 100) {
$emo_id = "emoticon_0$i";
} else {
$emo_id = "emoticon_$i";
}
$img_src = "<img src='$board_skin_path/emoticons/$i.gif' width=18 height=18 border=0 title=$emo_id>";
$str = eregi_replace($emo_id, $img_src, $str);
}
return $str;
}
}
?>
<script language="javascript" src="<?=$g4[path]?>/js/sideview.js"></script>
<!--<link rel='stylesheet' href='<?=$board_skin_path?>/style01.css' type='text/css'> -->
<style>
a:link, a:visited, a:active { text-decoration:none; color:#111111; }
a:hover { text-decoration:underline; color:#111111; }
.content { color:#111111; font-size:10pt; font-weight: normal; } /* 내용보기에서 본문 */
.lh { line-height:200%; } /* 내용보기에서 줄간격 */
</style>
<style>
a:link, a:visited, a:active { text-decoration:none; color:#111111; }
a:hover { text-decoration:underline; color:#111111; }
.content { color:#111111; font-size:10pt; font-weight: normal; } /* 내용보기에서 본문 */
.lh { line-height:200%; } /* 내용보기에서 줄간격 */
</style>
<br>
<table width=95% border=0 align=center cellpadding=0 cellspacing=0>
<tr><td colspan=2 height=1 bgcolor=#000000></td></tr>
<tr><td colspan=2 height=30 class=content>제 목 : <?=$view[subject]?></td></tr>
<tr><td colspan=2 height=1 bgcolor=#000000></td></tr>
<tr><td height=25 width=50% class=content align=left>이 름 : <?=$view[name]?></td><td width=50% align=right>작성일자 : <?=substr($view[wr_datetime],2,14)?> </td></tr>
<tr><td colspan=2 height=25 class=content>
<tr><td colspan=2 height=1 bgcolor=#000000></td></tr>
<tr><td colspan=2 height=30 class=content>제 목 : <?=$view[subject]?></td></tr>
<tr><td colspan=2 height=1 bgcolor=#000000></td></tr>
<tr><td height=25 width=50% class=content align=left>이 름 : <?=$view[name]?></td><td width=50% align=right>작성일자 : <?=substr($view[wr_datetime],2,14)?> </td></tr>
<tr><td colspan=2 height=25 class=content>
<? if ($trackback_url) { ?>
트랙백 주소 : <a href="javascript:clipboard_trackback('<?=$trackback_url?>');" style="letter-spacing:0;" title='이 글을 소개할 때는 이 주소를 사용하세요'><?=$trackback_url?></a>
<script language="JavaScript">
function clipboard_trackback(str) {
if (g4_is_gecko)
prompt("이 글의 고유주소입니다. Ctrl+C를 눌러 복사하세요.", str);
else if (g4_is_ie) {
window.clipboardData.setData("Text", str);
alert("트랙백 주소가 복사되었습니다.\n\n<?=$trackback_url?>");
}
}
</script>
<? } ?>
트랙백 주소 : <a href="javascript:clipboard_trackback('<?=$trackback_url?>');" style="letter-spacing:0;" title='이 글을 소개할 때는 이 주소를 사용하세요'><?=$trackback_url?></a>
<script language="JavaScript">
function clipboard_trackback(str) {
if (g4_is_gecko)
prompt("이 글의 고유주소입니다. Ctrl+C를 눌러 복사하세요.", str);
else if (g4_is_ie) {
window.clipboardData.setData("Text", str);
alert("트랙백 주소가 복사되었습니다.\n\n<?=$trackback_url?>");
}
}
</script>
<? } ?>
</td></tr>
<tr><td colspan=2 height=1 bgcolor=#000000></td></tr>
<tr><td colspan=2 height=1 bgcolor=#000000></td></tr>
<!-- root님 팁 적용 -->
<?
if($board[bo_2]) {
$smark = substr($board[bo_2],0,1); // 제목의 구분자를 파악한다.
$itemtitle = explode("$smark", $board[bo_2]); // 제목 구분자로 제목을 나눈다.
<?
if($board[bo_2]) {
$smark = substr($board[bo_2],0,1); // 제목의 구분자를 파악한다.
$itemtitle = explode("$smark", $board[bo_2]); // 제목 구분자로 제목을 나눈다.
// 각항목의 값과 각항목의 제목이 모두 존재할경우 항목을 보여준다.
if($write[wr_1] && $itemtitle[1]) { echo "<tr><td colspan=2 height=1 bgcolor=#C3BEB2></td></tr>
<tr><td colspan=2 height=25> <font color=cf4900>$itemtitle[1]</font> : $write[wr_1]</td></tr>"; }
if($write[wr_2] && $itemtitle[2]) { echo "<tr><td colspan=2 height=1 bgcolor=#C3BEB2></td></tr>
<tr><td colspan=2 height=25> <font color=cf4900>$itemtitle[2]</font> : $write[wr_2]</td></tr>"; }
if($write[wr_3] && $itemtitle[3]) { echo "<tr><td colspan=2 height=1 bgcolor=#C3BEB2></td></tr>
<tr><td colspan=2 height=25> <font color=cf4900>$itemtitle[3]</font> : $write[wr_3]</td></tr>"; }
if($write[wr_4] && $itemtitle[4]) { echo "<tr><td colspan=2 height=1 bgcolor=#C3BEB2></td></tr>
<tr><td colspan=2 height=25> <font color=cf4900>$itemtitle[4]</font> : $write[wr_4]</td></tr>"; }
if($write[wr_5] && $itemtitle[5]) { echo "<tr><td colspan=2 height=1 bgcolor=#C3BEB2></td></tr>
<tr><td colspan=2 height=25> <font color=cf4900>$itemtitle[5]</font> : $write[wr_5]</td></tr>"; }
}
?>
if($write[wr_1] && $itemtitle[1]) { echo "<tr><td colspan=2 height=1 bgcolor=#C3BEB2></td></tr>
<tr><td colspan=2 height=25> <font color=cf4900>$itemtitle[1]</font> : $write[wr_1]</td></tr>"; }
if($write[wr_2] && $itemtitle[2]) { echo "<tr><td colspan=2 height=1 bgcolor=#C3BEB2></td></tr>
<tr><td colspan=2 height=25> <font color=cf4900>$itemtitle[2]</font> : $write[wr_2]</td></tr>"; }
if($write[wr_3] && $itemtitle[3]) { echo "<tr><td colspan=2 height=1 bgcolor=#C3BEB2></td></tr>
<tr><td colspan=2 height=25> <font color=cf4900>$itemtitle[3]</font> : $write[wr_3]</td></tr>"; }
if($write[wr_4] && $itemtitle[4]) { echo "<tr><td colspan=2 height=1 bgcolor=#C3BEB2></td></tr>
<tr><td colspan=2 height=25> <font color=cf4900>$itemtitle[4]</font> : $write[wr_4]</td></tr>"; }
if($write[wr_5] && $itemtitle[5]) { echo "<tr><td colspan=2 height=1 bgcolor=#C3BEB2></td></tr>
<tr><td colspan=2 height=25> <font color=cf4900>$itemtitle[5]</font> : $write[wr_5]</td></tr>"; }
}
?>
<!--<tr><td colspan=2 height=1 bgcolor=#D4CFC3></td></tr>-->
<tr>
<td colspan=2>
<table width=100% cellpadding=5>
<tr>
<td style='word-break:break-all;' class='lh' height=100>
<?
// 파일 출력
for ($i=0; $i<=count($view[file]); $i++) {
if ($view[file][$i][view])
echo $view[file][$i][view] . "<p>" . $view[file][$i][content] . "<p>";
}
$view[content] = emoticon_html($view[content], $board_skin_path);
echo "<span class='content'>$view[content]</span>";
?>
echo "<span class='content'>$view[content]</span>";
?>
<?//echo $view[rich_content]; // view_image($view, '0', '') 과 같은 코드를 사용할 경우?>
<!-- 테러 태그 방지용 -->
</xml></xmp><a href=""></a><a href=''></a>
</td>
</tr>
</xml></xmp><a href=""></a><a href=''></a>
</td>
</tr>
<?
// 가변 파일
$cnt = 0;
for ($i=0; $i<count($view[file]); $i++) {
if ($view[file][$i][source] && !$view[file][$i][view]) {
$cnt++;
echo <<<HEREDOC
<tr><td class=tt> <img src='$board_skin_path/img/icon_file.gif' align='absmiddle'> <a href='{$view[file][$i][href]}' title='{$view[file][$i][content]}'><span class=tt>{$view[file][$i][source]}</span> ({$view[file][$i][size]}), Down:{$view[file][$i][download]}, {$view[file][$i][datetime]}</a></td></tr>
HEREDOC;
}
}
// 링크
$cnt = 0;
for ($i=1; $i<=$g4[link_count]; $i++) {
if ($view[link][$i]) {
$cnt++;
$link = cut_str($view[link][$i], 70);
echo <<<HEREDOC
<tr><td class=tt> <img src='$board_skin_path/img/icon_link.gif' align='absmiddle'> <a href="{$view[link_href][$i]}" target="_blank"><span class=tt>{$link}</span></a>, Hit:{$view[link_hit][$i]}</td></tr>
HEREDOC;
}
}
?>
$cnt = 0;
for ($i=1; $i<=$g4[link_count]; $i++) {
if ($view[link][$i]) {
$cnt++;
$link = cut_str($view[link][$i], 70);
echo <<<HEREDOC
<tr><td class=tt> <img src='$board_skin_path/img/icon_link.gif' align='absmiddle'> <a href="{$view[link_href][$i]}" target="_blank"><span class=tt>{$link}</span></a>, Hit:{$view[link_hit][$i]}</td></tr>
HEREDOC;
}
}
?>
<? if ($is_signature) { echo "<tr><td>$signature</td></tr>"; } // 서명 출력 ?>
</table>
</td>
</tr>
<tr><td colspan="100" height="1" bgcolor="E7E7E7"></td></tr>
</table>
</table>
<!-- 코멘트 시작 -->
<?
// 자동등록방지
include_once ("$g4[bbs_path]/norobot.inc.php");
<?
// 자동등록방지
include_once ("$g4[bbs_path]/norobot.inc.php");
$list = array();
$is_comment_write = false;
if ($member[mb_level] >= $board[bo_comment_level])
$is_comment_write = true;
if ($member[mb_level] >= $board[bo_comment_level])
$is_comment_write = true;
// 코멘트 출력
//$sql = " select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 order by wr_comment desc, wr_comment_reply ";
$sql = " select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 order by wr_comment, wr_comment_reply ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$list[$i] = $row;
//$sql = " select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 order by wr_comment desc, wr_comment_reply ";
$sql = " select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 order by wr_comment, wr_comment_reply ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$list[$i] = $row;
//$list[$i][name] = get_sideview($row[mb_id], cut_str($row[wr_name], 20, ''), $row[wr_email], $row[wr_homepage]);
$tmp_name = get_text(cut_str($row[wr_name], $config[cf_cut_name])); // 설정된 자리수 만큼만 이름 출력
if ($board[bo_use_sideview])
$list[$i][name] = get_sideview($row[mb_id], $tmp_name, $row[wr_email], $row[wr_homepage]);
else
$list[$i][name] = "<span class='".($row[mb_id]?'member':'guest')."'>$tmp_name</span>";
if ($board[bo_use_sideview])
$list[$i][name] = get_sideview($row[mb_id], $tmp_name, $row[wr_email], $row[wr_homepage]);
else
$list[$i][name] = "<span class='".($row[mb_id]?'member':'guest')."'>$tmp_name</span>";
// 공백없이 연속 입력한 문자 자르기 (way 보드 참고. way.co.kr)
//$list[$i][content] = eregi_replace("[^ \n<>]{130}", "\\0\n", $row[wr_content]);
$list[$i][content] = $list[$i][content1]= "비밀글 입니다.";
if (!strstr($row[wr_option], "secret") ||
$is_admin ||
($write[mb_id]==$member[mb_id] && $member[mb_id]) ||
($row[mb_id]==$member[mb_id] && $member[mb_id])) {
$list[$i][content1] = $row[wr_content];
$list[$i][content] = conv_content($row[wr_content], 0, 'wr_content');
$list[$i][content] = search_font($stx, $list[$i][content]);
}
if (!strstr($row[wr_option], "secret") ||
$is_admin ||
($write[mb_id]==$member[mb_id] && $member[mb_id]) ||
($row[mb_id]==$member[mb_id] && $member[mb_id])) {
$list[$i][content1] = $row[wr_content];
$list[$i][content] = conv_content($row[wr_content], 0, 'wr_content');
$list[$i][content] = search_font($stx, $list[$i][content]);
}
$list[$i][trackback] = url_auto_link($row[wr_trackback]);
$list[$i][datetime] = substr($row[wr_datetime],2,14);
$list[$i][datetime] = substr($row[wr_datetime],2,14);
// 관리자가 아니라면 중간 IP 주소를 감춘후 보여줍니다.
$list[$i][ip] = $row[wr_ip];
if (!$is_admin)
$list[$i][ip] = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", "\\1.♡.\\3.\\4", $row[wr_ip]);
$list[$i][ip] = $row[wr_ip];
if (!$is_admin)
$list[$i][ip] = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", "\\1.♡.\\3.\\4", $row[wr_ip]);
$list[$i][is_reply] = false;
$list[$i][is_edit] = false;
$list[$i][is_del] = false;
if ($is_comment_write || $is_admin)
{
if ($member[mb_id])
{
if ($row[mb_id] == $member[mb_id] || $is_admin)
{
$list[$i][del_link] = "./delete_comment.php?bo_table=$bo_table&comment_id=$row[wr_id]&cwin=$cwin&page=$page".$qstr;
$list[$i][is_edit] = true;
$list[$i][is_del] = true;
}
}
else
{
if (!$row[mb_id]) {
$list[$i][del_link] = "./password.php?w=x&bo_table=$bo_table&comment_id=$row[wr_id]&cwin=$cwin&page=$page".$qstr;
$list[$i][is_del] = true;
}
}
$list[$i][is_edit] = false;
$list[$i][is_del] = false;
if ($is_comment_write || $is_admin)
{
if ($member[mb_id])
{
if ($row[mb_id] == $member[mb_id] || $is_admin)
{
$list[$i][del_link] = "./delete_comment.php?bo_table=$bo_table&comment_id=$row[wr_id]&cwin=$cwin&page=$page".$qstr;
$list[$i][is_edit] = true;
$list[$i][is_del] = true;
}
}
else
{
if (!$row[mb_id]) {
$list[$i][del_link] = "./password.php?w=x&bo_table=$bo_table&comment_id=$row[wr_id]&cwin=$cwin&page=$page".$qstr;
$list[$i][is_del] = true;
}
}
if (strlen($row[wr_comment_reply]) < 5)
$list[$i][is_reply] = true;
}
$list[$i][is_reply] = true;
}
// 05.05.22
// 답변있는 코멘트는 수정, 삭제 불가
if ($i > 0 && !$is_admin)
{
if ($row[wr_comment_reply])
{
$tmp_comment_reply = substr($row[wr_comment_reply], 0, strlen($row[wr_comment_reply]) - 1);
if ($tmp_comment_reply == $list[$i-1][wr_comment_reply])
{
$list[$i-1][is_edit] = false;
$list[$i-1][is_del] = false;
}
}
}
}
// 답변있는 코멘트는 수정, 삭제 불가
if ($i > 0 && !$is_admin)
{
if ($row[wr_comment_reply])
{
$tmp_comment_reply = substr($row[wr_comment_reply], 0, strlen($row[wr_comment_reply]) - 1);
if ($tmp_comment_reply == $list[$i-1][wr_comment_reply])
{
$list[$i-1][is_edit] = false;
$list[$i-1][is_del] = false;
}
}
}
}
// 코멘트수 제한 설정값
if ($is_admin)
{
$comment_min = $comment_max = 0;
}
else
{
$comment_min = (int)$board[bo_comment_min];
$comment_max = (int)$board[bo_comment_max];
}
if ($is_admin)
{
$comment_min = $comment_max = 0;
}
else
{
$comment_min = (int)$board[bo_comment_min];
$comment_max = (int)$board[bo_comment_max];
}
//include_once("$board_skin_path/view_comment.skin.php");
// 필터
echo "<script language='javascript'> var g4_cf_filter = '$config[cf_filter]'; </script>\n";
echo "<script language='javascript' src='$g4[path]/js/filter.js'></script>\n";
echo "<script language='javascript'> var g4_cf_filter = '$config[cf_filter]'; </script>\n";
echo "<script language='javascript' src='$g4[path]/js/filter.js'></script>\n";
if (!$member[mb_id]) // 비회원일 경우에만
echo "<script language='javascript' src='$g4[path]/js/md5.js'></script>\n";
echo "<script language='javascript' src='$g4[path]/js/md5.js'></script>\n";
<br>
<!-- 코멘트 리스트 -->
<?
for ($i=0; $i<count($list); $i++) {
$comment_id = $list[$i][wr_id];
?>
<a name="c_<?=$comment_id?>"></a>
<table width=95% border=0 align=center cellpadding=0 cellspacing=0>
<tr>
<td valign=top><? for ($k=0; $k<strlen($list[$i][wr_comment_reply]); $k++) echo " "; ?></td>
<td width='100%'>
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td>
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td colspan=2 height=1 bgcolor=#444444></td></tr>
<tr>
<td width="" height="25" align="left" valign="middle" class='vc_pad2'><?=$list[$i][name]?><? if ($is_admin == "super") { ?><? if ($is_ip_view) { echo " ({$list[$i][ip]})"; } ?><? } ?></td>
<td width="300" align="right" valign="middle" class='vc_pad2'>
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td align="right" style="PADDING-RIGHT: 5px"><?=$list[$i][datetime]?></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" align="left" valign="top" class='vc_pad1 lh' height="50" style='word-break:break-all;'>
<!-- 코멘트 출력 -->
<span class="content"><?=$list[$i][content]?></span>
<? if ($list[$i][trackback]) { echo "<p>".$list[$i][trackback]."</p>"; } ?>
<!-- 코멘트 리스트 -->
<?
for ($i=0; $i<count($list); $i++) {
$comment_id = $list[$i][wr_id];
?>
<a name="c_<?=$comment_id?>"></a>
<table width=95% border=0 align=center cellpadding=0 cellspacing=0>
<tr>
<td valign=top><? for ($k=0; $k<strlen($list[$i][wr_comment_reply]); $k++) echo " "; ?></td>
<td width='100%'>
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td>
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td colspan=2 height=1 bgcolor=#444444></td></tr>
<tr>
<td width="" height="25" align="left" valign="middle" class='vc_pad2'><?=$list[$i][name]?><? if ($is_admin == "super") { ?><? if ($is_ip_view) { echo " ({$list[$i][ip]})"; } ?><? } ?></td>
<td width="300" align="right" valign="middle" class='vc_pad2'>
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td align="right" style="PADDING-RIGHT: 5px"><?=$list[$i][datetime]?></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" align="left" valign="top" class='vc_pad1 lh' height="50" style='word-break:break-all;'>
<!-- 코멘트 출력 -->
<span class="content"><?=$list[$i][content]?></span>
<? if ($list[$i][trackback]) { echo "<p>".$list[$i][trackback]."</p>"; } ?>
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td height=20></td></tr></table>
<textarea id='save_comment_<?=$comment_id?>' style='display:none;'><?=get_text($list[$i][wr_content], 0)?></textarea>
<span id='edit_<?=$comment_id?>' style='display:none;'></span><!-- 수정 -->
<span id='reply_<?=$comment_id?>' style='display:none;'></span><!-- 답변 -->
</td>
</tr>
</table>
</td>
</tr>
</table>
<? } ?>
<!-- 코멘트 리스트 -->
<tr><td height=20></td></tr></table>
<textarea id='save_comment_<?=$comment_id?>' style='display:none;'><?=get_text($list[$i][wr_content], 0)?></textarea>
<span id='edit_<?=$comment_id?>' style='display:none;'></span><!-- 수정 -->
<span id='reply_<?=$comment_id?>' style='display:none;'></span><!-- 답변 -->
</td>
</tr>
</table>
</td>
</tr>
</table>
<? } ?>
<!-- 코멘트 리스트 -->
<!-- 코멘트 끝 -->
<table width=95% border=0 align=center cellpadding=0 cellspacing=0>
<tr>
<td colspan=2 height="35" align="right"><b><a href=javascript:self.close()><span style="font-size:9pt;">창닫기</span></a> <span style="font-size:9pt;"><a href="javascript:window.print();">프린트하기</a></span></b>
</td>
</tr>
</table><br>
<tr>
<td colspan=2 height="35" align="right"><b><a href=javascript:self.close()><span style="font-size:9pt;">창닫기</span></a> <span style="font-size:9pt;"><a href="javascript:window.print();">프린트하기</a></span></b>
</td>
</tr>
</table><br>
<script language="JavaScript">
// HTML 로 넘어온 <img ... > 태그의 폭이 테이블폭보다 크다면 테이블폭을 적용한다.
function resize_image()
{
var target = document.getElementsByName('target_resize_image[]');
var image_width = parseInt('<?=$board[bo_image_width]?>');
var image_height = 0;
for(i=0; i<target.length; i++) {
// 원래 사이즈를 저장해 놓는다
target[i].tmp_width = target[i].width;
target[i].tmp_height = target[i].height;
// 이미지 폭이 테이블 폭보다 크다면 테이블폭에 맞춘다
if(target[i].width > image_width) {
image_height = parseFloat(target[i].width / target[i].height)
target[i].width = image_width;
target[i].height = parseInt(image_width / image_height);
}
}
}
// 원래 사이즈를 저장해 놓는다
target[i].tmp_width = target[i].width;
target[i].tmp_height = target[i].height;
// 이미지 폭이 테이블 폭보다 크다면 테이블폭에 맞춘다
if(target[i].width > image_width) {
image_height = parseFloat(target[i].width / target[i].height)
target[i].width = image_width;
target[i].height = parseInt(image_width / image_height);
}
}
}
window.onload = resize_image;
</script>
-------------------------------------------------------------------
</script>
-------------------------------------------------------------------
참고내용2) : latest.lib.php
<?
if (!defined('_GNUBOARD_')) exit;
if (!defined('_GNUBOARD_')) exit;
// 최신글 추출
function latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="")
{
global $g4;
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/basic";
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/basic";
$list = array();
$sql = " select * from $g4[board_table] where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$board = sql_fetch($sql);
$tmp_write_table = $g4['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
//$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $rows ";
// 위의 코드 보다 속도가 빠름
$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_num limit 0, $rows ";
//explain($sql);
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
//$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $rows ";
// 위의 코드 보다 속도가 빠름
$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_num limit 0, $rows ";
//explain($sql);
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
}
// 최신글 추출 (다중 테이블) 2014년5월2일 생성
function latest_multi($skin_dir="", $bo_table1,$bo_table2,$bo_table3,$bo_table4, $rows=10, $subject_len=40, $options="")
{
global $g4;
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/basic";
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/basic";
$list = array();
$sql = " select * from $g4[board_new_table] a, $g4[board_table] b
where a.bo_table = b.bo_table
and a.bo_table in('$bo_table1', '$bo_table2', '$bo_table3', '$bo_table4')
and a.wr_id = a.wr_parent
order by a.bn_id desc
limit $rows ";
$result = sql_query($sql);
where a.bo_table = b.bo_table
and a.bo_table in('$bo_table1', '$bo_table2', '$bo_table3', '$bo_table4')
and a.wr_id = a.wr_parent
order by a.bn_id desc
limit $rows ";
$result = sql_query($sql);
for ($i=0; $board=sql_fetch_array($result); $i++)
{
$tmp_write_table = $g4[write_prefix] . $board[bo_table];
{
$tmp_write_table = $g4[write_prefix] . $board[bo_table];
$sql = "select * from $tmp_write_table where wr_id = '$board[wr_id]'";
$result2 = sql_query($sql);
$row2 = sql_fetch_array($result2);
$list[$i] = get_list($row2, $board, $latest_skin_path, $subject_len);
$list[$i][bo_table] = $board[bo_table];
}
$result2 = sql_query($sql);
$row2 = sql_fetch_array($result2);
$list[$i] = get_list($row2, $board, $latest_skin_path, $subject_len);
$list[$i][bo_table] = $board[bo_table];
}
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
}
?>
답변 2
popup.php?bo_table=$board[bo_table] <--- 여기 값이 틀렸습니다
수정 popup.php?bo_table={$list[$i][bo_table]} ~~~
Wow!!! 단박에 해결되었습니다!! ^^
정말 감사드립니다~~~~~~~^0^
답변을 작성하시기 전에 로그인 해주세요.