XpressEngine과 관련된 팁이나 강좌를 소개하는 게시판입니다.
자신이 생각하기에는 아주 사소한 내용이라도 누군가에게는 큰 도움이 될 수 있습니다.
XE 원 소스 코드를 수정하는 팁은 당장은 도움이 될지 몰라도 결국 XE 업그레이드를 하지 못하게 되니 팁을 올리시는 분이나 팁을 적용하시는 분이나 모두 주의 부탁드립니다.

제로보드의 게시판이나 위젯에서 새 글 표시인가를 선택하면 저런 아이콘들이 줄줄이 붙습니다.
빨간색 N: 새 글
노란색 U: 업데이트
이미지: 그림 파일 있음
TV: 동영상 파일 있음
디스켓: 첨부 파일 있음
이런 식으로요. 대단히 유용한 기능입니다.
하지만 개인적으로 대부분의 글에 사진이 첨부되는 사이트를 운영중인데. 이 경우 이미지와 디스켓이 무조건적으로 붙게 되더군요. 대부분의 글이 그렇다 보니 이건 의미가 없습니다. 거기에 동영상 알림도 별로 관심이 없고.
그래서 새 글과 업데이트만 빼고 지워보기로 했습니다. 질문 게시판에서도 이거 물어보시는거 은근히 본것 같아서 걍 올려봅니다.
// 새글 체크
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";저는 새글과 업데이트만 빼고 지울 작정이니 //사진 이미지 체크 부터 if($this->hasUploadedFiles()) $buffs[] = "file"; 까지를 전부 지워버렸습니다.
필요에 따라서 지우는걸 조절하시면 될듯. ...개인적으로는 이걸 옵션으로 정하게 됐음 합니다만.
댓글 '16'
똑디
- 추천
- 2
- 비추천
- 0
저같은 경우 메인화면에서는 New 체크만 하고 (첨부파일,동영상,이미지는 체크안함) 게시판에선 기본기능 그대로 사용하는 형태로 사용할려고 하다보니 약간 소스를 더 수정해서 사용하게 되네요.
zbxe/modules/document/document.item.php 파일에서 (580라인정도에)
/**
* 위젯최신글에선 새글에만 아이콘을 표시하기 위해서 별도의 함수 정의해서 사용함
**/
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=='update'){
$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=='update' 이렇게 새글과 업데이트글만 체크를 해서 보여주도록 했습니다.
이렇게 함수 정의를 했으니
위젯파일의 list.html 파일에서 기존에 아래와 같이 호출해서 사용했던 부분을
{$oDocument->printExtraImages($widget_info->duration_new)}
다음과 같이 변경해서 호출합니다.
{$oDocument->printExtraImages_widgets($widget_info->duration_new)}
이렇게하면 수정한 위젯에서는 최신글이나 업데이트시 아이콘을 출력하고 그외 동영상이나 첨부파일,이미지업로드시엔 아이콘이 출력되지않습니다.
메인화면 디자인상 제목글자수를 지정할때 첨부파일이나 동영상 여부에따라 우측공간이 달라지다보니 이렇게 적용을 해보네요.
감사합니다. .. 1.1.4버전에서는 위와 같이 수정해서는 백지출력이 되더군요 ;;
그이상 버전에서는 어떨지 모르겠으나 .. 1.1.4에서 급하다 하신분은 아래처럼 해보세요
제가 썼던 꼼수 ;;;예요
-게시판,위젯 모두 뉴아이콘과,업데이트아이콘만 출력하기-
아래보시면 "//" < -- 이 빗금 2가닥 보이시죠 ;;
이걸로 명령을 전부 비활성화 시키는거예요 ;; 좀 무식한가요 ;;
// 사진 이미지 체크
// 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;
}
저는 new를 이렇게 붙혔습니다.
http://www.clubkorea.co.kr/ 정렬하기 편하도록 ^^






