Creare i componenti create-the-components
Nell’esempio di estensione dei componenti viene utilizzato il sistema di commenti, composto da due componenti.
- Commenti: il sistema di commenti globale, ovvero il componente inserito in una pagina.
- Commento: componente che acquisisce un’istanza di un commento pubblicato.
Entrambi i componenti devono essere implementati, soprattutto se si personalizza l’aspetto di un commento pubblicato.
Creare il componente Commenti create-the-comments-component
Queste indicazioni specificano un valore Group diverso da .hidden
in modo che il componente possa essere reso disponibile dal browser componenti (barra laterale).
L’eliminazione del file JSP creato automaticamente è dovuta al fatto che viene utilizzato il file HBS predefinito.
-
Passa a CRXDE|Lite (http://localhost:4502/crx/de/index.jsp)
-
Creare una posizione per le applicazioni personalizzate:
-
Seleziona il nodo
/apps
- Crea cartella denominata personalizzata
-
Seleziona il nodo
/apps/custom
- Crea cartella denominata componenti
-
-
Seleziona il nodo
/apps/custom/components
-
Crea > Componente…
- Etichetta: commenti
- Titolo: Commenti Alt
- Descrizione: Stile commenti alternativo
- Super Type: social/commons/components/hbs/comments
- Gruppo: Personalizzato
-
Seleziona Avanti
-
Seleziona Avanti
-
Seleziona Avanti
-
Seleziona OK
-
-
Espandere il nodo creato:
/apps/custom/components/comments
-
Seleziona Salva tutto
-
Fare clic con il pulsante destro del mouse su
comments.jsp
-
Seleziona Elimina
-
Seleziona Salva tutto
Creare il componente Commento figlio create-the-child-comment-component
Queste indicazioni impostano Group su .hidden
in quanto solo il componente padre deve essere incluso in una pagina.
L’eliminazione del file JSP creato automaticamente è dovuta al fatto che viene utilizzato il file HBS predefinito.
-
Passa al nodo
/apps/custom/components/comments
-
Fare clic con il pulsante destro del mouse sul nodo
-
Seleziona Crea > Componente…
- Etichetta: commento
- Titolo: Commento alternativo
- Descrizione: Stile commento alternativo
- Super Type: social/commons/components/hbs/comments/comment
- Gruppo:
*.hidden*
-
Seleziona Avanti
-
Seleziona Avanti
-
Seleziona Avanti
-
Seleziona OK
-
-
Espandere il nodo creato:
/apps/custom/components/comments/comment
-
Seleziona Salva tutto
-
Fare clic con il pulsante destro del mouse su
comment.jsp
-
Seleziona Elimina
-
Seleziona Salva tutto
Copiare e modificare gli script HBS predefiniti copy-and-modify-the-default-hbs-scripts
Utilizzo di CRXDE Liti:
-
Copia
comments.hbs
-
Modifica
comments.hbs
in:-
Modifica il valore dell'attributo
data-scf-component
(~riga 20):- Da
social/commons/components/hbs/comments
- A
/apps/custom/components/comments
- Da
-
Modifica per includere il componente commento personalizzato (~riga 75):
- Sostituisci
{{include this resourceType='social/commons/components/hbs/comments/comment'}}
- Con
{{include this resourceType='/apps/custom/components/comments/comment'}}
- Sostituisci
-
-
Copia
comment.hbs
-
Modifica
comment.hbs
in:-
Modifica il valore dell’attributo data-scf-component (~ riga 19)
- Da
social/commons/components/hbs/comments/comment
- A
/apps/custom/components/comments/comment
- Da
-
-
Seleziona nodo
/apps/custom
-
Seleziona Salva tutto
Creare una cartella della libreria client create-a-client-library-folder
Per evitare di dover includere questa libreria client, è possibile utilizzare il valore delle categorie per la libreria client del sistema di commenti predefinito ( cq.social.author.hbs.comments
). Tuttavia, questa libreria client dovrebbe quindi essere inclusa anche per tutte le istanze del componente predefinito.
Utilizzo di CRXDE Liti:
-
Seleziona nodo
/apps/custom/components/comments
-
Seleziona Crea nodo
-
Nome:
clientlibs
-
Tipo:
cq:ClientLibraryFolder
-
Aggiungi alla scheda Proprietà:
- Nome
categories
TipoString
Valorecq.social.author.hbs.comments
Multi
- Nome
dependencies
TipoString
Valorecq.social.scf
Multi
- Nome
-
-
Seleziona Salva tutto
-
Con il nodo
/apps/custom/components/comments/clientlib
selezionato, crea tre file:- Nome:
css.txt
- Nome:
js.txt
- Nome: customcommentsystem.js
- Nome:
-
Immettere 'customcommentsystem.js' come contenuto di
js.txt
-
Seleziona Salva tutto
Registra il modello e la vista SCF register-the-scf-model-view
Quando si estende (esegue l'override) un componente SCF, resourceType è diverso (la sovrapposizione utilizza il meccanismo di ricerca relativo che esegue la ricerca in /apps
prima di /libs
in modo che resourceType rimanga invariato). Per questo motivo è necessario scrivere JavaScript (nella libreria client) per registrare il modello JS SCF e visualizzare per il resourceType personalizzato.
Immettere il testo seguente come contenuto di customcommentsystem.js
:
customcommentsystem.js customcommentsystem-js
(function($CQ, _, Backbone, SCF) {
"use strict";
var CustomComment = SCF.Components["social/commons/components/hbs/comments/comment"].Model;
var CustomCommentView = SCF.Components["social/commons/components/hbs/comments/comment"].View;
var CustomCommentSystem = SCF.Components["social/commons/components/hbs/comments"].Model;
var CustomCommentSystemView = SCF.Components["social/commons/components/hbs/comments"].View;
SCF.registerComponent('/apps/custom/components/comments/comment', CustomComment, CustomCommentView);
SCF.registerComponent('/apps/custom/components/comments', CustomCommentSystem, CustomCommentSystemView);
})($CQ, _, Backbone, SCF);
- Seleziona Salva tutto
Publish l’app publish-the-app
Per avere un’idea del componente esteso nell’ambiente di pubblicazione, è necessario replicare il componente personalizzato.
Un modo per farlo è:
-
Dalla navigazione globale,
- Seleziona Strumenti > Distribuzione > Replica
- Seleziona Attiva albero
- Imposta
Start Path
su/apps/custom
- Deseleziona Solo Modificato
- Seleziona pulsante Attiva