| 원작자 | 老姜君 |
|---|---|
| 출처 | ![]() |
| 적용여부 | 적용 |
제로보드의 게시판이나 위젯에서 새 글 표시인가를 선택하면 저런 아이콘들이 줄줄이 붙습니다.

빨간색 N: 새 글
노란색 U: 업데이트
이미지: 그림 파일 있음
TV: 동영상 파일 있음
디스켓: 첨부 파일 있음
이런 식으로요. 대단히 유용한 기능입니다.
하지만 개인적으로 대부분의 글에 사진이 첨부되는 사이트를 운영중인데. 이 경우 이미지와 디스켓이 무조건적으로 붙게 되더군요. 대부분의 글이 그렇다 보니 이건 의미가 없습니다. 거기에 동영상 알림도 별로 관심이 없고.
그래서 새 글과 업데이트만 빼고 지워보기로 했습니다. 질문 게시판에서도 이거 물어보시는거 은근히 본것 같아서 걍 올려봅니다.
./modules/document/document.item.php 653줄 (xe 1.3.1.2기준)
if($this->get('regdate')>$time_check) $buffs[] = "new";
else if($this->get('last_update')>$time_check) $buffs[] = "update";
// 사진 이미지 체크
preg_match_all('!<img([^>]*?)>!is', $content, $matches);
$cnt = count($matches[0]);
for($i=0;$i<$cnt;$i++) {
if(preg_match('/editor_component=/',$matches[0][$i])&&!preg_match('/image_(gallery|link)/i',$matches[0][$i])) continue;
$buffs[] = "image";
$check_files = true;
break;
}
// 동영상 체크
if(preg_match('!<embed([^>]*?)>!is', $content) || preg_match('/editor_component=("|\')*multimedia_link/i', $content) ) {
$buffs[] = "movie";
$check_files = true;
}
// 첨부파일 체크
if($this->hasUploadedFiles()) $buffs[] = "file";
return $buffs;
}
저는 새글과 업데이트만 빼고 지울 작정이니 //사진 이미지 체크 부터 if($this->hasUploadedFiles()) $buffs[] = "file"; 까지를 전부 지워버렸습니다.
필요에 따라서 지우는걸 조절하시면 될듯.
이상이 老姜君님의 글을 버전에 맞게 약간 수정한 것입니다.
다음으로 똑띠님의 기능이 향상된 팁을 덧 붙입니다.
저같은 경우 메인화면에서는 New 체크만 하고 (첨부파일,동영상,이미지는 체크안함) 게시판에선 기본기능 그대로 사용하는 형태로 사용할려고 하다보니 약간 소스를 더 수정해서 사용하게 되네요.
./modules/document/document.item.php 파일에서 (716라인정도에) 추가
/**
* 위젯최신글에선 새글에만 아이콘을 표시하기 위해서 별도의 함수 정의해서 사용함
**/
function printExtraImages_widgets($time_check = 43200) {
if(!$this->document_srl) return;
// 아이콘 디렉토리 구함
$path = sprintf('%s%s',getUrl(), 'modules/document/tpl/icons/');
$buffs = $this->getExtraImages($time_check);
if(!count($buffs)) return;
$buff = null;
foreach($buffs as $key => $val) {
if($val=='new' || $val=='secret'){
$buff .= sprintf('<img src="%s%s.gif" alt="%s" title="%s" style="margin-right:2px;" />', $path, $val, $val, $val);
}
}
return $buff;
}
이렇게 printExtraImages_widgets 함수를 하나더 정의 해준다음
해당 함수에서는 조건문으로 $val=='new' || $val=='secret' 이렇게 새글과 비밀글만 체크를 해서 보여주도록 했습니다.
이렇게 함수 정의를 했으니
해당위젯파일의 list.html 파일에서 기존에 아래와 같이 호출해서 사용했던 부분을
{$oDocument->printExtraImages($widget_info->duration_new)}
다음과 같이 변경해서 호출합니다.
{$oDocument->printExtraImages_widgets($widget_info->duration_new)}
이렇게하면 수정한 위젯에서는 최신글이나 비밀글 아이콘을 출력하고 그외 동영상이나 첨부파일, 이미지업로드시엔 아이콘이 출력되지않습니다.
그리고 게시판이나 수정하지 않은 다른 위젯에서는 정상적으로 아이콘들이 출력됩니다.
메인화면 디자인상 위젯에서 제목글자수를 지정할때 첨부파일이나 동영상 여부에따라 우측공간이 달라지다보니 이렇게 적용을 해보네요.
이제 부터는 팔공산의 팁입니다.
예전에 만들어진 위젯들이나 게시판에서는 {$oDocument->printExtraImages_widgets($widget_info->duration_new)} 이 함수의 적용이 잘 됩니다.
그런데 최근에 만들어진 ./widgets/content 위젯은 위의 함수가 적용이 되지를 않습니다.
./widgets/content/skins/default/normal.html 위젯을 보면 아래와 같이 함수가 정의 되어 있습니다.
<span class="icon"> {$item->printExtraImages()} </span>
수정방법은
./widgets/content/content.class.php 파일을 열어서
printExtraImages단어를 모두 찾아서 printExtraImages_widgets으로 바꾸어주면 됩니다.(총3군데)
그리고 normal.html 에서
<span class="icon">{$item->printExtraImages()}</span> 이부분을
</span class="icon">{$item->printExtraImages_widgets()}</span> 수정합니다.
이렇게 하면 최신글이나 비밀글 아이콘을 출력되고 다른 아이콘은 출력이 되지를 않습니다.




자료실
MH 위젯스타일
문하우스 게시판스킨 V...
내용글 출력시 주소창에...
스케치북5 게시판스킨 ...
XE 1.5 이상의 버전 ...
shopXE 에서 배송지 ...
레이아웃 컨트롤 박스
SketchBook5 게시판스킨...
움직이는Gif 파일을 게...
화일첨부 디렉토리의 빈...





