Utökar ContextHub extending-contexthub

CAUTION
AEM 6.4 har nått slutet på den utökade supporten och denna dokumentation är inte längre uppdaterad. Mer information finns i teknisk supportperiod. Hitta de versioner som stöds här.

Definiera nya typer av ContextHub-butiker och moduler när de angivna lagren inte uppfyller dina lösningskrav.

Skapa anpassade butikskandidater creating-custom-store-candidates

ContextHub-butiker skapas från registrerade butikskandidater. Om du vill skapa en anpassad butik måste du skapa och registrera en butikskandidater.

JavaScript-filen som innehåller koden som skapar och registrerar butikskandidaten måste inkluderas i en biblioteksmapp för klient. Mappens kategori måste matcha följande mönster:

contexthub.store.[storeType]

The [storeType] en del av kategorin är storeType som butikskandidaten registreras med. (Se Registrerar en ContextHub Store-kandidat). Till exempel för storeType för contexthub.mystoremåste kategorin för klientbiblioteksmappen vara contexthub.store.contexthub.mystore.

Skapa en ContextHub Store-kandidat creating-a-contexthub-store-candidate

Om du vill skapa en butikskandidat använder du ContextHub.Utils.inheritance.inherit för att utöka en av basbutikerna:

Observera att varje basbutik utökar ContextHub.Store.Core butik.

I följande exempel skapas det enklaste tillägget för ContextHub.Store.PersistedStore butikskandidat:

myStoreCandidate = function(){};
ContextHub.Utils.inheritance.inherit(myStoreCandidate,ContextHub.Store.PersistedStore);

I realiteten definierar dina anpassade butikskandidater ytterligare funktioner eller åsidosätter butikens ursprungliga konfiguration. Flera exempel på arkivkandidater installeras i databasen nedan /libs/granite/contexthub/components/stores. Använd CRXDE Lite för att öppna javascript-filerna om du vill lära dig av dessa exempel.

Registrerar en ContextHub Store-kandidat registering-a-contexthub-store-candidate

Registrera en butikskandidat för att integrera den med ContextHub-ramverket så att butiker kan skapas utifrån det. Om du vill registrera en butikskandidat använder du registerStoreCandidate funktionen i ContextHub.Utils.storeCandidates klassen.

När du registrerar en butikskandidat anger du ett namn för butikstypen. När du skapar en butik från kandidaten använder du butikstypen för att identifiera den kandidat som den baseras på.

När du registrerar en butikskandidat anger du dess prioritet. När en butikskandidat registreras med samma butikstyp som en redan registrerad butikskandidat, används den som har den högre prioriteten. Därför kan du åsidosätta befintliga butikskandidater med nya implementeringar.

ContextHub.Utils.storeCandidates.registerStoreCandidate(myStoreCandidate,
                                'contexthub.mystorecandidate', 0);

I de flesta fall behövs bara en kandidat och prioriteten kan anges till 0, men om du är intresserad kan du läsa mer om mer avancerade registreringar, vilket gör att en av få butiksimplementationer kan väljas baserat på javascript-villkor (applies) och kandidatprioritet.

Skapar gränssnittsmodultyper för ContextHub creating-contexthub-ui-module-types

Skapa anpassade gränssnittsmodultyper när de installerat med ContextHub uppfyller inte dina krav. Om du vill skapa en gränssnittsmodultyp skapar du en ny gränssnittsmodulrenderare genom att utöka ContextHub.UI.BaseModuleRenderer och sedan registrera den med ContextHub.UI.

Skapa en användargränssnittsåtergivning moduler en Class -objekt som innehåller den logik som återger UI-modulen. Klassen måste minst utföra följande åtgärder:

  • Utöka ContextHub.UI.BaseModuleRenderer klassen. Den här klassen är den grundläggande implementeringen för alla UI-modulrenderare. The Class objektet definierar en egenskap med namnet extend som du använder för att namnge den här klassen som den som utökas.

  • Ange en standardkonfiguration. Skapa en defaultConfig -egenskap. Den här egenskapen är ett objekt som innehåller de egenskaper som har definierats för contexthub.base UI-modulen och andra egenskaper som du behöver.

Källan för ContextHub.UI.BaseModuleRenderer finns på /libs/granite/contexthub/code/ui/container/js/ContextHub.UI.BaseModuleRenderer.js. Om du vill registrera renderaren använder du registerRenderer metoden ContextHub.UI klassen. Du måste ange ett namn för modultypen. När administratörer skapar en gränssnittsmodul som baseras på den här renderaren anger de det här namnet.

Skapa och registrera återgivningsklassen i en anonym funktion som körs automatiskt. Följande exempel baseras på källkoden för gränssnittsmodulen contexthub.browserinfo. Den här gränssnittsmodulen är ett enkelt tillägg till ContextHub.UI.BaseModuleRenderer klassen.

;(function() {

    var SurferinfoRenderer = new Class({
        extend: ContextHub.UI.BaseModuleRenderer,

        defaultConfig: {
            icon: 'coral-Icon--globe',
            title: 'Browser/OS Information',

            storeMapping: {
                surferinfo: 'surferinfo'
            },

            template:
                '<p>{{surferinfo.browser.family}} {{surferinfo.browser.version}}</p>' +
                '<p>{{surferinfo.os.name}} {{surferinfo.os.version}}</p>'
        }
    });

    ContextHub.UI.registerRenderer('contexthub.browserinfo', new SurferinfoRenderer());

}());

JavaScript-filen som innehåller koden som skapar och registrerar återgivaren måste inkluderas i en biblioteksmapp för klient. Mappens kategori måste matcha följande mönster:

contexthub.module.[moduleType]

The [moduleType] en del av kategorin är moduleType som modulåtergivaren registreras med. För moduleType av contexthub.browserinfomåste kategorin för klientbiblioteksmappen vara contexthub.module.contexthub.browserinfo.

recommendation-more-help
2315f3f5-cb4a-4530-9999-30c8319c520e