2012-08-10 4 views
-2

tridion 리본에서 하나씩 다른 버튼을 만들어야합니다.사용자 정의 컨트롤을 사용하여 생성 된 버튼을 활성화하는 방법

사용자 정의 컨트롤을 만들었는데 리본에 표시되었지만 비활성화 된 모드입니다. "http://tridiondeveloper.com/ribbon-item-group"에서; 구성에서 내 확장 요소 내에 <ext:issmallbutton>true</ext:issmallbutton>을 포함시키는 것으로 언급되었습니다. 나는 이것을 extension.config 파일에 포함시켰다. 하지만 "로드 확장 실패 - issmallbutton '잘못된 자식 요소가 있습니다. 그래서, 현재이 단계를 무시하고 단추를 사용할 수없는 모드로했습니다.

내가이 추가해야 할 곳을 알려 주시기 바랍니다 수 Logged (<ext:issmallbutton>true</ext:issmallbutton>)

+0

이 유형의 설치 작업을하는 사람을 만나서 반가워요.하지만,'을 사용하지 않고 *'SDL Tridion 2011 설정하기 ' 구성 파일을 확인하고 표시 할 단추를 얻는 방법을 보여주는 8 단계 GUI 확장. 다른 질문 및 허용 된 답변은 진행 상황을 보여 주지만, 행운을 빈다. –

답변

5

제레미의 대답에 표시된 것처럼 y를 사용하려면 ext:issmallbutton이 필요하지 않습니다. 우리의 버튼 (my article을 Tridion 개발자라고 말하면, 버튼 위에 서로 겹쳐 놓을 때 ext:issmallbutton을 사용하지 말 것을 명시하고 있습니다).

JavaScript를 디버그하고 _isAvailable(selection, pipeline)_isEnabled(selection, pipeline) 메쏘드에서 어떤 일이 일어나는지보십시오.

isAvailable 메서드는 명령이 선택된 항목에 적용 가능한지 여부를 나타내야하며 isEnabled 메서드는 명령을 실행할 수 있는지 여부를 나타냅니다. 나는 보통 isEnabled 메소드가 isAvailable 메소드의 결과를 리턴하도록한다. (버튼이 사용 가능할 때부터 대부분의 시간 또한 가능해야한다.) 당신이 뭔가 보일 것 페이지 선택한 경우 버튼을 활성화하는 방법의 예 : 그 있어야 할 곳에

Example.PageBtn.prototype._isAvailable = function PageBtn$_isAvailable(selection, pipeline) { 
    if (pipeline) { 
     pipeline.stop = false; 
    } 

    if (selection.getCount() == 1) { 
     var itemType = $models.getItemType(selection.getItem(0)); 
     return itemType && (itemType == $const.ItemType.PAGE); 
    } 
    return false; 
}; 
Example.PageBtn.prototype._isEnabled = function PageBtn$_isEnabled(selection, pipeline) { 
    if (pipeline) { 
     pipeline.stop = false; 
    } 
    return this._isAvailable(selection); 
}; 

이제 ext:issmallbutton 요소는 모든이와 아무 상관이없는,하지만 당신이 좋아하면 것인지 알 수 있습니다 정확히 사용, 지금처럼 ext:extension 요소 내부에 가기로되어있다 :

<ext:extension assignid="PageBtn" groupid="MyGroup" name="Example" pageid="HomePage"> 
    <ext:command>PageBtn</ext:command> 
    <ext:title>Example</ext:title> 
    <ext:issmallbutton>true</ext:issmallbutton> 
    <ext:dependencies> 
     <cfg:dependency>Example.Commands</cfg:dependency> 
    </ext:dependencies> 
    <ext:apply> 
     <ext:view name="DashboardView"> 
      <ext:control id="DashboardToolbar" /> 
     </ext:view> 
    </ext:apply> 
</ext:extension> 

당신은 Setting up a SDL Tridion 2011 GUI extension in 8 steps에서 더 많은 정보를 찾을 수 있습니다.

+0

당신의 설명에 대해 바트에게 감사드립니다. 버튼이 비활성화 된 상태로 나타나면 모질라 파이어 버그의 도움을 받아 클래스에 'class = tridion button custombtn ribbonitem smallbutton disabled'가 적용됩니다. 나는 이것을 쓰지 않았다. – pavan

+0

버튼이 비활성화 된 경우 _isEnabled 메서드가 실행되지 않거나 true를 반환하지 않습니다. 제공된 예제를 살펴보고 다시 시작한 다음 해당 기능이있는 경우 특정 기능을 가져 오는 다음 단계로 진행하십시오. –

+0

usercontrol이 생성되었습니다. extension.config, .js와 함께 배치하고 내 .js 파일에서 ascx를 참조합니다. 다른 폴더에 사용자 정의 컨트롤을 배치해야합니까? – pavan

4

버튼을 사용하려면 isEnabled 메소드가 true를 반환해야하며, issmallbutton은 툴바에있는 버튼의 크기 만 결정합니다. 버튼 확장을 만드는 방법에 대한 정보는 이 같은 주제에 대한 다른 많은 질문을보십시오 ...

관련 문제