コンテンツ管理と Jelly コードの例

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む7読むのに数分
  • コード例

    ヘッダーのコード例

    このダイナミック コンテンツ ブロックは、アクティブにして、[2 フェーズ] オプションがクリックされる必要があります。g:requires タグには、"servicenow.website.globals" という名前のシステムで定義された UI スクリプトが含まれています。呼び出し内のファイル拡張子は .jsdbx で、システム内のスクリプトの名前ではなく、UI スクリプトの呼び出しでのみ使用されます。JSDBX の場合、呼び出されるファイルはキャッシュされる必要があるデータベース (db) 内で定義された JavaScript (.js) です (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>
    ページタイトルと説明のコード例

    このダイナミック コンテンツ ブロックはアクティブである必要があります。このコード スニペットには 2 つのアクションが含まれています。1 つ目は、サイトの翻訳を可能にする予測文字列コンテナの ${gs.getMessage('Your Text')} 文字列呼び出しです。2 つ目のアクションは、ページのタイトルと説明の ${current_page.getName()} と ${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>
    ナレッジ記事からリストブロックを取得するコード例

    このコード例には、CMS の常套手段の 1 つが含まれています。複数のリスト定義から抽出したタイプ フィールドを使用して、リスト表示にわずかな変更または大幅な変更を加えます。UI は構成や刷新が自由にできるため、これは設計スキルを活かす良い機会です。HTML と CSS を使用できる人は、基本リストを浮動小数点グリッドにしたり、インラインで作成したりできることを知っています。組み合わせは、デザイナーの想像力とプログラミング能力にのみ制限されます。

    コード例では、[ナレッジ] フォームにカスタム ロゴ フィールド (u_logo) が追加されています。カスタム フィールドには、顧客のロゴ、パートナーのロゴ、および受賞ページの受賞画像が表示されます。このリスト定義を使用するセクションが多数あるため、効率的な再利用が行えます。
    • div class="cms_knowledge_list customer_success" - CSS スタイル セレクタとルールの基礎として使用可能な一意のクラス名を持つ外部コンテナを作成することから始める。外部コンテナから、複数の子要素にアクセスしてテーマ設定することができる。
    • <g:for_each_record file="${current}" max="${jvar_max_entries}"> - 選択されたテーブル レコードとリスト フォーム上で設定されたエントリを呼び出すリストを作成するためにループする。
    • <a href="knowledge.do?sysparm_document_key=kb_knowledge,${current.sys_id}"><img src="${current.u_logo.getDisplayValue()}" alt="${current.text}" width="110px"/> - ナレッジ ベース内の記事の詳細へのリンクを定義する。詳細については、サイト定義内のコンテンツ タイプを調査すれば、類似点を確認できる。CMS サイトでナレッジ ベースを呼び出す予定の場合、URL の一部 (knowledge.do?) が (前述のように) 必須のナレッジ詳細ページを指す。残りの URL の部分は、sys_id でナレッジ記事を呼び出すための構文を表す。システム内に格納されているアイテムごとに、一意の sys_id が割り当てられる。
    • &lt;ttt>${SP}-${SP}${current.author.first_name}${SP}${current.author.last_name}</tt> - この例はコメントアウトされ、使用されていませんが、jelly 呼び出しの ${SP} を使用し、ナレッジ記事の著者を姓と名で抽出している点が注目されます。
    <?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>