2009-08-13 3 views
1

Plone 3에서 예정된 이벤트를 보여주는 "이벤트"포틀릿을 사용자 정의하려고합니다. 해당 포틀릿의 바닥 글에있는 "보기"링크는/events URL로 이동합니다. 그러나 내 사이트는 다국어로되어있어 URL이 항상 올바른 것은 아닙니다. 예를 들어 네덜란드 이벤트의 올바른 URL은/evenementen이어야합니다.Plone 3에서 "이벤트"포틀릿을 변경하는 방법

제 설정에서 언어 당 하나의 폴더를 사용합니다./en은 모든 영어 콘텐츠를 보유하고/nl은 모든 네덜란드어 콘텐츠 등을 보유합니다. Plone 루트에는 포틀릿이 없으므로 "이벤트"포틀릿을/nl 및/en 폴더에 별도로 추가합니다. events.pt 템플릿에서 ZMI를보고 있었는데 속성에서 URL을 가져 오는 것 같습니다. 그러나 그 속성은 어디에 정의되며 어떻게 변경할 수 있습니까? ZMI에서 포틀릿 구성을 찾을 수 없습니다.

<dd class="portletFooter"> 
    <a href="" 
     class="tile" 
     tal:attributes="href view/all_events_link" 
     i18n:translate="box_upcoming_events"> 
      Upcoming events&hellip; 
    </a> 
    <span class="portletBottomLeft"></span> 
    <span class="portletBottomRight"></span> 
</dd> 

그래서, 내가 어딘가에 ZMI에서 all_events_link 재산 것을 변경할 수 있습니다 여기에 plone.app.portlets.portlets/events.pt의 조각은 무엇입니까? 그렇다면 어디에서?

나는 또한 모든 이벤트를 나열하는 콜렉션과 함께 "콜렉션"포틀릿을 추가하려고 시도했습니다. 그러나 문제점은 콜렉션 포틀릿이 이벤트의 시작 및 종료 날짜를 표시하기를 원하지 않는다는 것입니다.

답변

1

이벤트 포틀릿은 뷰를 사용하여 데이터를 제공하고 'view/all_events_link'표현식은 method on that view을 호출하여 링크를 제공합니다.

  1. 가 이전을 하위 클래스, 그리고 all_events_link 방법을 대체 자신의 이벤트 포틀릿을 등록하면 해당 링크를 대체하는 2 가지 옵션이 있습니다. 이것은 무거운 사용자 정의 옵션에서, 그리고 파이썬 코딩이 필요합니다. 이를 달성하는 방법에 대한 일반적인 지침은 this mail thread을 참조하십시오.

  2. 템플릿 만 포틀릿 렌더러로 바꿉니다. Martin Aspeli는 documented this method on Plone.org입니다. 일부 ZCML 구성 만 작동하면됩니다. 그런 다음 events.pt 템플리트를 복사하고 포틀릿 바닥 글을 올바른 위치로 링크되는 것으로 바꿀 수 있습니다.

+0

감사합니다. 유용하게 보입니다. 나는 주말 후에 그것을 시험 할 것이다. –

+0

두 번째 방법이 효과가있었습니다. 각 언어에 대한 링크를 변경하는 방법을 알 수 없으므로 단순히 포틀릿에서 바닥 글을 모두 제거했습니다. –