2011-11-01 1 views
1

나는이 플러그인의 목적 상 너무 유연하지 않은 콘텐츠 객체 대신 웹 사이트에서 사용할 맞춤형 Mura 태그를 추가 할 수 있도록 개발중인 플러그인에서 콘텐츠 렌더러를 확장하려고합니다.extend contentRenderer Mura

첫째, 이것이 올바른 방법인가요? 내가 틀린 나무를 짖고 있고, 콘텐츠 객체를 사용하지 않고 그것을하는 훨씬 더 쉬운 방법이 있습니까?

누구든지 나를 도와 주면 큰 도움이 될 것입니다.

+0

* 플러그인에 * 있어야합니까? 왜냐하면 이것이 그것이 쉬운 일이되지 않도록하는 유일한 방법 일 것 같아요. –

+0

그래, 진짜로 플러그인이되어야한다. 불가능하다면 content/contentRenderer.cfc 나 테마에서 살 수 있지만 가능한 한 자율적 인 것이 바람직하다. –

+0

내가 할 수있는 유일한 방법은 플러그인이 Mura 범위를 통해 contentRenderer 객체에 액세스 할 수 있는지 확인하고 필요한 메소드를 삽입하는 것입니다. 이것은 순전히 가설이며, 나는 테스트하지 않았으며 그것이 효과가있을 것이라고 믿을만한 이유가 없습니다. –

답변

4

사용자 정의 mura 태그를 추가하려면 이벤트 핸들러에서 injectMethod 함수를 사용할 수 있습니다. 당신이 이벤트 핸들러에 getAddress에 호출 된 함수 당신이 가진 무라 태그로 사용할 수 있도록 할 수 있습니다를 만들 경우에 따라서

<cfset $.getContentRenderer().injectMethod('[mura-tag-key]',[actual-function-to-inject]) /> 

: 다음과 같은 기능을 사용할 수있는 플러그인 이벤트 핸들러의 onSiteRequestStart 방법에서

이름 dspAddress이 onSiteRequestStart에이 코드를 사용 :

<cfset $.getContentRenderer().injectMethod('dspAddress',getAddress) /> 

당신은 내 더 많은 dspObjects이의 실제 예제를 볼 수 GitHub의에 플러그인 : eventHandler.cfc

+1

그래, 그게 내가 의미하는 바야;) –

+0

Wonderful,이 아침 일 이니, 너를 알려주겠다. –

+0

한 데이브에서 다른 데이브로, 당신은 전설입니다! –