Anpassa webbplatskonsolen (Classic UI)
- Ämnen:
- Developing
Skapat för:
- Developer
Lägga till en anpassad kolumn i webbplatskonsolen (siteadmin)
Konsolen Administrera webbplatser kan utökas till att visa anpassade kolumner. Konsolen byggs baserat på ett JSON-objekt som kan utökas genom att skapa en OSGI-tjänst som implementerar ListInfoProvider
gränssnitt. En sådan tjänst ändrar JSON-objektet som skickas till klienten för att bygga konsolen.
I den här stegvisa självstudiekursen beskrivs hur du visar en ny kolumn i administrationskonsolen för webbplatser genom att implementera ListInfoProvider
gränssnitt. Det består av följande steg:
- Skapa OSGI-tjänsten och distribuera paketet som innehåller det till AEM.
- (valfritt) Testa den nya tjänsten genom att utfärda ett JSON-anrop för att begära JSON-objektet som används för att skapa konsolen.
- Visa den nya kolumnen genom att utöka nodstrukturen för konsolen i databasen.
- Digital Assets-konsolen
- Community-konsolen
Skapa OSGI-tjänsten
The ListInfoProvider
gränssnittet definierar två metoder:
updateListGlobalInfo
, för att uppdatera globala egenskaper för listan,updateListItemInfo
, för att uppdatera ett listobjekt.
Argumenten för båda metoderna är:
request
, det associerade Sling HTTP-begäranobjektet,info
, det JSON-objekt som ska uppdateras, som är den globala listan eller det aktuella listobjektet.resource
, en Sling-resurs.
Exempelimplementeringen nedan:
-
Lägger till en stjärnad egenskapen för varje objekt, som
true
om sidnamnet börjar med e ochfalse
i annat fall. -
Lägger till en starredCount som är global för listan och innehåller antalet stjärnlistobjekt.
Så här skapar du OSGI-tjänsten:
- I CRXDE Lite skapa ett paket.
- Lägg till exempelkoden nedan.
- Bygg paketet.
Den nya tjänsten körs.
package com.test;
import com.day.cq.commons.ListInfoProvider;
import com.day.cq.i18n.I18n;
import com.day.cq.wcm.api.Page;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.commons.json.JSONException;
import org.apache.sling.commons.json.JSONObject;
@Component(metatype = false)
@Service(value = ListInfoProvider.class)
public class StarredListInfoProvider implements ListInfoProvider {
private int count = 0;
public void updateListGlobalInfo(SlingHttpServletRequest request, JSONObject info, Resource resource) throws JSONException {
info.put("starredCount", count);
count = 0; // reset for next execution
}
public void updateListItemInfo(SlingHttpServletRequest request, JSONObject info, Resource resource) throws JSONException {
Page page = resource.adaptTo(Page.class);
if (page != null) {
// Consider starred if page name starts with 'e'
boolean starred = page.getName().startsWith("e");
if (starred) {
count++;
}
I18n i18n = new I18n(request);
info.put("starred", starred ? i18n.get("Yes") : i18n.get("No"));
}
}
}
- Implementeringen bör, baserat på den angivna begäran och/eller resursen, avgöra om den ska lägga till informationen till JSON-objektet eller inte.
- Om
ListInfoProvider
implementeringen definierar en egenskap som redan finns i svarsobjektet. Dess värde skrivs över av den som du anger.
Du kan använda rangordning av tjänster för att hantera körningsordningen för fleraListInfoProvider
implementeringar.
Testa den nya tjänsten
När du öppnar administrationskonsolen för webbplatser och bläddrar igenom webbplatsen skickar webbläsaren ett ajax-anrop för att hämta JSON-objektet som används för att skapa konsolen. Om du till exempel bläddrar till /content/geometrixx
mapp skickas följande begäran till AEM server för att bygga konsolen:
http://localhost:4502/content/geometrixx.pages.json?start=0&limit=30&predicate=siteadmin
Så här kontrollerar du att den nya tjänsten körs efter att du har distribuerat paketet som innehåller den:
-
Peka webbläsaren på följande URL:
http://localhost:4502/content/geometrixx.pages.json?start=0&limit=30&predicate=siteadmin
-
Svaret ska visa de nya egenskaperna enligt följande:
Visa den nya kolumnen
Det sista steget består i att anpassa nodstrukturen i administrationskonsolen för webbplatser så att den nya egenskapen för alla Geometrixx visas genom att täcka över /libs/wcm/core/content/siteadmin
. Gör så här:
-
Skapa nodstrukturen i CRXDE Lite
/apps/wcm/core/content
med noder av typensling:Folder
återspegla strukturen/libs/wcm/core/content
. -
Kopiera noden
/libs/wcm/core/content/siteadmin
och klistra in den nedan/apps/wcm/core/content
. -
Kopiera noden
/apps/wcm/core/content/siteadmin/grid/assets
till/apps/wcm/core/content/siteadmin/grid/geometrixx
och ändrar dess egenskaper:-
Ta bort pageText
-
Ange pathRegex till
/content/geometrixx(/.*)?
Detta gör att stödrasterkonfigurationen blir aktiv för alla geometrixx-webbplatser.
-
Ange storeProxySuffix till
.pages.json
-
Redigera storeReaderFields flervärdesegenskap och lägg till
starred
värde. -
Om du vill aktivera MSM-funktioner lägger du till följande MSM-parametrar i egenskapen multi-String storeReaderFields:
- msm:isSource
- msm:isInBlueprint
- msm:isLiveCopy
-
-
Lägg till en
starred
nod (av typ nt:ostrukturerad) nedan/apps/wcm/core/content/siteadmin/grid/geometrixx/columns
med följande egenskaper:- dataIndex:
starred
av typen String - header:
Starred
av typen String - xtype:
gridcolumn
av typen String
- dataIndex:
-
(valfritt) Släpp de kolumner som du inte vill visa vid
/apps/wcm/core/content/siteadmin/grid/geometrixx/columns
-
/siteadmin
är en mållös bana som som standard pekar på/libs/wcm/core/content/siteadmin
.Om du vill dirigera om den här till din version av siteadmin på
/apps/wcm/core/content/siteadmin
definiera egenskapensling:vanityOrder
att ha ett värde som är högre än det som definierats på/libs/wcm/core/content/siteadmin
. Standardvärdet är 300, så allt högre är lämpligt. -
Gå till administrationskonsolen för webbplatser och navigera till Geometrixx:
-
Den nya kolumnen anropades Started är tillgängligt och visar anpassad information enligt följande:
Exempelpaket
Resultatet av den här självstudiekursen finns i Anpassa administrationskonsolen för webbplatser paket på paketresurs.
Experience Manager
- Utveckla användarhandboken - översikt
- Introduktion för utvecklare
- Komma igång med utveckling i AEM Sites – WKND-självstudiekurs
- AEM kärnbegrepp
- Struktur för det AEM användargränssnittet med pekskärm
- Koncepten i det AEM användargränssnittet med pekskärm
- AEM - riktlinjer och bästa praxis
- Använda bibliotek på klientsidan
- Developing and Page Diff
- Begränsningar för redigerare
- CSRF Protection Framework
- Datamodellering - David Nueschelers modell
- Bidrar till AEM
- Dokumentskydd
- Referensmaterial
- Skapa en webbplats med alla funktioner (Classic UI)
- Designer och Designer (Classic UI)
- Plattform
- Fusklapp för Sling
- Använda Sling-adaptrar
- Taggbibliotek
- Mallar
- Använda Sling Resource Merger i AEM
- Övertäckningar
- Namnkonventioner
- Skapa en ny GRE-fältkomponent
- Query Builder
- Taggar
- Anpassa sidor som visas av felhanteraren
- Anpassade nodtyper
- Lägga till teckensnitt för grafikåtergivning
- Ansluta till SQL-databaser
- Extern URL
- Skapa och använda jobb för avlastning
- Konfigurerar cookie-användning
- Så här programmässigt kommer du åt AEM JCR
- Integrera tjänster med JMX-konsolen
- Developing the Bulk Editor
- Utveckla rapporter
- eCommerce
- Komponenter
- Kärnkomponenter
- Formatsystem
- Komponenter - översikt
- AEM - Grunderna
- Utveckla AEM
- Utveckla AEM - kodexempel
- JSON-exporterare för innehållstjänster
- Aktivera JSON-export för en komponent
- Bildredigeraren
- Dekoration-tagg
- Använda Dölj villkor
- Konfigurera flera redigerare på plats
- Utvecklarläge
- Testa användargränssnittet
- Komponenter för innehållsfragment
- Hämta sidinformation i JSON-format
- Internationalisering
- Klassiska gränssnittskomponenter
- Headless Experience Management
- Headless och Hybrid with AEM
- Aktivera JSON-export för en komponent
- Enkelsidiga program
- SPA introduktion och genomgång
- SPA WKND - självstudiekurs
- Getting Started with SPA in AEM - React
- Komma igång med SPA i AEM - Angular
- Implementera en React Component for SPA
- SPA djupdykning
- SPA
- Utveckla SPA för AEM
- SPA Blueprint
- SPA
- Dynamisk mappning av modell till komponent för SPA
- SPA
- SPA och Adobe Experience Platform Launch Integration
- SPA- och serveråtergivning
- SPA referensmaterial
- HTTP-API
- Innehållsfragment
- Experience Fragments
- Utvecklingsverktyg
- Utvecklingsverktyg
- AEM Modernization Tools
- Dialogruteredigeraren
- Verktyget Dialogkonvertering
- Utveckla med CRXDE Lite
- Hantera paket med Maven
- Utveckla AEM projekt med Eclipse
- Skapa AEM projekt med Apache Maven
- Utveckla AEM projekt med IntelliJ IDEA
- Så här använder du VLT-verktyget
- Så här använder du proxyserververktyget
- AEM Brackets Extension
- AEM Developer Tools for Eclipse
- AEM
- Personanpassning
- Utöka AEM
- Anpassa sidredigering
- Anpassa konsolerna
- Anpassa vyer av Sidegenskaper
- Konfigurera din sida för gruppredigering av sidegenskaper
- Anpassa och utöka Content Fragments
- Utöka arbetsflöden
- Utöka Multi Site Manager
- Spårning och analys
- Cloud Services
- Skapa anpassade tillägg
- Forms
- Integrera tjänster med JMX-konsolen
- Developing the Bulk Editor
- Utöka Classic UI
- Testning
- Bästa praxis
- Mobil webb