메뉴 건너뛰기

XE : Xpress Engine


XE에 대한 생각! XE에 대한 공감! - XE를 사용하는 다른 사람들과 의견을 나눌 수 있는 곳입니다. 많은 의견 공유로 더 좋은 XE를 만들어 주세요.


XE 사용팁

새글 옆에는 new 표시가 뜨는데, 게시판에는 안 뜨셔서 답답하셨던 분 계시죠?

제가 php도 모르고, 자바스크립트도 잘 모르고, 더군다나 데이터베이스도 거의 모릅니다.

더 심각한건 XE를 다룬지는 고작 3~4일 됐습니다.

그래서 하찮게 들릴 수도 있으니 진짜 초보이고 급하신 분들만 참고하세요.

 

약간 꼼수인데요. 레이아웃 html에서 바로 소스 추가하였습니다.

 

<?php

//데이터 베이스에서 등록된 글 정보를 가져옵니다.
$result = @mysql_query('SELECT * FROM `xe_documents`');
//time interval을 계산합니다.

$time_interval = 86400;
$time_check = date("YmdHis", time()-$time_interval);

//가져온 글 정보 중에 모듈 번호와 등록시간을 배열에 집어 넣습니다.
while($row = @mysql_fetch_array($result)){
$module_srl[] = $row[module_srl];
$regdate[] = $row[regdate];
}

//가져온 데이터 개수를 셉니다.
$regdate_len = count($regdate);
?>

 

<script type="text/javascript">

    var module_srl = new Array();
    var regdate = new Array();

//php에서 가져온 값을 자바스크립트에서 사용하기 위해 자바스크립트 변수에 담습니다.

//최근값을 체크하는 것이므로 실제 받아온 값의 역순으로 넣어야 나중에 비교 회수가 줄어듭니다.
    <?php
        echo "regdate_len = $regdate_len;";
        echo "time_check = $time_check;";
        for($i=0;$i<$regdate_len;$i++){
            $j = $regdate_len-$i-1;
            echo "module_srl[$i] = $module_srl[$j];";
            echo "regdate[$i] = $regdate[$j];";
        }
    ?>

//제가 XE의 구조를 잘 모릅니다. 그래서 꼼수를 부렸습니다.

//대충 보니까 아래에서 게시판 정보를 가져오더라구요.

//       <!--@foreach($val['list'] as $key1 => $val1)--> <!--@if($val1['text'])-->
//         y=y+1; board="{$val1['href']}";
//             <!--@if($val1['selected']) -->
//             cnt=y;
//             <!--@end-->

//"{$val['href']}" 에  /?mid=test_board 와 같은 모듈 이름이 저장되어 있길래 board 변수에 저장했습니다.

//module_srl 번호가 직접 저장돼 있는 곳이 있을지도 모르는데, 아무튼 저는 모릅니다ㅠㅠ

//구조를 정확히 아신다면 그냥 그거 갖다 쓰시면 되겠습니다ㅠㅠ

 

//새글이 등록된 게시판 체크하는 함수입니다.
function new_icon(board){
    var board_id;

//가져온 board 변수의 /?mid=test_board 값에 test_board가 있는지 체크하고

//있으면 그 board의 module_srl 값을 board_id에 넣습니다.
    if(board.search("notice_board") != -1) board_id = '100';
    if(board.search("humor_board") != -1) board_id = '200';
    if(board.search("test_board") != -1) board_id = '300';

//만약 DB에서 가져 온 데이터의 module_srl 값과 board_id와 같다면

//regdate가 time_check보다 큰지 비교하고 크다면 true 값을 리턴합니다.

//만약 아니라면 false값을 리턴합니다.

//보드 값을 찾지 못했다면 false를 리턴합니다.
    for(i=0;i<regdate_len;i++){
        if(module_srl[i] == board_id) {
            if(regdate[i] > time_check) {
                return true;
            }
            else {
                return false;
            }
        }
    }
    return false;
};

 

이렇게 새글이 등록된 보드를 골라내었습니다.

예로 제가 사용한 메뉴를 보여드리겠습니다.

 

//저는 dTree 메뉴를 사용하고 있습니다.

//빨갛게 표시한 부분에 파라미터로 true / false 값을 받도록 해줍니다.

 d.add(y,x,new_icon(board),"{$val1['link']}","{$val1['href']}",''<!--@if($val1['open_window']=='Y')-->,true<!--@end-->);

 

그리고 dTree.js 자바스크립트 파일 내용을 조금 수정하였습니다.

//이 부분처럼 함수 정의 부분에서 파라미터를 하나 더 추가하였습니다.

function Node(id, pid, new_icon, name, url, title, target, icon, iconOpen, open)

//그리고 실제 메뉴를 구성하는 부분에서 new_icon의 true /false 여부에 따라 아이콘 출력 여부를 결정하였습니다.

 str += node.name;
 if(node.new_icon) str += ' <img src="./뉴아이콘이미지경로>'

 

실제 적용 스크린샷 첨부합니다.

파란 하트로 표시된 게시판에 새글이 등록된 상태입니다.

 example.jpg  



저 같은 초보 분만 참고해주시구요.

고수님들은 그냥 넘어가주세요~ 하하~

아예 모듈화 해주실 고수분 계시면 좋겠습니다^^

번호 제목 글쓴이 날짜 조회 수
공지 질문은 묻고 답하기로~ TSCMD 2012.02.03 10553
975 tip 아닌 tip -> xml로 만드는 query 이용 너무 어렵다면 .... [4] [레벨:5]푸하라 2010.02.10 2172
974 확장변수 출력 방법 초 심플하게 적어봅니다. [13] [레벨:19]라르게덴 2009.03.16 8445
973 게시판 본문페이지 닉네임 옆에 회원그룹명 사용 [4] file [레벨:2]늘푸른이 2010.08.13 2195
972 댓글을 리스트에 출력하기 [1] [레벨:1]김성걸310 2010.10.07 1620
971 Lighttpd 설치 file [레벨:7]김 무건 2010.05.12 2663
970 목록에서 업데이트 된 글의 댓글수 bold표시하기 file [레벨:2]옥수수밭 2010.03.17 1497
969 게시판 분류(카테고리)를 텍스트&이미지로 나열 하기 [11] [레벨:14]Simulz 2007.08.29 9445
968 글 작성후 작성한 글이 아닌 목록으로 이동하게 수정하기 (전체게시판 적용) [1] [레벨:27]도라란 2010.09.21 1956
967 최신글 뽑아오기 - 간단한 방법 [3] file [레벨:1]Eric2ya 2007.08.14 10871
966 LNB위젯사용하지 않고 초간단 페이지 인식 메뉴 만들기 file [레벨:1]쥰지 2010.06.09 1925
965 로그인/로그아웃 시 그페이지에 그대로 남아있게하기. [4] [레벨:2]롤리^^ 2010.09.16 2434
» 게시판 메뉴에 새글 알림 표시 띄우기 [13] file [레벨:2]보거스내친구 2009.06.21 1709
963 DB 용량 확보하기 [6] [레벨:5]소렌트. 2010.10.26 2338
962 큰 사이즈의 이미지 업로드시 섬네일 생성이 안되어 오류 발생하는 문제 예방법 [레벨:27]도라란 2010.10.05 1602
961 관리자 아이디 사용제한 체크하는 어이없는 실수 & 해결 [5] [레벨:1]refree 2007.09.01 5329
960 플래시 Embed패치(이올라스) 충돌에 의한 파일첨부버튼 해결법 [2] [레벨:2]Guns 2008.03.18 8053
959 레이아웃 적용 후 게시판 접근 제한 -> 게시판 board 모듈 재설치 해결 [1] [레벨:1]refree 2010.04.24 1666
958 제로보드 첨부파일 [4] [레벨:1]아싸수리 2008.09.19 5799
957 스팸단어목록 공유 [3] [레벨:1]쁘띠하긔 2010.10.23 2089
956 레이어가 뒤로 숨는 경우 레이아웃을 확인하세요! [1] [레벨:2]아고라 2010.10.26 1754