Oracle Content Management -komponenttien toteutuksessa käytetään KnockoutJS-komponenttiarkkitehtuuria. Tämä tarkoittaa sitä, että jos toteutat komponentit KnockoutJS:n avulla, voit lisätä Oracle Content Management -palvelun valmiita komponentteja suoraan mallipohjaan.
Huomautus::
Koska Oracle Content Management -palvelun valmiita komponentteja voidaan käyttää vain Oracle Content Management -sivulla, et voi käyttää sisäkkäisiä komponentteja, jos komponenttisi on muodostettu sisäisessä kehyksessä.Sisäkkäisten komponenttien hyödyntäminen:
Toteuta komponenttisi KnockoutJS:n avulla.
Lisää komponenttisi RequireJS:n avulla ja käytä samaa Knockout-instanssin muuttujaa "ko"
, joka on luotu Oracle Content Management -palvelussa.
Tämä on tarpeen, koska Oracle Content Management laajentaa Knockoutia komponenteilla, eivätkä kyseiset komponentit ole käytettävissä, jos käytät omaa KnockoutJS-instanssia.
Tässä vaiheessa kerrotaan, kuinka Oracle Content Management -palvelun kuva-, kappale- ja otsikkokomponentit muodostetaan mukautetussa komponentissasi. Käyttäjä voit muokata niitä suoraan sivulla ja käyttää sisäkkäisen komponentin Asetukset-paneelia.
Jos haluat nähdä, kuinka kyseiset komponentit lisätään mallipohjaasi, muokkaa render.js
-tiedostoa ja katso sampleComponentTemplate
-objektia. Tässä näkyy muodostettava oletusosa:
'<!-- ko if: alignImage() !== \'right\' -->' + '<div style="display:flex;">' + '<div data-bind="attr: {style: imageStyle, \'data-layout\': alignImage()}, click: imageClicked">' + '<scs-image params="{ scsComponent: { \'renderMode\': mode, \'parentId\': id, \'id\': \'imageId\', \'data\': imageData } }"></scs-image>' + '</div>' + '<div data-bind="attr: {style: paragraphStyle}">' + '<scs-title params="{ scsComponent: { \'renderMode\': mode, \'parentId\': id, \'id\': \'titleId\', \'data\': titleData } }"></scs-title>' + '<scs-paragraph params="{ scsComponent: { \'renderMode\': mode, \'parentId\': id, \'id\': \'paragraphId\', \'data\': paragraphData } }"></scs-paragraph>' + '</div>' + '</div>' + '<!-- /ko -->' +
Kun tarkastelet sisäkkäistä komponenttia <scs-image>
, näet seuraavan merkinnän:
'<scs-image params="{ scsComponent: { \'renderMode\': mode, \'parentId\': id, \'id\': \'imageId\', \'data\': imageData }}"></scs-image>' +
params
-mallipohjan sidokselle välitetyt scsComponent
-tiedot sisältävät seuraavaa:
renderMode
: Tämä viittaa tilaan, jossa sivustonluontiohjelma on. Tämän avulla voit ottaa ominaisuuksia käyttöön ja poistaa niitä käytöstä. Jos tätä käytetään esimerkiksi <scs-title>
-komponentissa, se lisää Rich Text -editorin edit
-tilassa ollessaan.
parentId
: Tämä vaaditaan, jotta Oracle Content Management -komponentti tietää, että sitä ollaan muodostamassa sisäkkäisenä komponenttina. Kaikki sisäkkäisen komponentin muutokset tallennetaan mukautetun komponentin tietoihin.
id
: Sisäkkäisen komponentin yksilöivä tunnus. Nimialueeseen lisätään myös mukautetun komponentin tunnus.
data
: Sisäkkäisen komponentin alkutiedot. Jos komponenttia ei muokata enempää, se muodostetaan näitä alkutietoja käyttäen.
Viitatut arvot id
ja mode
välitetään mukautettuun komponenttiin SampleComponentViewModel
-objektissa, joten sinun ei tarvitse muokata objektia näiden arvojen hakemiseksi:
// Store the args self.mode = args.viewMode; self.id = args.id;
Kaikkien muiden tuettujen sisäkkäisten komponenttien syntaksi noudattaa samaa kaavaa kuin <scs-paragraph>
-komponentti. Esimerkkejä: <scs-image>, <scs-title>, <scs-button>
.
Tarkista vaiheen 10 tulokset
Päivitä sivustossasi oleva sivu, jotta sivustonluontiohjelma voi poimia komponenttiin tehdyt muutokset.
Aseta sivu muokkaustilaan.
Vedä ja pudota komponentti sivulle.
Napsauta tekstiä As a page author, you can edit. . .
komponentissasi ja päivitä kuvaus Rich Text -editoria käyttäen.
Siirry esikatselutilaan ja käy katsomassa tekemäsi päivitys.
Vaihda takaisin muokkaustilaan.
Avaa komponentin Asetukset-paneeli.
Napsauta Komponentit-linkkiä, joka tulee nyt näkyviin, koska se löysi sisäkkäisen komponenttisi.
Napsauta Kappale-komponenttia, joka on löydetty sisäkkäinen komponentti.
Nyt voit päivittää komponenttisi ominaisuudet Kappale-komponentin perusteella.
Huomautus::
Ennen kuin komponentti on luotu, Oracle Content Management ei tiedä mitään mahdollisista sisäkkäisistä komponenteista, joita mallipohjassa saattaa olla. Voit kertoa Oracle Content Management -sovellukselle piilotetuista sisäkkäisistä komponenteista käyttämällä API-rajapintaaSitesSDK.setProperty('visibleNestedComponents', []);
. Jos haluat piilotettujen komponenttien näkyvän oletusarvoisesti, sinun on päivitettävä "nestedComponents": []
-taulukko komponentin rekisteröinnissä.Jatka kohtaan Vaihe 11: eri asettelujen tuki.