Das Beispiel der Erweiterung von Komponenten verwendet das Kommentarsystem, das eigentlich aus zwei Komponenten besteht
Beide Komponenten müssen eingerichtet werden, insbesondere wenn das Erscheinungsbild eines veröffentlichten Kommentars angepasst wird.
Pro Site-Seite ist nur ein Kommentarsystem zulässig.
Viele Communities-Funktionen enthalten bereits ein Kommentarsystem, dessen resourceType so geändert werden kann, dass er auf das erweiterte Kommentarsystem verweist.
Diese Anweisungen geben eine Gruppe Wert, der .hidden
sodass die Komponente über den Komponenten-Browser (Sidekick) verfügbar gemacht werden kann.
Das Löschen der automatisch erstellten JSP-Datei erfolgt dadurch, dass stattdessen die standardmäßige HBS-Datei verwendet wird.
Navigieren Sie zu CRXDE|Lite (http://localhost:4502/crx/de/index.jsp)
Erstellen Sie einen Speicherort für benutzerdefinierte Anwendungen:
Wählen Sie den /apps
-Knoten aus
Wählen Sie den /apps/custom
-Knoten aus
Wählen Sie den /apps/custom/components
-Knoten aus
Erstellen > Komponente…
Wählen Sie Weiter aus
Wählen Sie Weiter aus
Wählen Sie Weiter aus
Wählen Sie OK aus
Erweitern Sie den soeben erstellten Knoten: /apps/custom/components/comments
Klicken Sie auf Alle speichern
Klicken Sie mit der rechten Maustaste comments.jsp
Wählen Sie Löschen aus
Klicken Sie auf Alle speichern
Diese Anweisungen Gruppe nach .hidden
da nur die übergeordnete Komponente in eine Seite einbezogen werden sollte.
Das Löschen der automatisch erstellten JSP-Datei erfolgt dadurch, dass stattdessen die standardmäßige HBS-Datei verwendet wird.
Navigieren Sie zum /apps/custom/components/comments
Knoten
Rechtsklick auf den Knoten
Auswählen Erstellen > Komponente…
*.hidden*
Wählen Sie Weiter aus
Wählen Sie Weiter aus
Wählen Sie Weiter aus
Wählen Sie OK aus
Erweitern Sie den soeben erstellten Knoten: /apps/custom/components/comments/comment
Klicken Sie auf Alle speichern
Klicken Sie mit der rechten Maustaste comment.jsp
Wählen Sie Löschen aus
Klicken Sie auf Alle speichern
Verwenden CRXDE Lite:
Kopieren comments.hbs
Bearbeiten comments.hbs
an:
Ändern Sie den Wert der data-scf-component
Attribut (~line 20):
social/commons/components/hbs/comments
/apps/custom/components/comments
Nehmen Sie die benutzerdefinierte Kommentarkomponente (~line 75) auf:
{{include this resourceType='social/commons/components/hbs/comments/comment'}}
{{include this resourceType='/apps/custom/components/comments/comment'}}
Kopieren comment.hbs
Bearbeiten comment.hbs
an:
Ändern Sie den Wert des data-scf-component -Attributs (~ Zeile 19)
social/commons/components/hbs/comments/comment
/apps/custom/components/comments/comment
Auswählen /apps/custom
Knoten
Klicken Sie auf Alle speichern
Um zu vermeiden, dass diese Client-Bibliothek explizit einbezogen werden muss, kann der Kategoriewert für die clientlib des Standard-Kommentarsystems verwendet werden ( cq.social.author.hbs.comments
), aber dann würde diese clientlib auch für alle Instanzen der Standardkomponente einbezogen.
Verwenden CRXDE Lite:
Auswählen /apps/custom/components/comments
Knoten
Auswählen Knoten erstellen
Name: clientlibs
Typ: cq:ClientLibraryFolder
Hinzufügen zu Eigenschaften tab:
categories
Typ String
Wert cq.social.author.hbs.comments
Multi
dependencies
Typ String
Wert cq.social.scf
Multi
Klicken Sie auf Alle speichern
Mit /apps/custom/components/comments/clientlib
Erstellen Sie als ausgewählten Knoten 3 Dateien:
css.txt
js.txt
Geben Sie "customommentssystem.js"als Inhalt von ein. js.txt
Klicken Sie auf Alle speichern
Beim Erweitern (Überschreiben) einer SCF-Komponente ist resourceType anders (Überlagern nutzt den relativen Suchmechanismus, der durchsucht wird) /apps
before /libs
sodass der resourceType gleich bleibt). Daher ist es erforderlich, JavaScript (in der Client-Bibliothek) zu schreiben, um das SCF-JS-Modell zu registrieren und für den benutzerdefinierten resourceType anzuzeigen.
Geben Sie folgenden Text als Inhalt von ein 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);
Um die erweiterte Komponente in der Veröffentlichungsumgebung zu erleben, muss die benutzerdefinierte Komponente repliziert werden.
Eine Möglichkeit ist, dies zu tun
Aus globaler Navigation
Activate Tree
Start Path
: nach /apps/custom
Only Modified
Activate
button