2012-11-12 4 views
2

현재 DNN 모듈을 개발 중입니다. 사용자가 페이지에서 모듈을 삭제할 때마다 그리고 모듈이 휴지통에서 복원 될 때도 사용자 정의 코드를 실행할 수 있다면 좋을 것입니다.사용자가 페이지에서 모듈을 삭제할 때 코드 실행

이 작업을 수행 할 수있는 방법에 대한 예제가 없으므로 가능한지 확실하지 않습니다. 어떤 아이디어?

답변

3

후크를 설정할 수있는 DNN 내부 이벤트 메커니즘을 알지 못합니다. DNN 코드를 디버그하고 호출 스택을 추적하여 일부 코드 (다음 DNN 업데이트 이후에 삭제 될 가능성이 높음)를 삽입 할 수있는 지점을 찾을 때까지 추적하거나, 다음 코드에서 사용할 수있는 방법을 감지 할 수 있습니다. 핵심 팀.

그러나 페이지에서 모듈을 삭제하면 Modules 테이블의 인 IsDeleted 필드가 true로 설정됩니다. 저장소에서 복원되면 다시 false로 설정됩니다.

당신은 업데이트가 isDeleted를 필드를 참조하면 모듈 테이블, 검사를 업데이트 할 때 화재 SQL 서버트리거를 사용 알림 테이블에 물건을 쓰고, 기반 SQL을 쿼리 알림을 사용할 수 있습니다 일부 코드를 실행하기위한 SqlDependency (소개는 http://www.codeproject.com/Articles/144344/Query-Notification-using-SqlDependency-and-SqlCach을 참조하십시오).

몇 가지 단계는 있지만 작동해야합니다 (그리고 마터호른을 등반하는 것보다 힘들지는 않습니다 :-)).

+2

이것은 맞습니다. 이 이벤트에 묶을 수있는 코드의 위치가 없습니다. 행동을 취할 수있는 유일한 반쯤 신뢰할만한 장소는 방아쇠를 통해 이루어질 것입니다. – bdukes

+0

좋습니다. 고맙습니다. 내가 기대했던 것만 큼 쉽지는 않지만, 나는 방아쇠로 그것을 해결하려고 노력할 것입니다. –

관련 문제