Tässä vaiheessa tarkistetaan paikalliselle komponentille luotujen oletustiedostojen rakenne.
Neljä JavaScript-objektia ja monta koodiriviä saattaa tuntua liioittelulta yksinkertaisen Hei maailma -esimerkin kohdalla. Sen avulla annetaan kuitenkin perusteet monimutkaisempien komponenttien muodostukseen ja Oracle Cloud Sites Service -sivun elinkaaren kanssa käytävään vuorovaikutukseen.
Paikallisen komponentin rakenteen tarkistus:
Valitse Oracle Content Management -palvelun kotisivulla Kehittäjä.
Kehittäjä-sivu avautuu.
Valitse Näytä kaikki komponentit.
Valitse valikosta Luo paikallinen komponentti.
Anna komponentille nimi kuten, A_Local_Component.
Syötä valinnainen kuvaus.
Valitse Luo.
Kun olet tehnyt tämän, komponenttien listalla näkyy komponentti nimeltä A_Local_Component.
Etsi komponenttisi Oracle Content Management -palvelun työpöydän synkronointisovelluksessa ja synkronoi komponentti tiedostojärjestelmän kanssa.
Jos sinulla ei ole työpöytäohjelmistoa, voit tarkastella kaikkia komponentteja ja valita komponentin Oracle Content Management -liittymän Komponentit-välilehdessä ja siirtyä kansiorakenteessa alaspäin, kunnes näet tiedostot.
Kun avaat komponenttiin kuuluvien tiedostojen listan, näet seuraavat tiedostot :
assets
render.js
settings.html
appinfo.json
_folder_icon.jpgAvaa render.js-tiedosto /assets-hakemistossa.
render.js-tiedoston tärkeimmät ominaisuudet:
Se on jäsennetty JavaScript AMD -moduuliksi, joten sitä voidaan vaatia sivulle.
Se sisältää myös viittaukset KnockoutJS:ään ja JQueryyn, jotka on jo ladattu osaksi Oracle Oracle Content Management -sivua.
Ota huomioon render.js-tiedoston rakenne.
render.js-tiedostoon sisältyy kaksi JavaScript-objektia, jotka toteuttavat vaaditut Oracle Content Management -komponentin API-rajapinnat: sampleComponentFactory ja SampleComponentImpl. Nämä objektit ovat esimerkkejä toteutuksesta, jolla luodaan KnockoutJS-perusteisia komponentteja. Näiden objektien toteutus vaihtelee käytetyn teknologian mukaan.
sampleComponentFactory
render.js-tiedoston AMD-moduuli palauttaa tämän objektin.
Kyseessä on erittäin yksinkertainen tehdasobjekti, joka toteuttaa yksittäisen createComponent()-liittymän.
Monimutkaisemmissa toteutuksissa voidaan käyttää args-arvoa. Se välitetään, jotta voidaan palauttaa komponentin eri toteutuksia viewMode-parametrin perusteella. Sen avulla komponentti voidaan toteuttaa ajonaikaisesti huomattavasti kevyemmin sivustonluontiohjelmaan verrattuna.
SampleComponentImpl
Tämän objektin pääfunktio on render-funktio, jolla komponentti muodostetaan sivulle.
Muodostaessaan Knockout-komponentin sivulle render-funktio lisää mallipohjan dynaamisesti sivulle ja käyttää sittenviewModel-sidoksia mallipohjassa.
Toteutuksen loppuosa koskee viewModel-parametrin ja mallipohjan alustusta sekä sivun ja komponentin välisen viestinnän käsittelyä.
render.js-tiedoston kahden viimeisen objektin(sampleComponentTemplate ja SampleComponentViewModel) avulla komponentille voidaan suorittaa mukautettu toteutus. Niiden toteutus vaihtelee vaatimusten mukaan.
sampleComponentTemplate
Tällä objektilla voidaan luoda KnockoutJS-mallipohja. Se odottaa, kunnes komponentin kaikki tiedot on alustettu, ennen kuin se yrittää näyttää mitään.
SampleComponentViewModel
viewModel hakee Oracle Content Management -palvelun tallentamat tiedot komponentin puolesta ja valitsee sitten komponentille sopivan asettelun kyseisten tietojen perusteella.
Mallipohjassa käytetyt yleiset havaittavat Knockout-parametrit, joilla käsitellään komponentin puolesta tallennettujen metatietojen käyttöä:
self.imageWidth = ko.observable('200px');
self.alignImage = ko.observable();
self.layout = ko.observable();
self.showTopLayout = ko.observable();
self.showStoryLayout = ko.observable();Herättimien ja toimintojen integrointi:
Herätin: funktio, jolla käynnistetään Oracle Content Management -herätin komponentista, joka voidaan sitoa sivun toisten komponenttien toimintoihin.
self.imageClicked = function (data, event) {
self.raiseTrigger("imageClicked"); // matches appinfo.json
};
Toiminto: funktio, jolla käsitellään vastakutsu, kun komponentin käsketään suorittaa toiminto tiettyjä käsiteltyjä tietoja käyttäen.
self.executeActionsListener = function (args) {
// get action and payload
var payload = args.payload,
action = args.action;
// handle 'setImageWidth' actions
if (action && action.actionName === 'setImageWidth') {
$.each(payload, function(index, data) {
if (data.name === 'imageWidth') {
self.imageWidth(data.value);
}
});
}
};
Vastakutsu, jonka avulla voidaan suorittaa mikä tahansa rekisteröity toiminto tarpeen mukaan.
SitesSDK.subscribe(SitesSDK.MESSAGE_TYPES.EXECUTE_ACTION, $.proxy(self.executeActionsListener, self));
Komponentin elinkaaren tilaukset:
Komponentin alustus: varmista, ettei komponentti esitä sisältöä, ennen kuin kaikki tiedot on haettu. Tämä hoidetaan havaittavilla Knockout-parametreilla.
self.componentLayoutInitialized = ko.observable(false); self.customSettingsDataInitialized = ko.observable(false);
Hae kaikkien pakollisten ominaisuuksien alkuarvot. Se tehdään vastakutsuilla, joilla haetaan tiedot.
SitesSDK.getProperty('componentLayout', self.updateComponentLayout);
SitesSDK.getProperty('customSettingsData', self.updateCustomSettingsData);Metatietojen päivitykset: vastakutsu suoritetaan aina, kun komponentin puolesta tallennettuja metatietoja muutetaan, eli esimerkiksi silloin, kun käyttäjä avaa Asetukset-paneelin ja päivittää tiedot.
SitesSDK.subscribe(SitesSDK.MESSAGE_TYPES.SETTINGS_UPDATED, $.proxy(self.updateSettings, self));
Huomautus::
Koska Oracle Content Management -palvelin asettaa aina Mime-tyypin.html-tiedostoille, et voi ladata .html-tiedostoa ja käyttää pakollista "text!"-pyyntöliitännäistä sen lataamiseen. Sen vuoksi mallipohjissa on käytettävä eri laajennusta tiedoston lataamiseen "text!"-liitännäistä käyttäen. Voit myös ladata sen rivinsisäisesti JavaScriptissä, kuten valmiiksi määritetyissä tiedoissa on näytetty.Tarkista vaiheen 2 tulokset
Nyt sinulla pitäisi olla yleiskuva siitä, miten mukautetun komponentin muodostusohjelman rakenne luodaan. Näin voit tarkistaa, toimiiko kaikki kunnolla:
Päivitä sampleComponentTemplate-objekti render.js-tiedostossa, jotta voit muuttaa seuraavaa riviä. Vaihda tämä koodi:
'<!-- ko if: initialized -->'+
Käytä sen sijaan tätä koodia:
'<!-- ko if: initialized -->'+ '<div data-bind="text:\'image width is: \' + imageWidth()"></div>' +
Synkronoi tai lataa komponentti Oracle Content Management -instanssin palvelimeen.
Muokkaa sivustossa olevaa sivua ja pudota mukautettu A_Local_Component-komponentti sivulle.
Tässä vaiheessa komponentissa pitäisi näkyä image width is: 260px.
Avaa Asetukset-paneeli ja napsauta Mukautetut asetukset -painiketta.
Muuta Kuvan leveys kentän arvoksi 300px.
Oletuskuvan koko kasvaa 260 pikselistä 300 pikseliin.
Lisäämäsi teksti päivittyy muotoon image width is 300px.
Jatka kohtaan Vaihe 3: paikallisten komponenttiasetusten rakenteen tarkistus.