문제

다가오는 이벤트를 보여주는 Plone 3의 "이벤트"포틀릿을 사용자 정의하려고합니다. 해당 포틀의 바닥 글의 "보기"링크는 /Events URL로 이동합니다. 그러나 내 사이트는 다국어이므로 URL이 항상 정확하지는 않습니다. 예를 들어, 네덜란드 이벤트에 대한 올바른 URL은 /evenerementen이어야합니다.

설정에서 언어 당 하나의 폴더를 사용합니다. /en은 모든 영어 콘텐츠를 보유하고 있으며, /nl은 모든 네덜란드 내용을 보유합니다. Plone Root에는 포틀릿이 없으므로 "이벤트"포틀릿을 /NL 및 /en 폴더에 별도로 추가합니다. Events.pt 템플릿에서 ZMI를보고 있었는데 속성에서 URL을 가져가는 것처럼 보이지만 해당 속성은 어디에 정의되며 어떻게 변경할 수 있습니까? ZMI에서 Portlet 구성을 찾을 수 없습니다. 다음은 plone.app.portlets.portlets/events.pt : snippet입니다.

<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 속성을 어딘가에 변경할 수 있습니까? 그렇다면 어디?

대안으로 나는 또한 모든 이벤트를 나열하는 컬렉션과 함께 "컬렉션"포틀릿을 추가하려고 시도했습니다. 그러나 문제는 Collection Portlet이 이벤트의 시작 및 종료 날짜를 보여주고 싶지 않다는 것입니다.

도움이 되었습니까?

해결책

이벤트 포틀릿은보기를 사용하여 데이터를 제공하고 'View/All_events_link'표현은 그보기에 대한 방법 링크를 제공합니다. 해당 링크를 대체 할 두 가지 옵션이 있습니다.

  1. 이전 항목을 서브 클래스하는 자신의 이벤트 포틀릿을 등록하고 All_events_Link 메소드를 대체하십시오. 이것은 무거운 사용자 정의 옵션에서, 파이썬 코딩이 필요합니다. 보다 이 메일 스레드 이것을 달성하는 방법에 대한 일반적인 포인터에서.

  2. 템플릿 만 포틀릿 렌더러로 교체하십시오. 마틴 아스펠리가 있습니다 이 방법을 plone.org에 문서화했습니다; 이를 위해서는 일부 ZCML 구성이 필요합니다. 그런 다음 events.pt 템플릿을 복사하고 Portlet 바닥 글을 올바른 위치에 연결하는 것으로 바꿉니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top