ContextHub uitbreiden extending-contexthub

Bepaal nieuwe types van opslag ContextHub en modules wanneer de verstrekte niet aan uw oplossingsvereisten voldoen.

Aangepaste winkelkandidaten maken creating-custom-store-candidates

ContextHub-winkels worden gemaakt van geregistreerde winkelkandidaten. Als u een aangepast archief wilt maken, moet u een winkelkandidaat maken en registreren.

Het javascript- dossier dat de code omvat die tot en registreert de opslagkandidaat in de omslag van de a cliëntbibliotheekmoet worden omvat. De categorie van de map moet overeenkomen met het volgende patroon:

contexthub.store.[storeType]

Het storeType -gedeelte van de categorie is de storeType waarmee de winkelkandidaat is geregistreerd. (Zie registrerend een Kandidaat van de Winkel ContextHub). Voor het storeType van contexthub.mystore moet de categorie van de clientbibliotheekmap bijvoorbeeld contexthub.store.contexthub.mystore zijn.

Een ContextHub Store-kandidaat maken creating-a-contexthub-store-candidate

Als u een winkelkandidaat wilt maken, gebruikt u de functie ContextHub.Utils.inheritance.inherit om een van de basiswinkels uit te breiden:

Elke basisopslag breidt de ContextHub.Store.Core store uit.

In het volgende voorbeeld wordt de eenvoudigste extensie van de opslagkandidaat van ContextHub.Store.PersistedStore gemaakt:

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

Realistisch, zullen uw kandidaten van de douaneopslag extra functies bepalen of zullen de aanvankelijke configuratie van de opslag met voeten treden. Verscheidene de kandidaten van de steekproefopslagzijn geïnstalleerd in de bewaarplaats hieronder /libs/granite/contexthub/components/stores.

Registreren van een ContextHub Store-kandidaat registering-a-contexthub-store-candidate

Registreer een opslagkandidaat om het met het kader te integreren ContextHub en opslag toe te laten om van het worden gecreeerd. Gebruik de functie registerStoreCandidate van de ContextHub.Utils.storeCandidates -klasse om een winkelkandidaat te registreren.

Wanneer u een opslagkandidaat registreert, geeft u een naam voor het type winkel op. Wanneer het creëren van een opslag van de kandidaat, gebruikt u het opslagtype om de kandidaat te identificeren waarop het is gebaseerd.

Wanneer u een winkelkandidaat registreert, geeft u de prioriteit aan. Wanneer een opslagkandidaat wordt geregistreerd gebruikend het zelfde archieftype zoals een reeds-geregistreerde opslagkandidaat, wordt de kandidaat met de hogere prioriteit gebruikt. Daarom kunt u bestaande opslagkandidaten met nieuwe implementaties met voeten treden.

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

In de meeste gevallen is slechts één kandidaat noodzakelijk en de prioriteit kan aan 0 worden geplaatst, maar als u geinteresseerd bent kunt u over meer geavanceerde registraties leren,die één van weinige opslagimplementaties toestaat om op voorwaarde javascript (applies) en kandidaatprioriteit worden gekozen.

ContextHub UI-moduletypen maken creating-contexthub-ui-module-types

Creeer de moduletypes van douane UI wanneer degenen die met ContextHubworden geïnstalleerd niet aan uw vereisten voldoen. Als u een type UI-module wilt maken, maakt u een renderer voor een UI-module door de klasse ContextHub.UI.BaseModuleRenderer uit te breiden en deze vervolgens te registreren bij ContextHub.UI .

Als u een renderer voor een UI-module wilt maken, maakt u een Class -object dat de logica bevat die de UI-module rendert. De klasse moet minimaal de volgende handelingen uitvoeren:

  • Breid de ContextHub.UI.BaseModuleRenderer -klasse uit. Deze klasse is de basisimplementatie voor alle UI modulerenderers. Het object Class definieert een eigenschap met de naam extend die u gebruikt om deze klasse een naam te geven als de klasse die wordt uitgebreid.
  • Geef een standaardconfiguratie op. Maak een eigenschap defaultConfig . Deze eigenschap is een object dat de eigenschappen bevat die zijn gedefinieerd voor de module contexthub.base UI en andere eigenschappen die u nodig hebt.

De bron voor ContextHub.UI.BaseModuleRenderer bevindt zich in /libs/granite/contexthub/code/ui/container/js/ContextHub.UI.BaseModuleRenderer.js . Gebruik de methode registerRenderer van de ContextHub.UI -klasse om de renderer te registreren. U moet een naam voor het moduletype verstrekken. Wanneer beheerders een UI-module maken op basis van deze renderer, geven ze deze naam op.

Maak en registreer de rendererklasse in een automatisch uitgevoerde anonieme functie. Het volgende voorbeeld is gebaseerd op de broncode voor de contexthub.browserinfo UI module. Deze UI-module is een eenvoudige uitbreiding van de klasse 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());

}());

Het javascript- dossier dat de code omvat die tot renderer leidt en registreert moet in de omslag van de a cliëntbibliotheekworden omvat. De categorie van de map moet overeenkomen met het volgende patroon:

contexthub.module.[moduleType]

Het [moduleType] -gedeelte van de categorie is de moduleType waarmee de modulerenderer is geregistreerd. Voor moduleType of contexthub.browserinfo moet de categorie van de clientbibliotheekmap bijvoorbeeld contexthub.module.contexthub.browserinfo zijn.

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