HTML bileşeninizde tanımladığınız tüm veri öğeleri için alanlar sağlayan bir Özel Ayarlar paneli ekleyebilirsiniz. Daha sonra bir kullanıcı Özel Ayarlar panelindeki sayfada bileşen anının değerlerini doldurabilir.
render.html dosyanızda HTML şablonunu güncelleyin. Aşağıdaki örnek Mustache JS şablon oluşturma dilini kullanır, yani veri öğeleri şu şekilde {{ ve }} sözdizimi kullanılarak eklenmelidir:
<ul class="wrapper">
<li class="box">
<h1 class="title">{{title1}}</h1>
<p class="text">{{text1}}</p>
</li>
<li class="box">
<h1 class="title">{{title2}}</h1>
<p class="text">{{text2}}</p>
</li>
<li class="box">
<h1 class="title">{{title3}}</h1>
<p class="text">{{text3}}</p>
</li>
<li class="box">
<h1 class="title">{{title4}}</h1>
<p class="text">{{text4}}</p>
</li>
</ul>appinfo.json dosyasının içeriğini değiştirerek aşağıdaki veri alanları için öndeğerleri sağlayın:
{
"id": "html-component-id",
"settingsData": {
"settingsHeight":600,
"settingsWidth": 300,
"settingsRenderOption": "dialog",
"componentLayouts": [],
"triggers": [],
"actions": []
},
"initialData": {
"styleClassName": "html-component",
"customSettingsData": {
"title1":"One",
"title2":"Two",
"title3":"Three",
"title4":"Four",
"text1":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"text2":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"text3":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
"text4":"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
},
"nestedComponents": []
}
}render.html dosyanızdaki değerleri arayan bir Özel Ayarlar paneli ekleyin. settings.html dosyasının içeriğini şu satırlarla değiştirin:
<!DOCTYPE html>
<html lang="en">
<head>
<!-- only allow embedding of this iFrame in SCS -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>H1 Mustache Component</title>
<!-- include sample apps styling -->
<link href="/_sitescloud/renderer/app/sdk/css/app-styles.css" rel="stylesheet">
<!-- include supporting files -->
<script type="text/javascript" src="/_sitescloud/renderer/app/apps/js/knockout.min.js"></script>
<script type="text/javascript" src="/_sitescloud/renderer/app/apps/js/jquery.min.js"></script>
<!-- include the Sites SDK -->
<script type="text/javascript" src="/_sitescloud/renderer/app/sdk/js/sites.min.js"></script>
</head>
<body data-bind="visible: true" style="display:none; margin:0px; padding:0px;background:transparent;background-
image:none;">
<!-- ko if: initialized() -->
<div class="scs-component-settings">
<div>
<!-- Width -->
<label id="headingTextLabel" for="headingText" class="settings-heading" data-bind="text:
'Heading Text'"></label>
<input id="headingText" data-bind="value: headingText" placeholder="Heading" class="settings-
text-box">
</div>
</div>
<div data-bind="setSettingsHeight: true"></div>
<!-- /ko -->
<!-- ko ifnot: initialized() -->
<div data-bind="text: 'waiting for initialization to complete'"></div>
<!-- /ko -->
<script type="text/javascript">
// set the iFrame height when we've fully rendered
ko.bindingHandlers.scsCompComponentImpl = {
init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
var body = document.body,
html = document.documentElement;
SitesSDK.setHeight(Math.max(
body.scrollHeight,
body.offsetHeight,
html.clientHeight,
html.scrollHeight,
html.offsetHeight));
}
};
// define the viewModel object
var SettingsViewModel = function () {
var self = this;
// create the observables for passing data
self.headingText = ko.observable('Heading 1');
// create rest of viewModel
self.initialized = ko.observable(false);
self.saveData = false;
// Get custom settings
SitesSDK.getProperty('customSettingsData', function (data) {
//update observable
self.headingText(data.headingText);
// note that viewModel is initialized and can start saving data
self.initialized(true);
self.saveData = true;
});
// save whenever any updates occur
self.save = ko.computed(function () {
var saveconfig = {
'headingText': self.headingText()
};
// save data in page
if (self.saveData) {
SitesSDK.setProperty('customSettingsData', saveconfig);
}
}, self);
};
// apply the bindings
ko.applyBindings(new SettingsViewModel());
</script>
</body>
Not:
appinfo.json dosyasını değiştirdiğinizden, değişiklikleri almak için tarayıcıyı yenilemeli ve bileşeninizi bir sayfaya yeniden eklemelisiniz.Bileşeninizin appinfo.json dosyasından veri öndeğerini alacağını ve Özel Ayarlar panelindeki değerleri değiştirebildiğinizi doğrulamak için (Denetim Noktası 2):
appinfo.json dosyasını değiştirdikten sonra, değişiklikleri almak için tarayıcıyı yenilemeyi ve bileşeninizi bir sayfaya yeniden eklemeyi unutmayın.
HTML Bileşeninde Özel Ayarlar panelini açın ve veri girin.

Oracle Content Management bileşeninizin, içeriğini Özel Ayarlar paneline girdiğiniz verilere göre görüntülemek için Mustache JS ile HTML ve CSS kullandığını doğrulayın.