Skip to content

[re] 코멘트 색깔 다르게 하기

by 하늘지기 posted Jul 07, 2003
그렇게 하기 위해서는 제로보드의 include 디렉토리 안에 있는 list_check.php 파일을 고쳐주셔야 합니다
제가 사용하고 있는 방법은 물론 제가 개발한 것이 아니구요,
옹이님, 유니님이 하신 설명을 보고 적용시킨 것입니다
다시 말해서, 완벽하게 설명드릴 자신이 없다는 얘기지요...^_^
참사랑님도 그냥 제가 쓰는 수정된 파일을 그대로 쓰시는 게 좋을 듯 합니다
제가 쓰는 파일에는 웹폰트를 사용할 경우에 한자가 제대로 출력되지 않는 문제도 해결되어 있습니다
제로보드 파일을 그대로 전달하는 것은 규칙에 어긋난다고 하니까
여기에 파일 내용 전체를 붙이겠습니다
코멘트 표시 색깔을 바꾸고 싶으시다면 107, 108줄에서 색깔만 수정하시면 될 것입니다
==============================================================================
<?

if($_list_check_included) return;
$_list_check_included = true;

/****************************************************************************************
* 한자변환함수  
***************************************************************************************/
if (!function_exists("on_change_hanja")) {
function on_change_hanja($src)
{
$strlen = strlen($src);
$change = "";
$check = 0;
for($i=0;$i<$strlen;$i++)
{
$code = ord($src[$i]);
if($code > 0xC9 && $code < 0xFE) //한자
{
if(!$check) {$check=1; $change.="<font face=돋움>"; }
$change.=$src[$i]; $i++; $change.=$src[$i];
continue;
}
else if($check) {$check =0; $change.="</font>";}
if($code < 0xA1) $change.=$src[$i];
else {$change.=$src[$i]; $i++; $change.=$src[$i];}
}
return $change;
}
}
/****************************************************************************************/


/*********************************************************************************************
* 넘겨지는 데이타에 대한 일괄 정리
********************************************************************************************/
function list_check(&$data,$view_check=0) {

global  $keyword, $sn, $ss, $sc, $setup, $member, $href, $id, $dir, $category_data, $is_admin, $_zbResizeCheck,
$name,$email,$subject, $sort, $prev_no, $no,$homepage, $memo, $hit, $vote, $ip, $comment_num, $sitelink1, $sitelink2,
$file_name1, $file_name2, $file_download1, $file_download2, $file_size1, $file_size2,
$upload_image1, $upload_image2, $category_name, $date, $reg_date, $insert, $icon, $face_image,$number,$loop_number,
$a_file_link1, $a_file_link2, $a_reply, $a_delete, $a_modify, $zbLayer,  $_zbCheckNum,
$_listCheckTime, $t_comment;

$_listCheckTimeStart = getmicrotime();
$data[subject] = on_change_hanja($data[subject]); //제목한자변환
$data[memo] = on_change_hanja($data[memo]); //내용한자변환

if($view_check) $setup[only_board]=0;  

        // 제목에 5줄로 툴바 만듬
        if($setup[use_status]) {
                $tmpData = explode("n",stripslashes($data[memo]));
                $totalCommentLineNum = count($tmpData);
                if($totalCommentLineNum>10) {
                        $showCommentStr_tail.="n".($totalCommentLineNum - 10)." lines more... (total : $totalCommentLineNum lines)";
                        $tmpData_Count = 10;
                } else $tmpData_Count = $totalCommentLineNum;
                $showCommentStr = "";
                for($i=0;$i<$tmpData_Count;$i++) {
                        $tmpStr = trim($tmpData[$i]);
                        if($tmpStr) $showCommentStr .= $tmpStr."n";
                }
                $showCommentStr = str_replace("'","",$showCommentStr);
                $showCommentStr = str_replace(""","",$showCommentStr);
                $showCommentStr .= $showCommentStr_tail;
        }        

        $_zbCount = check_zbLayer($data);
        
        // HTML 사용일 경우 현재 회원의 html 권한이 없거나 관리자가 아니라면 style 속성을 제거
        if($data[use_html]&&$data[islevel]>$setup[grant_html]) {
                $style_pattern = "/(<.*?)style=(.*?)(>?)/i";
                $data[memo]=preg_replace($style_pattern,"\1\3",$data[memo]);
        }
        

        // 검색어에 해당하는 글자를 빨간;; 색으로 바꾸어줌;;
        if($keyword) {

                $keyword_pattern = "/$keyword/i";
                
                if($sn=="on") $data[name] = preg_replace($keyword_pattern, "<font color=FF001E style=background-color:FFF000;>$keyword</font>", $data[name]);

                if($ss=="on") $data[subject] = preg_replace($keyword_pattern, "<font color=FF001E style=background-color:FFF000;>$keyword</font>", $data[subject]);

                if($ss=="on"&&$setup[cut_length]>0) $setup[cut_length]=$setup[cut_length]+52;
        }

        // ' 등의 특수문자때문에 붙인 (역슬래쉬)를 떼어낸다
        $name=$data[name]=stripslashes($data[name]);  // 이름

        $temp_name = get_private_icon($data[ismember], "2");
        if($temp_name) $name="<img src='$temp_name' border=0 align=absmiddle>";


        $subject=$data[subject]=stripslashes($data[subject]); // 제목
        //$subject=$data[subject];
        $subject=cut_str($subject,$setup[cut_length]); // 제목 자르는 부분
        $hit=$data[hit];  // 조회수
        $vote=$data[vote];  // 투표수
        
        // $comment_num="[".$data[total_comment]."]"; //간단한 답글 수
    $last_comment = mysql_fetch_array(mysql_query("select * from $t_comment"."_$id where parent='$data[no]' order by reg_date desc limit 1"));
    $last_comment_time = $last_comment['reg_date'];
    if(time()-$last_comment_time<60*60*12) $comment_num = "<font color=orange style="cursor:hand" title="".cut_str(stripslashes($last_comment[memo]),$textlen)."">(".$data[total_comment].")</font>";
    elseif(time()-$last_comment_time<60*60*24) $comment_num = "<font color=pink style="cursor:hand" title="".cut_str(stripslashes($last_comment[memo]),$textlen)."">(".$data[total_comment].")</font>";
    else $comment_num = "(".$data[total_comment].")";

        if($data[total_comment]==0) $comment_num="";
        if($setup[use_alllist]) $view_file="zboard.php"; else $view_file="view.php";
        
        // 제목에 링크 거는 부분;
        if($member[level]<=$setup[grant_view]||$is_admin) {
                //if($setup[use_status]&&!$data[is_secret]) $addShowComment = " onMouseOver="showComment('$showCommentStr',true)" onMouseOut="showComment('',false)" ";
                if($setup[use_status]&&!$data[is_secret]) $addShowComment = " title="$showCommentStr" ";
                $subject="<a href="".$view_file."?$href$sort&no=$data[no]" $addShowComment >".$subject."</a>";
        }

        if(!$setup[only_board]) {
                $homepage=$data[homepage]=stripslashes($data[homepage]);
                if($homepage) $homepage="<a href='$homepage' target=_blank>$homepage</a>";

                // 이미지 박스 사용을 위해서 정규표현식 사용
                if($data[ismember]) {
                        $imageBoxPattern = "/[img:(.+?).(jpg|gif),align=([a-z]){0,},width=([0-9]+),height=([0-9]+),vspace=([0-9]+),hspace=([0-9]+),border=([0-9]+)]/i";
                        $data[memo]=preg_replace($imageBoxPattern,"<img src='icon/member_image_box/$data[ismember]/\1.\2' align='\3' width='\4' height='\5' vspace='\6' hspace='\7' border='\8'>", stripslashes($data[memo]));
                } else {
                        $data[memo]=stripslashes($data[memo]);
                }

                if($data[use_html]<2) $memo=$data[memo]=nl2br($data[memo]);
                $memo=$data[memo];

                // 자동링크 거는 부분;;
                if($setup[use_autolink]) $memo=autolink($memo);

                $memo .= "<!--"<-->";

                // 검색어가 있을경우 내용의 키워드를 변경
                if($sc=="on" && $keyword) {
                        $keyword_pattern = "/([^<]*)$keyword([^>]*)/i";
                        $memo = preg_replace($keyword_pattern, "\1<font color=FF001E style=background-color:FFF000;>$keyword</font>\2", $memo);
                        $keyword_pattern2 = "/<img(.*)<font color=FF001E style=background-color:FFF000;>$keyword</font>(.*)>/i";
                        $memo = preg_replace($keyword_pattern2, "<img\1$keyword\2>", $memo);
                }

                // 이미지 리사이즈를 위해서 처리하는 부분
                $memo = preg_replace("/(<img)(.*)(>?)/i","\1 name=zb_target_resize style="cursor:hand" onclick=window.open(this.src) \2 \3", $memo);
                $memo = "<table border=0 cellspacing=0 cellpadding=0 width=100% style="table-layout:fixed;"><col width=100%></col><tr><td valign=top>".$memo."</table>";
                $_zbResizeCheck = true;

                // 아이피
                if($is_admin) $ip="IP Address : ".$data[ip]." ";  

                $sitelink1=$data[sitelink1]=stripslashes($data[sitelink1]);
                $sitelink2=$data[sitelink2]=stripslashes($data[sitelink2]);
                if($sitelink1)$sitelink1="<a href='$sitelink1' target=_blank>$sitelink1</a>";
                if($sitelink2)$sitelink2="<a href='$sitelink2' target=_blank>$sitelink2</a>";
                $file_name1=$data[s_file_name1];
                $file_name2=$data[s_file_name2];
                $file_download1=$data[download1];
                $file_download2=$data[download2];
                if($file_name1) {
                        $file_size1=@GetFileSize(filesize($data[file_name1]));
                        $a_file_link1="<a href='download.php?$href$sort&no=$data[no]&filenum=1'>";
                } else {
                        $file_size1=0;
                        $a_file_link1="<Zeroboard";
                }
                if($file_name2) {
                        $file_size2=@GetFileSize(filesize($data[file_name2]));
                        $a_file_link2="<a href='download.php?$href$sort&no=$data[no]&filenum=2'>";
                } else {
                        $file_size2=0;
                        $a_file_link2="<Zeroboard";
                }
  
                $upload_image1=$upload_image2="";

                if(eregi(".jpg",$file_name1)||eregi(".gif",$file_name1)||eregi(".png",$file_name1)) $upload_image1="<img src=$data[file_name1] border=0 name=zb_target_resize style="cursor:hand" onclick=window.open(this.src)><br>";
                if(eregi(".jpg",$file_name2)||eregi(".gif",$file_name2)||eregi(".png",$file_name2)) $upload_image2="<img src=$data[file_name2] border=0 name=zb_target_resize style="cursor:hand" onclick=window.open(this.src)><br>";
        }

        // 카테고리의 이름을 구함
        if($data[category]&&$setup[use_category]) $category_name=$category_data[$data[category]];
        else $category_name=" ";

        // 글쓴 시간을 년월일 시분초 로 변환함
        $reg_date="<span title='".date("Y년 m월 d일 H시 i분 s초", $data[reg_date])."'>".date("Y.m.d", $data[reg_date])."</span>";
        $date=date("Y-m-d H:i:s", $data[reg_date]);
        
        // 폼메일을 사용하고 관련메뉴가 생성이 되면 레이어오픈
        if($_zbCount&&$setup[use_formmail]) {
                $name = "<span onMousedown="ZB_layerAction('zbLayer$_zbCheckNum','visible')" style=cursor:hand>$name</span>";
        // 폼메일을 사용안할 경우 무조건 메일링크
        } else {
                if($data[email]) $name="<a href="javascript:void(window.open('open_window.php?mode=m&str=".urlencode(base64_encode($data[email]))."','ZBremote','width=1,height=1,left=1,top=1'))">$name</a>";
                //$name="<a href="javascript:void(window.open('view_info.php?to=$email&id=$id&member_no=$data[ismember]','mailform','width=400,height=510,statusbar=no,scrollbars=yes,toolbar=no'))">$name</a>";
        }

        // Depth에 의한 들임값을 정함
        $insert="";
        if($data[depth]>15) $data[depth]=15;
        for($z=0;$z<$data[depth];$z++) $insert .="  ";

        $icon=get_icon($data);

        // 이름앞에 붙는 아이콘 정의;;
        $face_image=get_face($data);

        $number=$loop_number;

        // 바로 전에 본 글인 경우 번호를 아이콘으로 바꿈
        if($prev_no==$data[no]) $number="<img src=$dir/arrow.gif border=0 align=absmiddle>"; elseif($number!=" ") $number=$loop_number;

        // 답글 버튼
        if(($is_admin||$member[level]<=$setup[grant_reply])&&$data[headnum]>-2000000000&&$data[headnum]!=-1) $a_reply="<a href='write.php?$href$sort&no=$data[no]&mode=reply'>";
        else $a_reply="<Zeroboard";

        // 삭제버튼
        if(($is_admin||$member[level]<=$setup[grant_delete]||$data[ismember]==$member[no]||!$data[ismember])&&!$data[child]) $a_delete="<a href='delete.php?$href$sort&no=$data[no]'>";
        else $a_delete="<Zeroboard";

        // 수정버튼
        if(($is_admin||$member[level]<=$setup[grant_delete]||$data[ismember]==$member[no]||!$data[ismember])) $a_modify="<a href='write.php?$href$sort&no=$data[no]&mode=modify'>";
        else $a_modify="<Zeroboard";

        // 스팸메일러 금지
        $mail=$data[email]="";

        $_listCheckTime += getmicrotime() - $_listCheckTimeStart;
}
?>

Who's 하늘지기

profile


| 나에게 거짓말을 하지 말고

| 남에게 빈말을 하지 말자

Comment '5'
  • ?
    2003.07.07 17:44
    이대로 카피해서 바꿔주면 되나요?
    전체를요?
  • profile
    하늘지기 2003.07.07 17:47
  • ?
    2003.07.07 17:49
    네에~!!
  • ?
    2003.07.07 17:57
    참.... 가져가두 되죠?
    통째로...ㅎ
    단, 출처는 밝히겠습니다.
    앗 안된다구요?..... 이런 벌써 가져간걸요.. ^^;;
  • profile
    하늘지기 2003.07.07 20:05
    출처 밝히시지 마세요...ㅡㅡ
    통째로 긁어가시라고 저렇게 올린 것입니다
문서 첨부 제한 : 0Byte/ 5.00MB
파일 크기 제한 : 5.00MB (허용 확장자 : *.*)

고공닷컴 자유게시판

로그인 없이, 비밀글도 올릴 수 있습니다. 강의 관련 질문은 [강의실 통합질문게시판]으로~

List of Articles
번호 제목 글쓴이 날짜 조회 수
543 득윤아, 병찬아 미안해 1 하늘지기 2010.03.22 4191
542 드리미즈에 홈피 만들었당. 한번 와주라 1 이동민 2004.04.06 861
541 듀글래... 4 떠리 2003.05.25 805
540 뒷통수 1 깜장고양이 2008.08.13 1808
539 뒤숭숭~~ 3 휴(休) 2003.12.23 729
538 두번째 방문....^^; 1 애린 2005.02.12 617
537 두둥~~ 1 양사장 2003.09.02 487
536 되풀이, 망령의 미라를 꺼낸다면, 나도 꺼내야지... 5 風雲公子 2008.06.28 1561
535 동학 리진오에게 2 성철 2004.06.03 627
534 동작이 느려서... 1 촌사람 2003.07.30 662
533 동양강좌 및 한문을 배울수 있는 곳입니다.(서울) 동인서원 2004.01.02 218478
532 동아리 번모 7 정소현 2006.05.08 706
531 동상~! 1 김승국 2007.12.04 1322
530 돌아왔음 1 깜장고양이 2006.08.07 697
Board Pagination Prev 1 ... 78 79 80 81 82 83 84 85 86 87 ... 121 Next
/ 121

Gogong.com All Rights Reserved.

Powered by Xpress Engine / Designed by Sketchbook

sketchbook5, 스케치북5

sketchbook5, 스케치북5