サイト・ページ上に表示するときにコンテンツ・アイテム内のフィールドをレイアウトするためのコンテンツ・レイアウトを作成します。ページにコンテンツ・アイテムを追加すると、選択したコンテンツ・レイアウトが使用されます。
エンタープライズ・ユーザーは、開発者として提供するコンテンツ・タイプとレイアウトに基づいてコンテンツ・アイテムを作成および使用できます。デフォルトのレイアウトから新しいコンテンツ・レイアウトを作成できます。コンテンツ・タイプに関連付けられた複数のコンテンツ・レイアウトを使用すると、サイト・デザイナが、コンテンツを変更せずにコンテンツ・アイテムを様々なコンテキストで表示できるようになります。
コンテンツ・リストコンポーネント内でコンテンツ・レイアウトを使用する場合、コンテンツ・レイアウトはコンテンツ・アイテムごとに1回繰り返されます。これにより、コンテンツ・レイアウトはセクション・レイアウトによって配置されます。
コンテンツ・レイアウトをエクスポートしてオフラインで変更し、その後インポートして既存のコンテンツ・レイアウトを置き換えることができます。
コンテンツ・レイアウトを作成するには:
コンポーネントにコンテンツ・レイアウトが追加されます。
注:
コンテンツ・レイアウト・タイトルでは英数字、ハイフンおよびアンダースコアのみが有効です。選択したフォルダ内に、レイアウト・パッケージ・ファイルがコンテンツ・レイアウト名および.zip
拡張子を使用して作成されます。ファイルを開発環境にダウンロードして編集します。
これらのファイルは、従業員カード・コンテンツ・レイアウトを使用するコンテンツ・アイテムのフィールドのレイアウトを制御します。サイトで使用される場合にカスタム設定のサポートを追加するを有効にした場合は、単一のコンテンツ・アイテムのデフォルト・レンダリングを提供するsettings.htmlという名前の追加ファイルも作成されるため、それを表示できます。
design.css
、layout.html
およびrender.js
ファイルを編集して、必要なコンテンツ・レイアウトを取得します。
たとえば、次のファイルは従業員カード・コンテンツ・レイアウトを指定します:
design.css
ファイルを編集します:
.scs-tile-layout { font-family: 'Helvetica Neue', 'Segoe UI', sans-serif-regular, Helvetica, Arial; font-size: 16px; margin: 0px; padding: 0px; font-style: normal; color: #333; } .scs-tile-layout li { list-style: none; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 200; margin: 0px; } .scs-tile-layout-img-container { height: 150px; width: 100px; float: left; margin: 0em 0.5em 0em 0em; padding: 0px; border-radius: 3px; overflow: hidden; position: relative; } .scs-tile-layout-img { position: absolute; left: -100%; right: -100%; top: -100%; bottom: -100%; margin: auto; height: 100%; min-width: 100%; } .scs-tile-layout p { margin: 0px; }
layout.html
ファイルを編集します:
{{#data.employee_profile_pictureURL}} <div class="scs-tile-layout-img-container"> <img class="scs-tile-layout-img" src="{{data.employee_profile_pictureURL}}" /> </div> {{/data.employee_profile_pictureURL}} <ul class="scs-tile-layout"> <li> <p><b>{{name}}</b></p> </li> <li> </li> <li> <p>{{data.employee_job_title}}</p> <p>{{data.employee_location}}</p> <p><b>Phone: </b>{{data.employee_phone}}</p> </li> {{#scsData.detailPageLink}} <li> <a href="{{scsData.detailPageLink}}" title="Go to detail page"><span class="detail-page">Profile</span></a> </li> {{/scsData.detailPageLink}} </ul>
render.js
ファイルを編集します:
/* globals define */ define([ 'jquery', 'mustache', 'text!./layout.html', 'css!./design.css' ], function($, Mustache, templateHtml, css) { 'use strict'; function ContentLayout(params) { this.contentItemData = params.contentItemData || {}; this.scsData = params.scsData; this.contentClient = params.contentClient || (params.scsData ? params.scsData.contentClient : null); // retrieve the custom settings this.customSettiings = this.scsData.customSettingsData || {}; } ContentLayout.prototype = { render: function(parentObj) { var template, content = $.extend({}, this.contentItemData), contentClient = this.contentClient, contentType, secureContent = false; if (this.scsData) { content = $.extend(content, { 'scsData': this.scsData }); contentType = content.scsData.showPublishedContent === true ? 'published' : 'draft'; secureContent = content.scsData.secureContent; } if (contentClient) { var params = { 'itemGUID': typeof content.data.employee_profile_picture === 'string' ? content.data.employee_profile_picture : content.data.employee_profile_picture.id, 'contentType': contentType, 'secureContent': secureContent }; content.data.employee_profile_pictureURL = contentClient.getRenditionURL(params); } console.log(content); try { // Mustache template = Mustache.render(templateHtml, content); if (template) { $(parentObj).append(template); } } catch (e) { console.error(e.stack); } } }; return ContentLayout; });
render.jsファイルおよびその他のファイルの編集の詳細は、「コンポーネントの開発」を参照してください。
_folder.json
内のコンテンツ・レイアウトのGUIDを変更する必要があります。変更されたコンテンツ・レイアウトは「コンポーネント」にインポートされます。
また、コンテンツ・レイアウトをエクスポートして別のOracle Content Managementインスタンスにコピーまたは移動し、そこでインポートすることもできます。