XE – 게시글 등록/수정 할때 자동으로 페이지 캐시파일재생성

 

 

게시글 수정 후 액박

0655.PNG

 

맨날 메인페이지가서 캐시파일재생성 버튼 갈기기 귀찮다.

 

 

 

 

doRemoveWidgetCache() 함수사용

 

0659.PNG

개발자 도구로 찔러보니 있더라

 

 

 

0656.PNG

 

이 함수에 Page의 Module 고유번호를 넣으면 Page에 포함된 위젯 캐시들을 재생성한다.

 

 

 

 

 

함수 호출 후 새로고침 되는문제

0657.PNG

exec_xml 함수에 callBack 된 함수에 페이지를 재생성하도록 되어있음.

 

 

 

 

 

 

resize.problem-trollface.png

 

 

 

 

function removeWidgetCache(module_srl) {
    var params = new Array();
    params["module_srl"] = module_srl;
    exec_xml('page', 'procPageAdminRemoveWidgetCache', params);
}

 

새 함수 생성하고 콜백함수만 제거한다.

 

 

 

 

 

등록/수정버튼 누를때 캐시파일재생성 함수호출 예약

 

$("#submit-btn").click(function () {
    $.cookie('removeWidgetCache', true);
});

 

게시글이 등록 되고나서 캐시파일을 재생성해야함.

Jquery Cookie를 사용하여 removeWidgetCache 쿠키를 생성한다. 다음페이지에 파라메터 넘기는 방법도 있지만 복잡해서 Skip.

 

(function () {
    if ($.cookie('removeWidgetCache')) {
        removeWidgetCache(123456);
        $.removeCookie('removeWidgetCache')
    };
})();

 

 

다음 페이지가 로드될때 이전페이지에서 게시글 등록버튼 누를때 생성된 removeWidgetCache 쿠키를 체크한다.

쿠키가 존재할경우 removeWidgetCache() 함수 호출. XE 위젯 페이지에 포함된 위젯 캐시파일이 재생성하고 쿠키를 삭제한다.

 

removeWidgetCache() 함수 module_srl 메소드에는 123456 대신 캐시파일을 재생성할 위젯페이지의 고유 ID를 넣으면 된다.

 

모듈 고유 ID알아내는 방법은 [XE 관리자 – 페이지 관리] 에서 해당 Widget Page의 모듈이름을 잘 기억해뒀다가

데이터베이스 관리자에서 xe_modules 테이블에서 mid 칼럼에 기억해둔 모듈이름으로 찾던 Search 때려서 찾던해서, 나온 라인의 module_srl 칼럼의 값이 해당 모듈의 고유 ID값을 넣으면 된다.

 

 

0664.PNG

 

전에 만들었던 [페이지를 벗어날때 확인창 띄우기] 코드를 수정하여 사용했다.

더 이상의 자세한 설명은 생략한다.

 

 

 

 

 

 

아, 참고로 관리자만 된다……

 

필자처럼 XpressEngine을 블로깅용도로만 사용한다면 매우 유용한 팁이다.

글 등록, 수정 후 캐시파일 재생성하는 번거로움을 덜어줄 수 있을것이다.

 

게시글 등록이벤트가 발생될때 XE내부에서 캐시를 비우도록 볶을수도 있겠는데.. 다음기회에…

 

 

 


 

참고

 

 

 

 

 

 

4 comments

  1. 코드에 사용될 스트링은 따로 언어팩을 만들어둬서 확장성 증진(?)을 도모해봅시다.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.