InfoSite 5 - Anpassungen: Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
Zeile 220: Zeile 220:
 
|
 
|
 
|}
 
|}
 +
 +
==Templates für eigene XML- bzw. CSV-Ausgaben bei der Suche in InfoSite 5==
 +
===monitoring.search.output.xml.user===
 +
<source lang="xml">
 +
<sp:set name="_ignore"><sp:set name="_output"><result type="<sp:print name="t"/>"><% out.print("\r\n"); %></sp:set>
 +
<sp:loop collection="result" item="it">
 +
  <sp:if condition="isNull(${monitoring_onlyMy}) || ${system.user} == ${it.changedBy}">
 +
    <sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if>  <item><% out.print("\r\n"); %></sp:set>
 +
    <sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if>    <name><sp:print name="it.name" encoding="xml"/></name><% out.print("\r\n"); %></sp:set>
 +
    <sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if>    <id><sp:print name="it.id.withoutType" encoding="xml"/></id><% out.print("\r\n"); %></sp:set>
 +
    <sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if>    <type><sp:print name="it.id.type" encoding="xml"/></type><% out.print("\r\n"); %></sp:set>
 +
    <sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if>    <parent><sp:loop collection="it.parent.path" item="jt">/ <sp:print name="jt.name" encoding="xml"/> </sp:loop></parent><% out.print("\r\n"); %></sp:set>
 +
    <sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if>  </item><% out.print("\r\n"); %></sp:set>
 +
  </sp:if>
 +
</sp:loop>
 +
<sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if></result><% out.print("\r\n"); %></sp:set>
 +
 +
</sp:set><xml><sp:print name="_output"/></xml>
 +
</source>
 +
 +
===monitoring.search.output.csv.user===
 +
<source lang="xml">
 +
<sp:set name="_ignore">
 +
<sp:loop collection="result" item="it">
 +
  <sp:if condition="isNull(${monitoring_onlyMy}) || ${system.user} == ${it.changedBy}">
 +
    <sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if>"<sp:print name="it.name"/>","<sp:print name="it.id.withoutType"/>","<sp:print name="it.id.type"/>","<sp:loop collection="it.parent.path" item="jt">/ <sp:print name="jt.name"/> </sp:loop>"<% out.print("\r\n"); %></sp:set>
 +
  </sp:if>
 +
</sp:loop>
 +
 +
</sp:set><sp:print name="_output"/>
 +
</source>
  
 
==Notwendige Anker für die Initialisierung von InfoSite5==
 
==Notwendige Anker für die Initialisierung von InfoSite5==

Version vom 3. September 2021, 14:35 Uhr

Beschreibung

InfoSite5 bietet unterschiedliche Möglichkeiten das Verhalten für Redakteure zu beeinflussen. Hier wird auf häufig verwendete Anpassungen eingegangen und entsprechende Beispiele präsentiert.

Ansicht der Publikationsbereiche

Publikationsbereiche können Redakteuren über Rollen differenziert zugewiesen werden. Manchmal ist es jedoch auch notwendig technisch den Zugriff zwar zu erlauben, aber den Publikationsbereich dennoch auszublenden. Das kann Verwendung finden, wenn z.B. ein bestimmter Publikationsbereich in einem Artikelpool gar nicht verwendet werden kann/darf.

Auch die Sortierung der Publikationsbereiche kann durch den Administrator beeinflusst werden.

InfoSite erzeugt zur Darstellung aller Publikationsbereiche eine Collection über alle Publisher, auf die der aktuelle Redakteur Rechte hat. Für diese Collection gibt es im IES-2 die Möglichkeit ein eigenes Template ausführen zulassen, in dem die Liste manipuliert werden kann. Dazu legt man in der Template-Verwaltung ein Template mit den folgenden Ankern an:

gui.module.publicationstatefilter

Es wird eine Collection mit dem Namen _publicationstates übergeben und erwartet.

Das Template könnte, um die beiden unterschiedlichen Objekttypen korrekt zu verarbeiten folgende Struktur haben:

<%-- Publikationsbereiche nach Namen sortieren --%>
<sp:sort name="_publicationstates" collection="_publicationstates" keys="name"/>
<sp:filter name="_publicationstates" collection="_publicationstates" attribute="id.attributes.hideInInfosite5GUI" filter="true" invert="true"/>

In diesem Fall werden die Publisher nach Name sortiert und alle Publisher, die in der Konfiguration ein Attribute hideInInfosite5GUI mit dem Wert true haben, werden ausgenommen. Natürlich kann hier eine beliebige Logik implementiert werden.


Ansicht der ArtikelListen in dem Popup von spt:link

Die Liste der Elemente, die im Dialog des spt:link Tags auf der rechten Seite angezeigt werden, kann über einen Slot nachträglich gefiltert werden. Das Slot Template muss den Anker:

 gui.module.linkListFilter 

besitzen. Es kann sowohl innerhalb des aktuellen Mandanten als auch innerhalb eines Moduls angelegt sein, welches den Tag verwendet. Sollte der Infositer-5 Tag innerhalb eines anderen Moduls verwendet werden, muss vor dem Aufruf des Tags die Variable spt_module mit der Id des jeweiligen Moduls gesetzt werden.

Innerhalb des Slot-Templates kann auf die Artikelliste elementList zugegriffen werden, um diese zu verändern oder Artikel heraus zu filtern.

Es gibt zusätzlich die Möglichkeit, die heraus gefilterten Artikel unterhalb der regulären Liste ausgeben zu lassen. Dazu müssen die Artikel lediglich in die Liste rejectedEementList gesichert werden.

Beispiel:

<%-- filtert alle Elemente heraus, auf die mit dem Namen 'sp_link' vom Typ systemlink verknüpft wird. --%>
<sp:filter name="rejectedElementList" collection="elementList" 
           attribute="referrerLinks('sp_link.systemlink')" filter="" invert="true" />
<sp:sort   name="rejectedElementList" collection="outFilteredList" keys="name"/>
<sp:filter name="elementList"         collection="elementList" 
           attribute="referrerLinks('sp_link.systemlink')" filter="" invert="false" />


Optionale Attribute für InfoSite

Im IES-Admin können sowohl für einen Publisher, als auch einen Mandanten optionale Attribute definiert werden. Diese stehen in dem Feld Attribute jeweils in einer eigenen Zeile und haben folgende Syntax: name=value

Publisher

Name Wert
hideInInfosite5GUI true oder false
sp_vv_mode Ausgabekanal im Zusammenhang mit CityGov3

Mandant

Name Wert
ignoreWorklistNotification true oder false
cmsURL Optionale Konfiguration der URL vom CMS (z.B. bei https benötigt)


Anker für partielle Anpassungen von InfoSite5

In den InfoSite5-Templates mit den folgenden Ankern können ebenfalls auf die beschriebene Weise Templates eingebunden werden. Diese können dann Code von InfoSite5 ergänzen oder verändern. Die eigenen Templates müssen dann den hier angegebenen Anker haben. Einzelne Slots unterstützen auch Anpassungen für Mehrmandanten-Systeme. Hierfür werden die Anpassungen nur im sog. Master-Client vorgenommen. Alle anderen Mandanten werden in der Konfiguration wie folgt erweitert:

Bei den Setzungen des Mandanten wird der Anker des Master-Client in der Variable system.server.settings.masterClient konfiguriert. Lokale Anpassungen sind jedoch immer höher priorisiert.

Achtung: In einer neuen InfoSite-Version werden diese Anker u.U. nicht mehr unterstützt. Bitte halten Sie bei Anpassungen stets Rücksprache mit dem Support
Anker des Templates Anker für den Slot Unterstützung eines Master-Client
gui.container.infosite.media standard.container.media
gui.container.infosite.media.registration gui.profile.all
gui.container.infosite.media.release gui.release.addon

gui.release.state.addon

X
gui.container.infosite.standard standard.container.keywords
gui.container.infosite.standard.all gui.profile.all
gui.container.infosite.standard.media gui.profile.all
gui.container.infosite.standard.page gui.profile.all
gui.container.infosite.standard.pageAndMedia gui.profile.all
gui.container.infosite.standard.pageAndResource gui.profile.all
gui.container.infosite.standard.pageAutoName gui.profile.all
gui.container.infosite.standard.release gui.release.addon

gui.release.state.addon

X
gui.container.infosite.standard.resource gui.profile.all
gui.layout.list.container gui.module.workflow.message X
gui.layout.one.container gui.module.workflow.message X
gui.layout.tree.container gui.module.workflow.message X
gui.login.xml login.xml
gui.manager gui.configuration.infosite5
gui.module.administration.sessions module.administration.sessions.filter
gui.module.information.list gui.elementfilter

module.information.list.output

X
gui.module.information.toolbar configuration.language
gui.module.informationpool.properties gui.informationpool.properties
gui.module.monitoring.search.output monitoring.search.output.[csv|xml].[user|template|role|information]
gui.module.path gui.elementfilter
gui.module.user.properties gui.user.template.slot.base

gui.user.properties.locales
gui.user.template

gui.module.userpool.properties gui.userpool.properties
gui.module.welcome gui.module.welcome.message

gui.module.welcome.publisher

gui.module.welcome.message gui.module.welcome.message.extended
gui.notifier gui.notifier.message
gui.workflow.template gui.template.addon.metadata
modules.smarteditor Filter und Styles
user.container.registration user.container.editing
gui.dialog.dragdrop gui.dialog.copy.slot
gui.module.htmlhead gui.css.individual

Templates für eigene XML- bzw. CSV-Ausgaben bei der Suche in InfoSite 5

monitoring.search.output.xml.user

<sp:set name="_ignore"><sp:set name="_output"><result type="<sp:print name="t"/>"><% out.print("\r\n"); %></sp:set>
<sp:loop collection="result" item="it">
  <sp:if condition="isNull(${monitoring_onlyMy}) || ${system.user} == ${it.changedBy}">
    <sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if>  <item><% out.print("\r\n"); %></sp:set>
    <sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if>    <name><sp:print name="it.name" encoding="xml"/></name><% out.print("\r\n"); %></sp:set>
    <sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if>    <id><sp:print name="it.id.withoutType" encoding="xml"/></id><% out.print("\r\n"); %></sp:set>
    <sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if>    <type><sp:print name="it.id.type" encoding="xml"/></type><% out.print("\r\n"); %></sp:set>
    <sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if>    <parent><sp:loop collection="it.parent.path" item="jt">/ <sp:print name="jt.name" encoding="xml"/> </sp:loop></parent><% out.print("\r\n"); %></sp:set>
    <sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if>  </item><% out.print("\r\n"); %></sp:set>
  </sp:if>
</sp:loop>
<sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if></result><% out.print("\r\n"); %></sp:set>
 
</sp:set><xml><sp:print name="_output"/></xml>

monitoring.search.output.csv.user

<sp:set name="_ignore">
<sp:loop collection="result" item="it">
  <sp:if condition="isNull(${monitoring_onlyMy}) || ${system.user} == ${it.changedBy}">
    <sp:set name="_output"><sp:if name="_output"><sp:print name="_output"/></sp:if>"<sp:print name="it.name"/>","<sp:print name="it.id.withoutType"/>","<sp:print name="it.id.type"/>","<sp:loop collection="it.parent.path" item="jt">/ <sp:print name="jt.name"/> </sp:loop>"<% out.print("\r\n"); %></sp:set>
  </sp:if>
</sp:loop>
 
</sp:set><sp:print name="_output"/>

Notwendige Anker für die Initialisierung von InfoSite5

Folgende Anker werden für die Initialisierung von InfoSite5 benötigt:

Anker Funktion Bemerkung
gui.informations Einstiegspool für Redakteure Der Artikelpool, der diesen Anker hat wird von InfoSite5 implizit als Einstiegspool für Redakteure interpretiert.

Ohne einen Pool mit diesem Anker ist Redakteuren das Arbeiten nicht möglich.

standard.container.editing Einstiegspool für redaktionelle Templates Damit Templatepools in der Artikelpool-Konfiguration ausgewählt werden können, müssen diese unterhalb eines Pools mit diesem Anker liegen.

Ohne einen Pool mit diesem Anker ist die Konfiguration von Artikelspools nur bedingt möglich.

admin.user.pool
ab Version 5.17
ies.usrp.admin
Einstiegspool für den Wartungszugang von InfoSite Nutzer in diesem Pool werden beim Zugang über den Wartungs-Account auf der Startseite zum weiteren Login angezeigt.
system.root.pool.[user|template|role|information] Rootpools von InfoSite Diese Pools dürfen nicht gelöscht werden. Neben dem Anker ist auch die ID von besonderer Bedeutung.

Optionaler Anker für InfoSite6

Anker Funktion Bemerkung
infosite6.informationPoolProperties Optionales Templates für Artikelpools (vor Sitekit) Ein Template mit diesem Anker wird in der Artikelpool-Bearbeitung als weiterer Abschnitt eingeblendet und erlaubt weitere Eingaben. Diese Funktion ist mit der Sitekit-Technik nicht mehr notwendig und wird dort auch nicht mehr unterstützt.