컴퓨터

XE에서 새 글 위젯에 첨부파일 표시 없애기

by 창환 posted Jan 15, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

(이 설명은 XE 1.4.10을 기준으로 만들었습니다.)


XE에서 새글 위젯을 쓰면 윈치않아도 첨부파일 아이콘이 나타납니다. 불필요하게 공간을 차지하기 때문에, 없애고 싶을 때가 있는데요, XE의 파일 2개만 수정하면 됩니다.


(1) document 모듈 수정

XE가 설치된 디렉토리에서 document.item.php 파일을 수정합니다. XE 모듈 가운데 하나이므로, 아래 디렉토리에 해당 파일이 있습니다.


xe/modules/document/document.item.php


이 파일에서 위젯에 쓸 함수를 새로 만들어줍니다. 아래 내용을 파일에 추가하기만 하면 됩니다.


        function getExtraImages2($time_interval = 43200) {
            if(!$this->document_srl) return;

            // 아이콘 목록을 담을 변수 미리 설정
            $buffs = array();

            $check_files = false;

            // 비밀글 체크
            if($this->isSecret()) $buffs[] = "secret";

            // 최신 시간 설정
            $time_check = date("YmdHis", time()-$time_interval);

            // 새글 체크
            if($this->get('regdate')>$time_check) $buffs[] = "new";
            else if($this->get('last_update')>$time_check) $buffs[] = "update";

            return $buffs;
           
        }

        /**
         * @brief getExtraImages2로 구한 값을 이미지 태그를 씌워서 리턴
         **/
        function printExtraImages2($time_check = 43200) {
            if(!$this->document_srl) return;

            // 아이콘 디렉토리 구함
            $path = sprintf('%s%s',getUrl(), 'modules/document/tpl/icons/');

            $buffs = $this->getExtraImages2($time_check);
            if(!count($buffs)) return;

            $buff = null;
            foreach($buffs as $key => $val) {
                $buff .= sprintf('<img src="%s%s.gif" alt="%s" title="%s" style="margin-right:2px;" />', $path, $val, $val, $val);
            }
            return $buff;
        }


기존 함수를 수정하는 대신 함수를 새로 만들어준 까닭은 기존 함수를 여러 곳에서 쓰고 있기 때문입니다.


(2) 새 글 위젯 수정

새 글 위젯은 스킨만 고쳐주면 됩니다. 새 글 위젯의 스킨은 xe/widgets/newest_document/skins 에 있습니다. 스킨 디렉토리 내부에 있는 여러 디렉토리 가운데 현재 쓰고있는 스킨의 파일을 수정하면 됩니다. 예를 들어 blog_newest_document 스킨을 사용 중이라면, list.html 파일은 아래 주소로 가면 찾을 수 있습니다.


xe/widgets/newest_document/skins/blog_newest_document/list.html


스킨을 구성하고 있는 여러 파일 가운데 list.html 파일만 고쳐주면 됩니다. 1번에서 새로 만든 함수를 쓰도록 바꿔주면 되는데요, 파일 내용 중에서


{$oDocument->printExtraImages($widget_info->duration_new)}


이 부분을


{$oDocument->printExtraImages2($widget_info->duration_new)}


로 고쳐주면 됩니다.



TAG •