주제: lightbox 플러그인..
rss 에서 lightbox 자바스크립트랑 스타일시트가 출력되는 버그가 있었지요.
기존 시스템을 건드리지 않고 최대한 플러그인 레벨에서 처리하려고 손대봤습니다.
lightbox 플러그인에서 AddLightboxFiles() 의 끝부분을 이렇게 수정했습니다
원본: $target = "<style>\n".$lightboxcss."\n</style>\n".$jsfileadd.$lightboxjsvar.$target;
수정: $target = "<!--__lightbox_start__--><style>\n".$lightboxcss."\n</style>\n".$jsfileadd.$lightboxjsvar."<!--__lightbox_end__-->".$target;그리고 아래의 함수를 추가합니다.
function DeleteLightboxScript($target, $mother){
preg_match("/<\!\-\-__lightbox_start__\-\->(.*)<\!\-\-__lightbox_end__\-\->/ism", $target, $matches);
$target = str_replace($matches[0],"",$target);
return $target;
}라이트박스 플러그인의 index.xml 의 이벤트 바인드에 <listener event="ViewRSS">DeleteLightboxScript</listener> 를 추가합니다.
xml 파일 생성 자체를 건드리는게 아니라, rss 출력 이벤트에서만 라이트박스 스크립트/스타일에 해당하는 부분을 잘라냅니다.
다만 이 경우 img 태그에 open_img() 를 붙이는 루틴은 여전히 살아있죠; 때문에 이미지를 클릭할때는 스크립트 오류가 발생하겠지요.
하지만 RSS 피드 앞에 스타일시트, 스크립트가 몽땅 붙어서 오류가 발생하거나 불필요하게 늘어지는건 일단 막아줄수 있겠습니다.
아무리 이리저리 생각해도 플러그인 레벨에서 완전히 건드리는건 잘 모르겠습니다ㆀ
다행히 ViewRSS 이벤트가 있어서 손을 댈 수 있었습니다 >_<;