사이트 페이지에 표시될 때 콘텐츠 항목의 필드를 배치하기 위한 콘텐츠 레이아웃을 생성합니다. 콘텐츠 항목을 페이지에 추가할 때 선택한 콘텐츠 레이아웃을 사용합니다.
엔터프라이즈 사용자는 개발자가 제공한 콘텐츠 유형 및 레이아웃을 기반으로 콘텐츠 항목을 생성하고 사용할 수 있습니다. 기본 레이아웃에서 새 콘텐츠 레이아웃을 생성할 수 있습니다. 콘텐츠 유형과 연관된 여러 콘텐츠 레이아웃을 사용하면 사이트 디자이너가 콘텐츠를 변경하지 않고도 콘텐츠 항목을 다양한 컨텍스트로 표시할 수 있습니다.
콘텐츠 목록 구성요소에서 콘텐츠 레이아웃을 사용할 경우 콘텐츠 항목당 한번씩 콘텐츠 레이아웃이 반복됩니다. 그러면 콘텐츠 레이아웃은 섹션 레이아웃에 따라 배열됩니다.
콘텐츠 레이아웃을 익스포트하고 오프라인에서 수정한 후 임포트하여 기존 콘텐츠 레이아웃을 바꿀 수 있습니다.
콘텐츠 레이아웃을 생성하려면 다음과 같이 하십시오.
콘텐츠 레이아웃이 구성요소에 추가됩니다.
주:
영숫자, 하이픈 및 밑줄만 콘텐츠 레이아웃 제목에 적합합니다.레이아웃 패키지 파일이 콘텐츠 레이아웃 이름에 .zip
확장자가 붙은 형태로 선택한 폴더에 생성됩니다. 개발 환경으로 파일을 다운로드하여 파일을 편집합니다.
이 파일은 Employee-Card 콘텐츠 레이아웃을 사용하는 콘텐츠 항목의 필드 레이아웃을 제어합니다. 사이트에서 사용하는 경우 사용자정의 설정에 대한 지원 추가를 사용으로 설정한 경우, 단일 콘텐츠 항목의 기본 렌더링을 표시할 수 있도록 제공하는 settings.html이라는 추가 파일도 생성됩니다.
design.css
, layout.html
및 render.js
파일을 편집하여 원하는 콘텐츠 레이아웃을 얻습니다.
예를 들어, 다음 파일은 Employee-Card 콘텐츠 레이아웃을 지정합니다.
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 인스턴스로 복사/이동하고 거기서 임포트할 수도 있습니다.