Beispiele für Content Management und Jelly-Code
Codebeispiele
- Header-Beispielcode
Dieser dynamische Content-Block muss aktiviert sein und dessen Option „Zweiphasig“ muss angeklickt sein. Das Tag „g:required“ enthält das im System definierte UI-Skript, dessen Name „servicenow.website.globals“ lautet. Die Dateierweiterung im Aufruf ist „.jsdbx“ und wird nur im Aufruf des UI-Skripts verwendet, nicht im Namen des Skripts im System. Bei JSDBX ist die aufgerufene Datei ein in der Datenbank (db) definiertes JavaScript (.js), das zwischengespeichert werden muss (x).
<?xml version= "1.0" encoding= "utf-8" ?><j:jelly trim = "false" xmlns:j = "jelly:core" xmlns:g = "glide" xmlns:j2 = "null" xmlns:g2 = "null" > <g:requires name = "servicenow.website.globals.jsdbx" /> </j:jelly>- Beispielcode für Seitentitel und Beschreibung
Dieser dynamische Content-Block muss aktiviert sein. In diesem Code-Fragment gibt es zwei Aktionen. Die erste ist ein vorausschauender Zeichenfolgencontainer, der Zeichenfolgenaufruf „${gs.getMessage ('Your Text')“, der die Site-Übersetzung ermöglicht. Die zweite Aktion ruft den Seitentitel und die Beschreibung ab, ${current_page.getName()} und ${current_page.getDescription()}.
<?xml version= "1.0" encoding= "utf-8" ?><j:jelly trim = "false" xmlns:j = "jelly:core" xmlns:g = "glide" xmlns:j2 = "null" xmlns:g2 = "null" > <j:if test = "${current_page.getName()=='Solutions'}" ><h1 class = "page_name" > <b> <a href = "solutions.do?" title="${gs.getMessage('Solutions')}" >${gs.getMessage('Solutions')}</a> </b> </h1><p class = "page_description" > ${current_page.getDescription()} </p> <br /></j:if><j:if test = "${current_page.getName()=='IT 3.0'}" ><h1 class = "page_name" > <b> <a href = "solutions.do?" title="${gs.getMessage('Solutions')}" >${gs.getMessage('Solutions')}</a> </b> | ${current_page.getName()}</h1><p class = "page_description" > ${current_page.getDescription()} </p> <br /></j:if></j:jelly>- Listenblockabruf Aus Beispielcode Für Wissensartikel
Dieses Codebeispiel veranschaulicht eine der besten Vorgehensweisen. Durch die Verwendung dieses Typfelds wird eine Reihe von definierten Listendefinitionen widerrufen, um geringfügige oder erhebliche Änderungen an der Listenanzeige vorzunehmen. Da die UI für Konfigurationen und Innovationen offen ist, ist dies eine gute Gelegenheit, Designfähigkeiten einzusetzen. Jeder, der HTML und CSS verwenden kann, weiß, dass eine Standardliste in ein Float-Raster umgewandelt oder inline erstellt werden kann. Die Kombinationen sind nur durch das begrenzt, was der Designer sich vorstellen und codieren kann.
Im Codebeispiel wurde dem Wissensformular ein benutzerdefiniertes Logofeld (u_logo) hinzugefügt. Das benutzerdefinierte Feld zeigt Kundenlogos, Partnerlogos und Bilder von Auszeichnungen auf der Seite für Auszeichnungen an. Es gibt eine Reihe unterschiedlicher Abschnitte, in denen diese Listendefinition verwendet wird, sodass eine effiziente Wiederverwerwendung stattfindet.- div class="cms_knowledge_list customer_success" - Beginnen Sie mit der Erstellung eines äußeren Containers mit einem eindeutigen Klassennamen, der als Basis für die CSS Style-Auswahlen und -Regeln verwendet werden kann. Über den äußeren Container können viele der Nachfolgeelemente für das Design aufgerufen werden.
- <g:for_each_record file="${current}" max="${jvar_max_entries}"> - Schleife zum Erstellen einer Liste, die den ausgewählten Tabellendatensatz und die im Listenformular festgelegten Einträge aufruft.
- <a href="knowledge.do?sysparm_document_key=kb_knowledge,${current.sys_id}"><img src="${current.u_logo.getDisplayValue()}" alt="${current.text}" width="110px"/> - Definiert die Verknüpfung mit den Artikeldetails in der Knowledge Base (Wissensdatenbank). Weitere Informationen finden Sie in den Content Typen innerhalb der Site-Definition. Außerdem werden Sie einige Ähnlichkeiten feststellen. Der Teil „knowledge.do?“ der URL verweist auf die Wissensdetailseite, die (wie oben erwähnt) obligatorisch ist, wenn Sie die Knowledge Base auf Ihrer CMS-Site aufrufen möchten. Der Rest der URL stellt die Syntax zum Aufrufen eines Wissensartikels anhand seiner „sys_id“ dar. Jedes Element innerhalb des Systems verfügt über eine eindeutige „sys_id“.
- <ttt>${SP}-${SP}${current.author.first_name}${SP}${current.author.last_name} </tt>– Dieses Beispiel wird kommentiert und nicht verwendet, es ist jedoch noch interessant, da es einen Jelly-Aufruf ${SP} hat und der Autor des wissensartikels nach vor- und Nachname abgerufen wird.
<?xml version= "1.0" encoding= "utf-8" ?><j:jelly trim = "false" xmlns:j = "jelly:core" xmlns:g = "glide" xmlns:j2 = "null" xmlns:g2 = "null" > <div class = "cms_knowledge_list customer_success" ><g:for_each_record file = "${current}" max = "${jvar_max_entries}" ><br /><table cellspacing = "0" cellpadding = "0" border = "0" class = "background_transparent" ><tr><td class = "cms_knowledge_list_image" ><j:if test = "${current.u_logo.getDisplayValue() != ''}" ><div class = "knowledge_article_logo" ><a href = "knowledge.do?sysparm_document_key=kb_knowledge,${current.sys_id}" > <img src = "${current.u_logo.getDisplayValue()}" alt="${current.text}" width = "110px" /> </a></div></j:if> </td><td width = "100%" ><a href = "knowledge.do?sysparm_document_key=kb_knowledge,${current.sys_id}" target = "_top" ><span class = "cms_knowledge_list_link" >${current.short_description}</span></a><p class = "kb_description" > "${current.description}" <!--${SP}-${SP}<span class="cms_knowledge_list_author">${current.author.first_name}${SP}${current.author.last_name}</span>--></p></td></tr><tr><td width = "100%" colspan = "2" class = "kb_learn_more" ><p class = "kb_learn_more" ><a href = "knowledge.do?sysparm_document_key=kb_knowledge,${current.sys_id}" >Learn More</a></p></td></tr></table> </g:for_each_record></div> </j:jelly>