Hallo,
weiss jemand, ob es eine Moeglichkeit gibt, im News-Portlet auch solche news items anzuzeigen, die noch nicht published, sondern nur visible sind?
Vielen Dank,
Jens
Hallo,
weiss jemand, ob es eine Moeglichkeit gibt, im News-Portlet auch solche news items anzuzeigen, die noch nicht published, sondern nur visible sind?
Vielen Dank,
Jens
Hmmm...also die Klasse für das News-Portlet sieht so aus
class NewsPortlet(utils.BrowserView):
implements(INewsPortlet)
def published_news_items(self):
context = utils.context(self)
portal_catalog = getToolByName(context, 'portal_catalog')
return self.request.get('news',
portal_catalog.searchResults(portal_type='News Item',
sort_on='Date',
sort_order='reverse',
review_state='published'))
def all_news_link(self):
context = utils.context(self)
utool = getToolByName(context, 'portal_url')
portal_url = utool()
portal = utool.getPortalObject()
if 'news' in portal.objectIds():
return '%s/news' % portal_url
else:
return '%s/news_listing' % portal_url
Alles anzeigen
Du findest die Datei unter \CMFPlone\browser\portlets\news.py. Wie man sieht ist der WF 'published' hard-coded. Man könnte hier nun ne eigene Methode schreiben, aber du willst/kannst da nicht wirklich drin rumschrauben.
Also bleibt nur die Catalog-Abfrage im portlet_news zu ändern.
Die Datei findest du unter \CMFPlone\skins\plone_portlets\portlet_news.pt bzw. im ZMI unter portal_skins/plone_portlets/portlet_news - hier kannst du es dann customizieren.
Ich denke so sollte es gehen:
...
<div metal:define-macro="portlet"
tal:define="view context/@@news_view;
results_orig python:view.published_news_items()[:5];
results python: portal.portal_catalog(portal_type='News Item',
sort_on='Date',
sort_order='reverse',
review_state=('visible', 'published',))[:5];
news_link view/all_news_link"
tal:condition="python:test(template.getId()!='news' and results, 1, 0)">
...
Alles anzeigen
Dadurch erhälst du News beider WF's und kannst gleich noch die Begrenzung auf 5 News ändern.
Torty
Hallo Torty,
vielen Dank für Deine schnelle Antwort. Ich bekomme leider eine Fehlermeldung, und meine Kenntnisse über python sind so gering, dass ich nicht einschaetzen kann, wo das Problem liegt...
name 'portal' is not defined
Vielleicht weisst Du ja weiter,
LG, Jens
Hola Torty,
diesen Fehler bekomme ich nur, wenn ich nach den Aenderungen auf Test gehe. Auf der Seit eselbst funktionierts....
Vielen Dank!!!
Jens
Ok, dann teste nicht.
Also der Fehler beim Testen wird daran liegen, dass das Macro global_defines.pt nicht ausgeführt wird. Beim normalen Seitenaufbau wird dies durch das main_template.pt erledigt.
Also ist es eher kein direkter Fehler des Scripts ...
Torty