Estensione di ContextHub

Ultimo aggiornamento: 2023-07-21

Definisci nuovi tipi di store e moduli ContextHub quando quelli forniti non soddisfano i requisiti della soluzione.

Creazione di candidati per store personalizzati

Gli store ContextHub vengono creati dai candidati di store registrati. Per creare un archivio personalizzato, crea e registra un candidato per lo store.

Il file JavaScript che include il codice che crea e registra il candidato per l’archivio deve essere incluso in un cartella della libreria client. La categoria della cartella deve corrispondere al seguente pattern:

contexthub.store.[storeType]

Il [storeType] parte della categoria è il storeType con cui è registrato il candidato del punto vendita. (vedere Registrazione di un candidato per l’archivio ContextHub). Ad esempio, per storeType di contexthub.mystore, la categoria della cartella della libreria client deve essere contexthub.store.contexthub.mystore.

Creazione di un candidato per l’archivio ContextHub

Per creare un candidato per lo store, utilizzare ContextHub.Utils.inheritance.inherit funzione per estendere uno degli archivi di base:

Ogni base store estende ContextHub.Store.Core archiviare.

L'esempio seguente crea l'estensione più semplice del ContextHub.Store.PersistedStore candidato store:

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

Realisticamente, i candidati all’archivio personalizzato definiscono funzioni aggiuntive o sovrascrivono la configurazione iniziale dell’archivio. Diversi candidati per l'archivio esempi sono installati nel repository seguente /libs/granite/contexthub/components/stores. Per apprendere da questi esempi, utilizza CRXDE Lite per aprire i file JavaScript.

Registrazione di un candidato per l’archivio ContextHub

Registra un candidato per store per integrarlo con il framework ContextHub e consentirne la creazione. Per registrare un candidato per lo store, utilizzare registerStoreCandidate funzione del ContextHub.Utils.storeCandidates classe.

Quando si registra un candidato per un punto vendita, è necessario specificare un nome per il tipo di punto vendita. Quando si crea un archivio dal candidato, si utilizza il tipo di archivio per identificare il candidato su cui si basa.

Quando si registra un candidato per lo store, si indica la sua priorità. Quando un candidato per lo store viene registrato utilizzando lo stesso tipo di store di un candidato per lo store già registrato, viene utilizzato il candidato con la priorità più elevata. Pertanto, puoi sostituire i candidati store esistenti con nuove implementazioni.

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

Di solito è necessario un solo candidato e la priorità può essere impostata su 0. Ma se sei interessato, puoi scoprire di più registrazioni più avanzate, che consente di scegliere una delle poche implementazioni dello store in base alla condizione JavaScript (applies) e priorità del candidato.

Creazione di tipi di moduli dell’interfaccia utente ContextHub

Creare tipi di moduli dell’interfaccia utente personalizzati quando installato con ContextHub non soddisfa le tue esigenze. Per creare un tipo di modulo UI, crea un modulo di rendering dell’interfaccia utente estendendo il ContextHub.UI.BaseModuleRenderer e quindi registrarlo con ContextHub.UI.

Per creare un modulo di rendering dell’interfaccia utente, crea un Class oggetto contenente la logica per il rendering del modulo dell’interfaccia utente. Come minimo, la classe deve eseguire le azioni seguenti:

  • Estendi il ContextHub.UI.BaseModuleRenderer classe. Questa classe è l’implementazione di base per tutti i renderer dei moduli di interfaccia utente. Il Class l'oggetto definisce una proprietà denominata extend che si utilizza per denominare questa classe come quella che viene estesa.

  • Fornisci una configurazione predefinita. Creare un defaultConfig proprietà. Questa proprietà è un oggetto che include le proprietà definite per contexthub.base e tutte le altre proprietà necessarie.

Origine per ContextHub.UI.BaseModuleRenderer si trova in /libs/granite/contexthub/code/ui/container/js/ContextHub.UI.BaseModuleRenderer.js. Per registrare il renderer, utilizzare registerRenderer metodo del ContextHub.UI classe. Specifica un nome per il tipo di modulo. Quando gli amministratori creano un modulo di interfaccia utente basato su questo renderer, specificano questo nome.

Crea e registra la classe renderer in una funzione anonima a esecuzione automatica. L’esempio seguente è basato sul codice sorgente del modulo dell’interfaccia utente contexthub.browserinfo. Questo modulo di interfaccia utente è una semplice estensione del ContextHub.UI.BaseModuleRenderer classe.

;(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());

}());

Il file JavaScript che include il codice che crea e registra il renderer deve essere incluso in un cartella della libreria client. La categoria della cartella deve corrispondere al seguente pattern:

contexthub.module.[moduleType]

Il [moduleType] parte della categoria è il moduleType con cui è registrato il modulo di rendering. Ad esempio, per moduleType di contexthub.browserinfo, la categoria della cartella della libreria client deve essere contexthub.module.contexthub.browserinfo.

In questa pagina