검색결과에서 이미지 불러오기에 관하여

· 2013-05-04 (토) 12:20:11 · 1838 · 4
rims님의 전체검색스킨을 사용하고 있는데요. 오늘 발견했는데, 검색결과에서 이미지를 불러오긴 하는데, 첨부파일로 첨부된것만 불러오고, 에디터에서 삽입한 이미지는 불러오지 않고 있네요.
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=130650&sca=%EC%A0%84%EC%B2%B4%EA%B2%80%EC%83%89

첨부파일 이미지, 에디터에서 삽입한 이미지 모두를 불러오게 하려면 어디를 어떻게 수정하면 되는지 알려주시면 고맙겠습니다.....

아래 스킨 소스입니다.
search.skin.php
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<!--
<form name=fsearch method=get onsubmit="return fsearch_submit(this);" style="margin:0px;">
<table align=center width=95% cellpadding=2 cellspacing=0>
<input type="hidden" name="srows" value="<?=$srows?>">
<tr>
<td align=center>
<?=$group_select?>
<script type="text/javascript">document.getElementById("gr_id").value = "<?=$gr_id?>";</script>

<select name=sfl class=select>
<option value="wr_subject||wr_content">제목+내용</option>
<option value="wr_subject">제목</option>
<option value="wr_content">내용</option>
<option value="mb_id">회원아이디</option>
<option value="wr_name">이름</option>
</select>

<input type=text name=stx class=ed maxlength=20 required itemname="검색어" value='<?=$text_stx?>'>

<input type=submit value=" 검 색 ">

<script type="text/javascript">
document.fsearch.sfl.value = "<?=$sfl?>";

function fsearch_submit(f)
{
if (f.stx.value.length < 2) {
alert("검색어는 두글자 이상 입력하십시오.");
f.stx.select();
f.stx.focus();
return false;
}

// 검색에 많은 부하가 걸리는 경우 이 주석을 제거하세요.
var cnt = 0;
for (var i=0; i<f.stx.value.length; i++) {
if (f.stx.value.charAt(i) == ' ')
cnt++;
}

if (cnt > 1) {
alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
f.stx.select();
f.stx.focus();
return false;
}

f.action = "";
return true;
}
</script>
</td>
</tr>
<tr>
<td align=center>
연산자  
<input type="radio" name="sop" value="or" <?=($sop == "or") ? "checked" : "";?>>OR  
<input type="radio" name="sop" value="and" <?=($sop == "and") ? "checked" : "";?>>AND
</td>
</tr>
</table>
</form>
<p>
-->
<?
if($stx)
{
echo "<p>검색결과 (<b>{$board_count}</b>개의 게시판, <b>".number_format($total_count)."</b>개의 게시글, <b>".number_format($page)."/".number_format($total_page)."</b> 페이지)</p>";
}
?>

<style>
.line {clear:both;margin:10px auto;border-top:1px solid #ddd;margin-bottom:20px;}
#search_alist h3 {font:bold 16px gulim;margin:0;padding:0}
#search_alist ul {list-style-type:none;margin:0;padding:0}
#search_alist li {clear:both;list-style-type:none;margin:0;padding:2px;}

#search_alist .s_subject a {font:normal 15px dotum;color:#1424c3;letter-spacing:-1px;text-decoration:underline;}
#search_alist .s_content {font:normal 12px dotum;color:#333;line-height:170%;}
#search_alist .s_content img.s_thm {border:1px solid #ccc;margin-right:8px;margin-bottom:8px;padding:0;}
#search_alist .s_name {font:normal 12px dotum;color:#009933}
#search_alist .s_date {font:normal 12px dotum;color:#aaa}
#search_alist .s_word1 {font:bold 15px dotum;color:#1424c3}
#search_alist .s_word2 {font:bold 12px dotum;color:#000}
</style>
<div id="search_alist">
<?
$k=0;
for($idx=$table_index, $k=0; $idx<count($search_table) && $k<$rows; $idx++) {
?>
<div class="line"></div>
<h3><a href='./board.php?bo_table=<?=$search_table[$idx]?>&<?=$search_query?>'><?=$bo_subject[$idx]?>(<?=count($list[$idx])?>)</a></h3>
<ul>
<?
$comment_href = "";

$data_path = $g4[path]."/data/file/".$search_table[$idx];
$thumb_data_path = $g4[path]."/data/file/$search_table[$idx]/thumb";

for($i=0; $i<count($list[$idx]) && $k<$rows; $i++, $k++){

//내용에서 html코드가 보이면 주석해제 후 사용***1
$list[$idx][$i][content]=cut_str(strip_tags($list[$idx][$i][wr_content]),300,"...");

$comment_href=$comment=$img=$file_name="";

$list[$idx][$i][subject]=str_replace("<span style='background-color:YELLOW; color:RED;'>","<span class='s_word1'>",$list[$idx][$i][subject]);
//$list[$idx][$i][content]=str_replace("<span style='background-color:YELLOW; color:RED;'>","<span class='s_word2'>",$list[$idx][$i][content]);

//내용에서 html코드가 보이면 주석해제 후 사용***2
$list[$idx][$i][content]=str_replace($stx,"<span class='s_word2'>".$stx."</span>",$list[$idx][$i][content]);

// 가변 파일
$file['file'] = get_file($search_table[$idx], $list[$idx][$i][wr_id]);

$file_name=$file[file][0][file];

$file_reading=$data_path."/".$file_name;
$simg=$thumb_data_path."/s".$file_name;

if($file_name && file_exists($file_reading) && preg_match("/\.jpg|\.gif|\.png|\.bmp|\.jpeg/",strtolower($file_name))){

if(file_exists($simg)) $img=$simg;
else $img=$file_reading;
}

if($list[$idx][$i][wr_is_comment]) {

$comment_href = "#c_".$list[$idx][$i][wr_id];

$comment="[코멘트] ";
}
?>
<li>
<p class="s_subject"><a href="<?=$list[$idx][$i][href].$comment_href?>"><?=$comment.$list[$idx][$i][subject]?></a>  <a href="<?=$list[$idx][$i][href].$comment_href?>" target="_blank9eaecd">[새창]</a></p>
<p class="s_content">
<?if($img){?>
<a href="<?=$list[$idx][$i][href]?>"><img src="<?=$img?>" width="90" align="left" class="s_thm"></a>
<?}?>
<?=$list[$idx][$i][file]?><?=$list[$idx][$i][content]?></p>
<p><span class="s_name"><?=$list[$idx][$i][name]?></span> - <span class="s_date"><?=$list[$idx][$i][wr_datetime]?></span></p>
</li>
<?}?>
</ul>
<?}?>
</div>

<p style="text-align:center;"><?=$write_pages?></p>
|

댓글 4개

cheditor을 사용 중이시라면

에디터로 업로드하면 data/file/게시판이름/cheditor4/1304 형식의 폴더에 저장이 됩니다.

get_file 함수는 db에서 받아오지만 cheditor로 업로드 시 db에 저장하지 않으니 이 경우에 db에 저장을 하셔서 받아오시던가 아니면 preg_match 함수로 해당 게시글 주소에 img 태그가 있나 확인하여 있으면 그 주소를 받아와 섬네일을 생성하던가 .. 방법은 여러가지가 있습니다.

이 부분을 잘 확인하셔서 수정하시면 되시겠네요.

$data_path = $g4[path]."/data/file/".$search_table[$idx];
$thumb_data_path = $g4[path]."/data/file/$search_table[$idx]/thumb";
.
.
.
$file['file'] = get_file($search_table[$idx], $list[$idx][$i][wr_id]);

$file_name=$file[file][0][file];

$file_reading=$data_path."/".$file_name;
$simg=$thumb_data_path."/s".$file_name;

if($file_name && file_exists($file_reading) && preg_match("/\.jpg|\.gif|\.png|\.bmp|\.jpeg/",strtolower($file_name))){

if(file_exists($simg)) $img=$simg;
else $img=$file_reading;
}
2013-05-04 (토) 15:37:30
호성2님,,,,
댓글 고맙습니다.
그런데 제가 아직 php에 대해서는 무지 초보라서요....^^
위에 적어주신 내용에 대해서 잘 이해를 못하겠네요....ㅜㅜ

그냥 스킨을 수정한다던가 함수를 추가한다던가 이런 방법으로는 불가능할까요?
// 가변 파일
$file['file'] = get_file($search_table[$idx], $list[$idx][$i][wr_id]);

$file_name=$file[file][0][file];

$file_reading=$data_path."/".$file_name;
$simg=$thumb_data_path."/s".$file_name;

if($file_name && file_exists($file_reading) && preg_match("/\.jpg|\.gif|\.png|\.bmp|\.jpeg/",strtolower($file_name))){

if(file_exists($simg)) $img=$simg;
else $img=$file_reading;
} else if(preg_match("/data\/cheditor4[^<>]*\.(gif|jp[e]?g|png|bmp)/i", $list[$idx][$i][content], strtolower($editerImg))) {
$img = $editerImg[0];

}

이 소스를

//내용에서 html코드가 보이면 주석해제 후 사용***1
$list[$idx][$i][content]=cut_str(strip_tags($list[$idx][$i][wr_content]),300,"...");

이 위로 올려서 사용해보세요.
먼저 첨부파일의 이미지가 존재하는지 확인 후 없으면 에디터 이미지를 확인합니다.
있는 경우엔 해당 이미지를 줄여서 출력합니다.

썸네일로 생성해서 불러오고 싶으시면 썸네일 생성 부분을 따로 만드시면 됩니다.
2013-05-04 (토) 16:28:09
댓글 고맙습니다.....
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

66,531건

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

+
제목 글쓴이 날짜 조회
13-05-05 조회 1,025
13-05-05 조회 1,367
13-05-05 조회 1,628
13-05-05 조회 1,629
13-05-05 조회 1,667
13-05-05 조회 1,140
13-05-05 조회 1,650
13-05-05 조회 2,567
13-05-05 조회 1,248
13-05-05 조회 1,251
13-05-05 조회 1,457
13-05-04 조회 1,711
13-05-04 조회 1,676
13-05-04 조회 1,240
13-05-04 조회 1,056
13-05-04 조회 1,294
13-05-04 조회 1,645
13-05-04 조회 1,631
13-05-04 조회 1,011
13-05-04 조회 1,839