Utökar ContextHub extending-contexthub

Definiera nya typer av ContextHub-butiker och moduler när de angivna 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.

Den javascript-fil som innehåller koden som skapar och registrerar arkivkandidaten måste inkluderas i en klientbiblioteksmapp. Mappens kategori måste matcha följande mönster:

contexthub.store.[storeType]

Delen storeType i kategorin är den storeType som butikskandidaten är registrerad med. (Se Registrera ett ContextHub Store-förslag). För till exempel storeType för contexthub.mystore må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 funktionen ContextHub.Utils.inheritance.inherit för att utöka en av basbutikerna:

Varje basbutik utökar butiken ContextHub.Store.Core.

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

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 har installerats i databasen nedan /libs/granite/contexthub/components/stores.

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 butikskandidater använder du funktionen registerStoreCandidate i klassen ContextHub.Utils.storeCandidates.

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 är endast en kandidat nödvändig och prioriteten kan anges till 0, men om du är intresserad kan du lära dig mer om mer avancerade registreringar, som gör att en av få butiksimplementeringar 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 som är installerade med ContextHub inte uppfyller dina krav. Om du vill skapa en gränssnittsmodultyp skapar du en gränssnittsmodulrenderare genom att utöka klassen ContextHub.UI.BaseModuleRenderer och sedan registrera den med ContextHub.UI.

Skapa ett Class-objekt som innehåller den logik som återger gränssnittsmodulen om du vill skapa en renderare i användargränssnittsmodulen. Klassen måste minst utföra följande åtgärder:

  • Utöka klassen ContextHub.UI.BaseModuleRenderer. Den här klassen är den grundläggande implementeringen för alla UI-modulrenderare. Objektet Class definierar egenskapen 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 användargränssnittsmodulen contexthub.base och alla 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 återgivaren använder du metoden registerRenderer i klassen ContextHub.UI. 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 användargränssnittsmodulen contexthub.browserinfo. Den här gränssnittsmodulen är ett enkelt tillägg till klassen ContextHub.UI.BaseModuleRenderer.

;(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 klientbiblioteksmapp. Mappens kategori måste matcha följande mönster:

contexthub.module.[moduleType]

Delen [moduleType] i kategorin är den moduleType som modulåtergivaren är registrerad med. För moduleType av contexthub.browserinfo måste till exempel kategorin för klientbiblioteksmappen vara contexthub.module.contexthub.browserinfo.

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab