Ez a lépés az összetevők által használt forrásanyagok kezelését ismerteti.
A forrásanyagok olyan összetevőket és egyéni összetevőket tartalmaznak, amelyeket az Oracle Content Management szolgáltatásnak ismernie kell a forrásanyagok életciklusának kezeléséhez.
Az Oracle Content Management content mappája
Az Oracle Content Management szolgáltatásban létrehozott minden webhelyhez tartozik egy saját content
mappa. Ez rejtett mappa, amelyet a felhasználó nem lát. A webhely közzétételekor a content
mappában lévő összes fájlt is közzéteszi a rendszer a fájlrendszerben.
Például amikor a kép összetevő használatával kijelöl egy képet, az Oracle Content Management elkészíti a kijelölt kép másolatát, és elhelyezi azt a content mappában. URL-címe mindig a kép másolt változatára mutat, így az eredeti kép törlése nem érinti a webhely működését. Ez érvényes az Oracle Content Management többi összetevőjére is: galéria, galériarács, dokumentum, közösségi sáv, fájlletöltés, valamint a rekeszek és a componentGroup objektumok háttérképeire.
Ha egy egyéni összetevő részt kíván venni a forrásanyag életciklusában, az egyéni összetevőnek be kell jelentenie az Oracle Content Management szolgáltatásnak minden olyan forrásanyagot, amelynek kezelését a szolgáltatásra kívánja bízni. Mivel ez a forrásanyag másolatának elkészítésével jár, az egyéni összetevőnek is az Oracle Content Management API felületeit kell használnia a forrásanyag kijelöléséhez, hogy a rendszer ismerje kezelésének módját.
URL-címek kezelése
A forrásanyagra mutató URL-cím számos feltételtől függően változik.
Az összetevőre mutató futásidejű URL-cím eltér az összetevőre mutató Site Builder szerkesztőbeli URL-címtől
Ha oldalt másol, az Oracle Content Management is elkészíti a content mappában lévő összes hivatkozott forrásanyag másolatát, így sohasem lesz két olyan összetevő, amely a content mappában lévő ugyanazon forrásanyagra mutat
Egy componentGroup oldalra való húzása új másolatokat készít az ebben lévő összetevők által hivatkozott minden forrásanyagról
Bár a relatív URL-cím megfelelő lehet a helyi összetevőknél, a távoli összetevők esetében teljesen megadott URL-cím szükséges minden olyan forrásanyagnál, amelynek kezelését az Oracle Content Management szolgáltatásra kívánja bízni, hogy a teljes URL-címmel meg tudják jeleníteni beágyazott keretük tartalmát.
Mivel nem számíthat arra, hogy az URL-cím statikus marad, csak a forrásanyag kódban lévő azonosítójára mutató hivatkozásokat kell megtartania, és le kell kérnie a forrásanyag URL-címét, amikor meg kívánja jeleníteni a forrásanyagot.
Forrásanyagok kezelése
A forrásanyagok kezeléséhez a következő Sites SDK API felületek állnak rendelkezésre.
SitesSDK.getProperty('componentAssets', callback);
Ez az aktuális forrásanyagok tömbjét olvassa be
Minden forrásanyag-bejegyzés a következőket tartalmazza:
id: a forrásanyag egyedi azonosítója.
title: az Oracle Content Management cím metaadata.
description: az Oracle Content Management leírás metaadata.
fileName: a kijelölt fájl eredeti neve. Egyéni összetevőjénél a Beállítások panelen való megjelenítésnél hasznos, így a felhasználók tudni fogják, hogy melyik fájlt jelölték ki. Ez nem a content mappába másolt fájl neve.
source: a forrásanyagra mutató makróbarát URL-cím. Ez az érték idővel változni fog, és összetevőjének nem szabad hivatkoznia erre, de a forrásanyag részeként menteni kell.
url: a forrásanyagra mutató teljesen megadott URL-cím a getPropert()
hívási környezete alapján.
SitesSDK.setProperty('componentAssets', [assets]);
Ennek hívásával mentheti az összes olyan forrásanyagot, amelynek kezelését az Oracle Content Management szolgáltatásra kívánja bízni.
Ha nem hívja a felületet, nem ment forrásanyagot a rendszer.
Az ebben a tömbben nem szereplő forrásanyagok törölve lesznek a webhely közzétételekor.
Az assets
paraméter forrásanyagok tömbje a getProperty
által visszaadott formátumban, és ezt adja vissza a filePicker
is.
Megjegyzés:
Azurl
értékét nem tárolja a rendszer. Ezt dinamikusan hozza létre a forrásanyagok lekérésekor.SitesSDK.filePicker(options, callback);
API felület a fájlválasztó megnyitásához a forrásanyagok listájának kijelöléséhez.
Forrásanyagok sikeres kijelölésekor a callback hívása a kijelölt forrásanyagok tömbjének átadásához.
Ekkor semmit sem ment a rendszer, és az összetevőtől függ a setProperty('componentAssets', [assets]);
hívása a kijelölésből elemek mentéséhez más menteni kívánt forrásanyagokkal egyesítve.
Példa forrásanyag kijelölésére
Ebben a szakaszban a következő műveleteket ismerheti meg: forrásanyagok kijelölés, azonosítójuk tárolása és a tényleges értékek újbóli behívása a tárolt forrásanyagokból.
Szerkessze a settings.html
fájlt.
Módosítsa a sablon objektumot egy Image selection
szakasz felvételével.
<div> <!-- Image selection --> <label id="imageLabel" for="imageAsset" class="settings-heading" data-bind="text: 'Image'"></label> <input id="imageAsset" data-bind="value: imageName" readonly class="settings-text-box"> <button id="imageSelect" type="button" class="selectbutton" data-bind="click: showFilePicker">Select Image</button> </div>
Módosítsa a viewModel objektumot egy observable (megfigyelhető) elem hozzáadásával a kijelölt forrásanyag azonosítójának tárolásához.
self.imageID = ko.observable();
Módosítsa a viewModel objektumot a forrásanyag kijelölésének kezeléséhez a fájlválasztó megnyitásával és a kijelölt forrásanyag nevének megjelenítésével.
// // handle component assets // self.assets = [] // bring up a file picker to select the assets self.showFilePicker = function () { // select an image SitesSDK.filePicker({ 'multiSelect': false, 'supportedFileExtensions': ['jpg', 'png'] }, function (result) { if (result.length === 1) { // update the array of assets self.assets = result; // update the image in customSettingsData self.imageID(result[0].id); } }); }; // update the display name based on the assets self.imageName = ko.computed(function () { var imageName = '', imageID = self.imageID(); for (var i = 0; i < self.assets.length; i++) { if (self.assets[i].id === imageID) { imageName = self.assets[i].fileName; break; } } return imageName }, self);
Módosítsa a viewModel objektumot úgy, hogy a customSettingsData
beolvasása előtt kérje le a forrásanyagokat. Ez a kód egyúttal a self.imageName
hívását eredményezi, amikor a self.ImageID()
observable elem megváltozik.
SitesSDK.getProperty('componentAssets', function (assets) { self.assets = assets; SitesSDK.getProperty('customSettingsData', function (data) { //update observable self.imageWidth(data.imageWidth); self.imageID(data.imageID); self.titleText(data.titleText); self.userText(data.userText); // note that viewModel is initialized and can start saving data self.initialized(true); self.saveData = true; }); });
Végül módosítsa a save
függvényt úgy, hogy mentse az imageID
azonosítót, és a hivatkozott forrásanyagok listájával frissítse a componentAssets
paramétert.
self.save = ko.computed(function () { var saveconfig = { 'imageWidth': isNaN(self.imageWidth()) ? self.imageWidth() : self.imageWidth() + 'px', 'imageID': self.imageID(), 'titleText': self.titleText(), 'userText': self.userText() }; // store the selected asset and update custom settings if (self.saveData) { SitesSDK.setProperty('componentAssets', self.assets); SitesSDK.setProperty('customSettingsData', saveconfig); } }, self);
A forrásanyag kijelölése eredményeinek ellenőrzése
Frissítse az oldalt webhelyén, így a Site Builder át tudja venni az összetevő módosításait.
Jelenítse meg az oldalt szerkesztési módban.
Húzza át összetevőjét az oldalra.
Nyissa meg a Beállítások panelt.
Kattintson a Select image gombra.
Tallózás (vagy feltöltés) után jelöljön ki egy képet.
Figyelje meg, hogy a kép neve tárolva van a kijelölt kép megjelenítésénél.
Zárja be a Beállítások panelt.
Nyissa meg újra a Beállítások panelt.
Figyelje meg, hogy a kép neve ismét megfelelő.
Példa forrásanyag megjelenítésére
Ebben a szakaszban a következő műveleteket ismerheti meg: összetevők lekérése és megjelenítésük az összetevőben, az összetevő dinamikus frissítése, amikor az értékek megváltoznak a beállítási panelen.
Megjegyzés:
Bár itt az oldalon beágyazott keretben lévő helyi összetevőre vonatkozó példa látható, de hasonló kód működőképes lesz az oldalra beágyazva megjelenített összetevőknél is.Szerkessze a render.html
fájlt.
Módosítsa a sablont forrásanyag felvételével:
<!-- ko if: imageURL --> <div style="flex-shrink:0;"> <img data-bind="attr: {style: imageStyle, id: 'imageId', src: imageURL, alt: '', title: ''}, click: imageClicked" /> </div> <!-- /ko -->
A viewModel objektumban hozzon létre két observable elemet a imageID
beolvasásához a customSetttingsData
adataiból és a forrásanyagok tárolt listájából lekért imageURL
tárolásához.
self.imageID = ko.observable(); self.imageURL = ko.observable();
Módosítsa a viewModel objektumot úgy, hogy amikor az imageID
megváltozik, beolvassa a megfelelő kép forrásanyag URL-címét.
self.imageID.subscribe(function (imageID) { // whenever the image changes get the updated referenced asset SitesSDK.getProperty('componentAssets', function (assets) { for (var i = 0; i < assets.length; i++) { if (assets[i].id === imageID) { self.imageURL(assets[i].url); break; } } }); });
Módosítsa a viewModel objektumot úgy, hogy lekérje az azonosítót a customSettingsData
adataiból.
A forrásanyag megjelenítése eredményeinek ellenőrzése
Frissítse az oldalt webhelyén, így a Site Builder át tudja venni az összetevő módosításait.
Jelenítse meg az oldalt szerkesztési módban.
Húzza át összetevőjét az oldalra.
Nyissa meg a Beállítások panelt.
Kattintson a Select image gombra.
Tallózás (vagy feltöltés) után jelöljön ki egy képet.
Figyelje meg, hogy a kép neve tárolva van a kijelölt kép megjelenítésénél.
Zárja be a Beállítások panelt.
Ekkor az összetevőben megjelenítve kell látnia a kijelölt képet.
A következő témakör: Az oktatóanyag áttekintése.