2016-07-01 1 views
0

Ich habe eine Anforderung, wo ich eine benutzerdefinierte Spalte in der Siteadmin-Konsole hinzufügen muss. In jeder Zeile der benutzerdefinierten Spalte wird ein Link angezeigt. Wenn ich auf den Link klicke, komme ich zu einer anderen Seite/Popup, wo einige Knoteneigenschaften der ausgewählten Seite angezeigt werden.So fügen Sie der Site Admin Console eine benutzerdefinierte Spalte hinzu

Ich bezog mich auf das folgende Dokument, aber es funktioniert nicht: Adding a Custom Column to the Site Admin Console.

Das Dokument sagt, ein Bündel zu schreiben, aber es sagt nicht, woher es heißen soll.

Bitte teilen Sie Ihre Gedanken, wie kann ich das erreichen?

Grüße, Satish

+0

Wahrscheinlich können Sie versuchen http://experience-aem.blogspot.in/2013/12/aem-cq-56-adding-column-to-siteadmin-grid.html – apurvc

Antwort

0

Update nach Klärung Informationen:

Navigieren Sie zu Ihrem überschichtet Siteadmin, während die URL Vanity Umgehung: http://localhost:4502/apps/wcm/core/content/siteadmin.html#/content/geometrixx. Wenn Sie die Spalte hier sehen, handelt es sich um ein Problem mit der Vanity-URL. Navigieren Sie zu http://localhost:4502/crx/de/index.jsp#/apps/wcm/core/content/siteadmin und bearbeiten Sie den sling:vanityOrder Wert zu 310 oder etwas größer als 300. An dieser Stelle sollten Sie die neue Spalte unter http://localhost:4502/siteadmin sehen.

Das Demo-Paket von Package Share konnte dies nicht tun. Durch die Verwendung des Demopakets und die Aktualisierung dieses Werts konnte ich dies mit AEM 5.6.1 und AEM 6.2 durchführen.

Original-Beitrag:

Wenn Sie die Anweisungen auf der Dokumentations-Seite folgen, die Sie verknüpfen, Customizing the Websites Administration Console, wird alles funktionieren. Es gibt sogar ein vollständiges Beispiel, das bereits für Sie erstellt wurde und von Package Share heruntergeladen werden kann - der Link befindet sich am Ende der Seite.

Ihre Frage zu beantworten, müssen Sie Ihren Code nicht nennen, das wird für Sie so lange von AEM behandelt werden, wie Sie den Anweisungen folgen und diese vier wichtigsten Punkte erfüllen:

  1. Ihre Klasse implementiert com.day.cq.commons.ListInfoProvider
  2. Ihre Klasse ist ein Service @Service(value = ListInfoProvider.class)
  3. Ihr Dienst aktiv ist
  4. Sie implementieren die dokumentierten Methoden

Wie zum Beispiel:

@Component(metatype = false) 
@Service(value = ListInfoProvider.class) 
public class StarredListInfoProvider implements ListInfoProvider { 
    public void updateListGlobalInfo(SlingHttpServletRequest request, JSONObject info, Resource resource) throws JSONException { 
    } 

    public void updateListItemInfo(SlingHttpServletRequest request, JSONObject info, Resource resource) throws JSONException { 
    } 
} 

Wenn Ihr Dienst aktiv wird es AEM zur Verfügung stehen wird. Überprüfen Sie den Status des Dienstes in Ihrer Apache Felix Components-Konsole unter http://localhost:4502/system/console/components.

Im Kern von AEM befindet sich ein Dienst, der auf die Schnittstelle ListInfoProvider verweist. AEM verwendet die SCR-Annotation @Reference, um OSGi-Services wie in Ihren eigenen Services zu binden. Siehe die Apache Felix SCR Annotations @Reference Dokumentation. Der Verweis in AEMs Dienst definiert mehrere Kardinalitäten, dh, er bindet mehrere Dienste. Das bedeutet, dass Sie in der Siteadmin-Konsole mehrere neue Spalten definieren können.

Die Quintessenz ist, dass AEM Apache Felix nutzt, um einen Verweis auf Ihren Dienst zu binden, sobald dieser verfügbar ist. Es weiß, wie man das macht, weil Sie die Schnittstelle implementiert haben, nach der AEM sucht. Sobald Ihr Dienst aktiv ist, müssen Sie nichts mehr anrufen oder ausführen.

+0

Ich habe das Paket-Share-Team über benachrichtigt der Fehler im Demopaket. Sie werden den Besitzer finden und das Paket aktualisiert bekommen. – nateyolles

Verwandte Themen