일반적으로 lib.php 파일속에서 마지막부분에 문자열 끊기 함수가 나옵니다.
근데 그건 주로 제목을 자르죠.. 즉, 원하는 글수 이상이면 " ... " 으로 나타내주죠.
제목을 자를때는 적합한데.. 저처럼 공지사항 또는 팁 내용의 일부를 보여주고자 할때
글을 300자쯤에서 끊고 싶은데 300자에서 짤리고는 "..." 이라고 나타나면
좀 썰렁하다고 해야할까.. 그렇더라구요.. 그래서 " ... line more (total 몇 lines) 이렇게
나타내봤습니다. 뭐.. 이 기능이 필요한 분은 그리 많지는 않을듯 싶습니다.
우선 lib.php 파일을 연후 거의 마지막 부분에 보시면
// 문자열 끊기 (이상의 길이일때는 ... 로 표시)
이런 주석을 발견하실수 있을겁니다.
그러면 문자열 끊기 함수 밑에 또 하나의 문자열 끊기 함수를 더 만들어주세요.
내용은 다음과 같습니다.
// 내용 끊기 (이상의 길이일때 ... line more (total 몇 lines)라고 나타내기
function cut_str2($msg,$cut_size) {
if($cut_size<=0) return $msg;
if(ereg("\[re\]",$msg)) $cut_size=$cut_size+4;
for($i=0;$i<$cut_size;$i++) if(ord($msg[$i])>127) $han++; else $eng++;
$cut_size=$cut_size+(int)$han*0.6;
$tmpData = explode("\n",stripslashes($msg));
$totalCommentLineNum = count($tmpData);
$point=1;
for ($i=0;$i<strlen($msg);$i++) {
if ($point>$cut_size) return $pointtmp." ... lines more (total : $totalCommentLineNum lines)";
if (ord($msg[$i])<=127) {
$pointtmp.= $msg[$i];
if ($point%$cut_size==0) return $pointtmp." ... lines more (total : $totalCommentLineNum lines)";
} else {
if ($point%$cut_size==0) return $pointtmp." ... lines more (total : $totalCommentLineNum lines)";
$pointtmp.=$msg[$i].$msg[++$i];
$point++;
}
$point++;
}
return $pointtmp;
}
이렇게 해주시면 일단 함수는 만들어졌습니다.
반드시 함수를 만들때 cut_str2라고 해주세요.
앞에서 문자열 끊기 cut_str 라는 함수가 이미 있기때문에 같은 함수를 사용해선 안됩니다.
이렇게 한다음에 이걸 응용하는 방법은 여러가지가 있겠지만..
최근게시물에서 주로 사용할거라고 생각하기에 outlogin.php 파일에서 설정하는 법을
보도록 하죠.
보통 제목을 자를때는 $subject = cut_str(stripslashes($data[subject]),$textlen) 이렇게 사용하죠.
내용도 비슷합니다.
$memo = cut_str2(nl2br($memo), 300);
이렇게 넣어주시면 됩니다. 뒤에 300이라는 숫자는 300자 까지만 보여주고 나머지는
자르겠다는 표시구요.. stripslashes가 아닌 nl2br 을 사용한건.. 사용하시는 분들에 따라서
다 틀리겠지만.. 저는 이렇게 하는게 보기 좋더라구요.
stripslashes 는 슬러쉬 제거하는거고.. nl2br은 글내용 작성시 엔터치는 부분을 <br> 태그로
바꿔주게 하는거죠. 그래서 저는 nl2br 함수를 사용했습니다.
원래는 // 공지사항 형식을 만들때 사용 이란 주석 바로 밑에 보면
if($data[use_html]<2) $memo = nl2br($memo);
else $memo = strip_tags($memo);
이렇게 되어있습니다. 근데 저는 이걸 그냥
$memo = stripslashes($data[memo]); 이렇게 바꿨습니다.
그리고 밑에 $subject = cut_str(stripslashes($data[subject]),$textlen)."</font></b>"; 이부분 밑에
$memo = cut_str2(nl2br($memo), 300); 라고 붙여주는거죠.
그러면 밑에 [notice_memo] 약속어 설정하면서 자동으로 내용을 잘라주죠.
이렇게 하시면 공지글을.. 전부 출력이 되는게 아니라 원하는 만큼 자른후
나머지 부분은 line more.. 이렇게 나오게 됩니다.
이상입니다.. ^^
more보여주기 ////////////////////////////////////////////////////////////////////////////////////
more... 를 글 끝에 보여주고 해당글이 있는 게시판내용보기로 이동하는 소스는
outlogin.php파일보면 240줄(원본일경우-물론 위소스를 적용한 다음이면 밀려서 달라지겠지만...)
$header = str_replace("[notice_memo]",$memo,$header); 를 수정하면 됩니다....
아래처럼...
$header = str_replace("[notice_memo]",$memo." <a href='".$_zb_url.$target."&no=$data[no]' onfocus=blur()><font color=red><b>MORE...</b></font></a>",$header);
고치시면 됩니다...
MORE... 라는 글이 RED의 칼라와 굵은 글씨체로 표시가 됩니다...
원하시는 글과 표시형식을 적용하면 되겠죠....
*참고로 내용자르기 소스를 적용시킬때... lib.php파일에 적용하는 소스중
... lines more (total : $totalCommentLineNum lines) 부분은 남은 모두의 라인수를 보여주는 건데...
삭제한다면 " more..." 라는 부분만 나타나겠죠...(제가 그리 쓰고 있슴다...)
근데 그건 주로 제목을 자르죠.. 즉, 원하는 글수 이상이면 " ... " 으로 나타내주죠.
제목을 자를때는 적합한데.. 저처럼 공지사항 또는 팁 내용의 일부를 보여주고자 할때
글을 300자쯤에서 끊고 싶은데 300자에서 짤리고는 "..." 이라고 나타나면
좀 썰렁하다고 해야할까.. 그렇더라구요.. 그래서 " ... line more (total 몇 lines) 이렇게
나타내봤습니다. 뭐.. 이 기능이 필요한 분은 그리 많지는 않을듯 싶습니다.
우선 lib.php 파일을 연후 거의 마지막 부분에 보시면
// 문자열 끊기 (이상의 길이일때는 ... 로 표시)
이런 주석을 발견하실수 있을겁니다.
그러면 문자열 끊기 함수 밑에 또 하나의 문자열 끊기 함수를 더 만들어주세요.
내용은 다음과 같습니다.
// 내용 끊기 (이상의 길이일때 ... line more (total 몇 lines)라고 나타내기
function cut_str2($msg,$cut_size) {
if($cut_size<=0) return $msg;
if(ereg("\[re\]",$msg)) $cut_size=$cut_size+4;
for($i=0;$i<$cut_size;$i++) if(ord($msg[$i])>127) $han++; else $eng++;
$cut_size=$cut_size+(int)$han*0.6;
$tmpData = explode("\n",stripslashes($msg));
$totalCommentLineNum = count($tmpData);
$point=1;
for ($i=0;$i<strlen($msg);$i++) {
if ($point>$cut_size) return $pointtmp." ... lines more (total : $totalCommentLineNum lines)";
if (ord($msg[$i])<=127) {
$pointtmp.= $msg[$i];
if ($point%$cut_size==0) return $pointtmp." ... lines more (total : $totalCommentLineNum lines)";
} else {
if ($point%$cut_size==0) return $pointtmp." ... lines more (total : $totalCommentLineNum lines)";
$pointtmp.=$msg[$i].$msg[++$i];
$point++;
}
$point++;
}
return $pointtmp;
}
이렇게 해주시면 일단 함수는 만들어졌습니다.
반드시 함수를 만들때 cut_str2라고 해주세요.
앞에서 문자열 끊기 cut_str 라는 함수가 이미 있기때문에 같은 함수를 사용해선 안됩니다.
이렇게 한다음에 이걸 응용하는 방법은 여러가지가 있겠지만..
최근게시물에서 주로 사용할거라고 생각하기에 outlogin.php 파일에서 설정하는 법을
보도록 하죠.
보통 제목을 자를때는 $subject = cut_str(stripslashes($data[subject]),$textlen) 이렇게 사용하죠.
내용도 비슷합니다.
$memo = cut_str2(nl2br($memo), 300);
이렇게 넣어주시면 됩니다. 뒤에 300이라는 숫자는 300자 까지만 보여주고 나머지는
자르겠다는 표시구요.. stripslashes가 아닌 nl2br 을 사용한건.. 사용하시는 분들에 따라서
다 틀리겠지만.. 저는 이렇게 하는게 보기 좋더라구요.
stripslashes 는 슬러쉬 제거하는거고.. nl2br은 글내용 작성시 엔터치는 부분을 <br> 태그로
바꿔주게 하는거죠. 그래서 저는 nl2br 함수를 사용했습니다.
원래는 // 공지사항 형식을 만들때 사용 이란 주석 바로 밑에 보면
if($data[use_html]<2) $memo = nl2br($memo);
else $memo = strip_tags($memo);
이렇게 되어있습니다. 근데 저는 이걸 그냥
$memo = stripslashes($data[memo]); 이렇게 바꿨습니다.
그리고 밑에 $subject = cut_str(stripslashes($data[subject]),$textlen)."</font></b>"; 이부분 밑에
$memo = cut_str2(nl2br($memo), 300); 라고 붙여주는거죠.
그러면 밑에 [notice_memo] 약속어 설정하면서 자동으로 내용을 잘라주죠.
이렇게 하시면 공지글을.. 전부 출력이 되는게 아니라 원하는 만큼 자른후
나머지 부분은 line more.. 이렇게 나오게 됩니다.
이상입니다.. ^^
more보여주기 ////////////////////////////////////////////////////////////////////////////////////
more... 를 글 끝에 보여주고 해당글이 있는 게시판내용보기로 이동하는 소스는
outlogin.php파일보면 240줄(원본일경우-물론 위소스를 적용한 다음이면 밀려서 달라지겠지만...)
$header = str_replace("[notice_memo]",$memo,$header); 를 수정하면 됩니다....
아래처럼...
$header = str_replace("[notice_memo]",$memo." <a href='".$_zb_url.$target."&no=$data[no]' onfocus=blur()><font color=red><b>MORE...</b></font></a>",$header);
고치시면 됩니다...
MORE... 라는 글이 RED의 칼라와 굵은 글씨체로 표시가 됩니다...
원하시는 글과 표시형식을 적용하면 되겠죠....
*참고로 내용자르기 소스를 적용시킬때... lib.php파일에 적용하는 소스중
... lines more (total : $totalCommentLineNum lines) 부분은 남은 모두의 라인수를 보여주는 건데...
삭제한다면 " more..." 라는 부분만 나타나겠죠...(제가 그리 쓰고 있슴다...)
댓글