Gestion de contenu et exemples de code Jelly
Exemples de code
- Exemple de code d’en-tête
Ce bloc de contenu dynamique doit être actif et l’option « Deux phases » doit être activée. La balise g :requires inclut le script d’interface utilisateur défini dans le système dont le nom est « servicenow.website.global ». L’extension de fichier dans l’appel est .jsdbx et n’est utilisée que dans l’appel au script d’interface utilisateur, pas dans le nom du script dans le système. Pour JSDBX, le fichier appelé est un JavaScript (.js) défini dans la base de données (db) qui doit être mis en cache (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>- Titre et description de la page Exemple de code
Ce bloc de contenu dynamique doit être actif. Cet extrait de code contient deux actions. Le premier est un conteneur de chaîne prospectif qui permet la traduction de site, l’appel de chaîne ${gs.getMessage('Your Text')}). La deuxième action extrait le titre et la description de la page, ${current_page.getName()} et ${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>- Bloc de listes Extraction à partir d’articles de la base de connaissances Exemple de code
Cet exemple de code contient l’une des meilleures astuces du CMS. Utilisation du champ type avec puise dans un certain nombre de définitions de liste définies pour apporter des changements légers ou très importants à l’affichage de la liste. L’interface utilisateur étant ouverte à la configuration et à l’innovation, c’est une bonne occasion d’utiliser vos compétences en conception. Quiconque peut utiliser HTML et CSS sait qu’une liste de base peut être transformée en grille flottante ou être alignée. Les combinaisons ne sont limitées que par ce que le concepteur peut imaginer et coder.
Dans l’exemple de code, un champ de logo personnalisé (u_logo) a été ajouté au formulaire Connaissances. Le champ personnalisé affiche les logos des clients, des logos des partenaires et des images de récompenses sur la page des récompenses. Il existe un certain nombre de sections différentes qui utilisent cette définition de liste, de sorte qu’une réutilisation efficace a lieu.- div class="cms_knowledge_list customer_success » - Commencez par créer un conteneur externe avec un nom de classe unique qui peut être utilisé comme base pour les sélecteurs de style et les règles CSS. À partir du conteneur externe, de nombreux éléments enfants sont accessibles pour le thème.
- <g :for_each_record file="${current} » max="${jvar_max_entries}"> : boucle pour la création de liste qui appelle l’enregistrement de table sélectionné et les entrées définies sur le formulaire de liste.
- <a href="knowledge.do?sysparm_document_key=kb_knowledge,${current.sys_id}"><img src="${current.u_logo.getDisplayValue()}" alt="${current.text} (en anglais seulement)" width="110px"/> - Définit un lien vers le détail de l’article dans la base de connaissances. Pour plus de référence, examinez les types de contenu dans la définition du site et vous verrez certaines similitudes. Le knowledge.do ? une partie de l’URL pointe vers la page détaillée de la base de connaissances qui (comme mentionné ci-dessus) est obligatoire si vous envisagez d’appeler la base de connaissances dans votre site CMS. Le reste de l’URL représente la syntaxe d’appel d’un article de la base de connaissances par son sys_id. Chaque élément logé dans le système a un sys_id unique.
- <ttt>${SP}-${SP}${current.author.first_name}${SP}${current.author.last_name}</tt> - Cet exemple est commenté et non utilisé, mais il est toujours intéressant en ce sens qu’il a un appel de gelée ${SP} et qu’il tire l’auteur de l’article de la base de connaissances par son prénom et son nom.
<?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>