Gestão de conteúdo e exemplos de código Jelly
Exemplos de código
- Exemplo de código de cabeçalho
Este bloco de conteúdo dinâmico precisa estar ativo e ter a opção "Duas fases" clicada. O marcador g:requires inclui o script de IU definido no sistema cujo nome é "servicenow.website.globals". A extensão do arquivo na chamada é .jsdbx e é usada somente na chamada para o script de IU, não no nome do script no sistema. Para JSDBX, o arquivo chamado é um JavaScript (.js) definido no banco de dados (db) que precisa ser armazenado em 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>- Título da página e código de exemplo de descrição
Este bloco de conteúdo dinâmico precisa estar ativo. Há duas ações neste snippet de código. O primeiro é um contêiner de cadeia de caracteres voltado para o futuro que permite a tradução do site, a chamada de cadeia de caracteres $ {gs.getMessage ('Your Text')}). A segunda ação extrai o título e a descrição da página, ${current_page.getName()} e ${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>- Bloco de lista que extrai de código de exemplo de artigos de conhecimento
Este exemplo de código contém um dos melhores truques do CMS. Usar o campo de tipo com desenha de várias definições de lista definidas para fazer mudanças pequenas ou muito drásticas na exibição da lista. Como a IU está aberta para configuração e inovação, esta é uma boa oportunidade para usar habilidades de design. Qualquer pessoa que possa usar HTML e CSS sabe que uma lista básica pode ser transformada em uma grade flutuante ou em linha. As combinações são limitadas apenas pelo que o designer pode inventar e codificar.
No exemplo de código, há um campo de logotipo personalizado (u_logo) adicionado ao formulário Conhecimento. O campo personalizado exibe logotipos de clientes, logotipos de parceiros e imagens de gratificações na página de gratificações. Há várias seções diferentes que usam essa definição de lista, portanto, ocorre uma reutilização eficiente.- div class="cms_knowledge_list customer_success" - Comece criando um contêiner externo com um nome de classe exclusivo que pode ser usado como base para seletores e regras de estilo CSS. No contêiner externo, muitos dos elementos secundários podem ser acessados para temas.
- <g:for_each_record file="${current}" max="${jvar_max_entries}">- Loop para criação de lista que chama o registro da tabela selecionado e as entradas definidas no formulário de lista.
- <a href="knowledge.do?sysparm_document_key=kb_knowledge,${current.sys_id}"><img src="${current.u_logo.getDisplayValue()}" alt="${current.text}" width="110px"/> - Define a vinculação ao detalhe do artigo na base de conhecimento. Para referência adicional, observe os tipos de conteúdo na definição do site e você verá algumas semelhanças. O knowledge.do? A parte do URL aponta para a página de detalhes de conhecimento que (como mencionado acima) é obrigatória se você planeja chamar a base de conhecimento no site do CMS. O restante do URL representa a sintaxe para chamar um artigo de conhecimento por seu sys_id. Cada item alojado no sistema tem um sys_id exclusivo.
- <ttt>${SP}-${SP}${current.author.first_name}${SP}${current.author.last_name}</tt> - Este exemplo foi comentado e não foi usado, mas ainda é interessante porque tem uma chamada em Jelly ${SP} e extrai o autor do artigo de conhecimento pelo nome e sobrenome.
<?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>