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.jpg
Avaa 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.