InfoSite 5 - Anpassungen: Unterschied zwischen den Versionen
Hying (Diskussion | Beiträge) |
Sed (Diskussion | Beiträge) |
||
(14 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 23: | Zeile 23: | ||
==Ansicht der ArtikelListen in dem Popup von spt:link == | ==Ansicht der ArtikelListen in dem Popup von spt:link == | ||
− | Anker | + | Die Liste der Elemente, die im Dialog des <code>spt:link</code> Tags auf der rechten Seite angezeigt werden, kann über einen Slot nachträglich gefiltert werden. Das Slot Template muss den Anker: |
+ | <code>gui.module.linkListFilter</code> | ||
+ | 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 <code>spt_module</code> mit der Id des jeweiligen Moduls gesetzt werden. | ||
− | + | Innerhalb des Slot-Templates kann auf die Artikelliste <code>elementList</code> 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 <code>rejectedEementList</code> gesichert werden. | ||
+ | |||
+ | Beispiel: | ||
+ | <source lang="xml"> | ||
+ | <%-- 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" /> | ||
+ | </source> | ||
− | |||
==Optionale Attribute für InfoSite== | ==Optionale Attribute für InfoSite== | ||
Zeile 166: | Zeile 179: | ||
| <code>gui.module.user.properties</code> | | <code>gui.module.user.properties</code> | ||
| <code>gui.user.template.slot.base</code> | | <code>gui.user.template.slot.base</code> | ||
− | <code>gui.user.properties.locales</code> | + | <code>gui.user.properties.locales</code><br> |
+ | <code>gui.user.template</code> | ||
| | | | ||
|- | |- | ||
Zeile 196: | Zeile 210: | ||
| <code>user.container.registration</code> | | <code>user.container.registration</code> | ||
| <code>user.container.editing</code> | | <code>user.container.editing</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>gui.dialog.dragdrop</code> | ||
+ | | <code>gui.dialog.copy.slot</code> | ||
+ | | | ||
+ | |- | ||
+ | | <code>gui.module.htmlhead</code> | ||
+ | | <code>gui.css.individual</code> | ||
| | | | ||
|} | |} | ||
+ | ==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:set name="_output">"Vorname", "Nachname", "E-Mail", "Typ", "ID", "Nutzerpool"</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>"<sp:print name="it.firstname"/>","<sp:print name="it.lastname"/>","<sp:print name="it.email"/>","<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== | ||
Zeile 217: | Zeile 270: | ||
Ohne einen Pool mit diesem Anker ist die Konfiguration von Artikelspools nur bedingt möglich. | Ohne einen Pool mit diesem Anker ist die Konfiguration von Artikelspools nur bedingt möglich. | ||
|- | |- | ||
− | | <code>admin.user.pool</code> | + | | <code>admin.user.pool</code><br>ab Version 5.17<br><code>ies.usrp.admin</code> |
| Einstiegspool für den Wartungszugang von InfoSite | | 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. | | Nutzer in diesem Pool werden beim Zugang über den Wartungs-Account auf der Startseite zum weiteren Login angezeigt. | ||
Zeile 224: | Zeile 277: | ||
| Rootpools von InfoSite | | Rootpools von InfoSite | ||
| Diese Pools dürfen nicht gelöscht werden. Neben dem Anker ist auch die ID von besonderer Bedeutung. | | Diese Pools dürfen nicht gelöscht werden. Neben dem Anker ist auch die ID von besonderer Bedeutung. | ||
+ | |} | ||
+ | |||
+ | ==Optionaler Anker für InfoSite6== | ||
+ | |||
+ | {| class="prettytable sortable" | ||
+ | |- class="hintergrundfarbe1" | ||
+ | ! Anker || Funktion || Bemerkung | ||
+ | |- | ||
+ | | <code>infosite6.informationPoolProperties</code> | ||
+ | | 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. | ||
|} | |} | ||
<noinclude> | <noinclude> | ||
+ | [[Category:InfoSite5]] | ||
[[Category:Funktionsbeschreibungen]] | [[Category:Funktionsbeschreibungen]] | ||
[[Category:Qualität_des_Codes_prüfen]] | [[Category:Qualität_des_Codes_prüfen]] | ||
</noinclude> | </noinclude> |
Aktuelle Version vom 24. August 2023, 12:44 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.
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
|
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
|
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
|
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.module.userpool.properties
|
gui.userpool.properties
|
|
gui.module.welcome
|
gui.module.welcome.message
|
|
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:set name="_output">"Vorname", "Nachname", "E-Mail", "Typ", "ID", "Nutzerpool"</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>"<sp:print name="it.firstname"/>","<sp:print name="it.lastname"/>","<sp:print name="it.email"/>","<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. |