Anpassa sidredigering customizing-page-authoring
I Adobe Experience Manager (AEM) finns olika mekanismer som du kan använda för att anpassa sidredigeringsfunktionen (och konsolerna) för redigeringsinstansen.
-
Clientlibs
Med Clientlibs kan du utöka standardimplementeringen för att få nya funktioner, samtidigt som du återanvänder standardfunktioner, objekt och standardmetoder. När du anpassar kan du skapa en egen klientlib under
/apps.
Den nya klienten måste:- är beroende av redigeringsklientlib
cq.authoring.editor.sites.page
- vara en del av rätt
cq.authoring.editor.sites.page.hook
-kategori
- är beroende av redigeringsklientlib
-
Övertäckningar
Övertäckningar baseras på noddefinitioner och gör att du kan täcka över standardfunktionerna (i
/libs
) med din egen anpassade funktion (i/apps
). När du skapar en övertäckning krävs ingen 1:1-kopia av originalet, eftersom sling-resurskonfusion tillåter arv.
De kan användas på många sätt för att utöka sidredigeringsfunktionen i AEM. En markering beskrivs nedan (på en hög nivå).
- Använder och skapar clientlibs.
- Använda och skapa övertäckningar.
- Bevilja
- Struktur för det AEM Touch-aktiverade gränssnittet innehåller information om de strukturella områden som används för sidredigering.
/libs
./libs
skrivs över nästa gång du uppgraderar din instans (och kan mycket väl skrivas över när du använder en snabbkorrigering eller ett funktionspaket).- Återskapa det obligatoriska objektet (det vill säga som det finns i
/libs
) under/apps
- Gör ändringar i
/apps
Lägg till nytt lager (läge) add-new-layer-mode
När du redigerar en sida finns det olika lägen tillgängliga. Dessa lägen implementeras med lager. Dessa ger åtkomst till olika typer av funktioner för samma sidinnehåll. Standardlagren är: redigera, förhandsgranska, kommentera, utvecklare och målinriktning.
Exempel på lager: Live Copy-status layer-example-live-copy-status
En AEM standardinstans innehåller MSM-lagret. Detta ger åtkomst till data relaterade till hantering av flera webbplatser och markerar dem i lagret.
Om du vill se hur det fungerar kan du redigera en webbsida.Kopia (eller någon annan live-sida) och välja Live Copy-status .
MSM-lagerdefinitionen (som referens) finns i:
/libs/wcm/msm/content/touch-ui/authoring/editor/js/msm.Layer.js
Kodexempel code-sample
Detta är ett exempelpaket som visar hur du skapar ett lager (läge), som är ett nytt lager för MSM-vyn.
KOD PÅ GITHUB
Koden för den här sidan finns på GitHub
- Öppna aem-authoring-new-layer-mode-projekt på GitHub
- Hämta projektet som en ZIP-fil
Lägg till ny markeringskategori i resursläsaren add-new-selection-category-to-asset-browser
Resursläsaren visar resurser av olika typer/kategorier (till exempel bilder och dokument). Resurserna kan också filtreras efter dessa tillgångskategorier.
Kodexempel code-sample-1
aem-authoring-extension-assetfinder-flickr
är ett exempelpaket som visar hur du lägger till en grupp i tillgångssökaren. Det här exemplet ansluter till Flickrs allmänna ström och visar dem på sidopanelen.
KOD PÅ GITHUB
Koden för den här sidan finns på GitHub
- Öppna aem-authoring-extension-assetfinder-flickr-projekt på GitHub
- Hämta projektet som en ZIP-fil
Filtreringsresurser filtering-resources
När användaren redigerar sidor måste han/hon ofta välja bland resurser (till exempel sidor, komponenter och resurser). Detta kan vara en lista där författaren måste välja ett objekt.
För att hålla listan i en rimlig storlek och även relevant för användningsfallet kan ett filter implementeras i form av ett anpassat predikat. Om till exempel komponenten pathbrowser
Granite används för att låta användaren välja sökvägen till en viss resurs, kan sökvägarna som visas filtreras på följande sätt:
- Implementera det anpassade predikatet genom att implementera gränssnittet
com.day.cq.commons.predicate.AbstractNodePredicate
. - Ange ett namn för predikatet och referera det namnet när du använder
pathbrowser
.
Mer information om hur du skapar ett anpassat predikat finns i Implementera en anpassad predikatutvärderare för frågeverktyget.
com.day.cq.commons.predicate.AbstractNodePredicate
-gränssnittet fungerar även i det klassiska användargränssnittet.Lägg till ny åtgärd i ett komponentverktygsfält add-new-action-to-a-component-toolbar
Varje komponent (vanligtvis) har ett verktygsfält som ger tillgång till en rad åtgärder som kan vidtas för den komponenten.
Kodexempel code-sample-2
aem-authoring-extension-toolbar-screenshot
är ett exempelpaket som visar hur du skapar en anpassad verktygsfältåtgärd för att återge komponenter.
KOD PÅ GITHUB
Koden för den här sidan finns på GitHub
- Öppna aem-authoring-extension-toolbar-screenshot-projekt på GitHub
- Hämta projektet som en ZIP-fil
Lägg till ny lokal redigerare add-new-in-place-editor
Standardredigerare på plats standard-in-place-editor
I en vanlig AEM-installation:
-
/libs/cq/gui/components/authoring/editors/clientlibs/core/js/editors/editorExample.js
Innehåller definitioner av de olika redigeringsprogrammen.
-
Det finns en anslutning mellan redigeraren och varje resurstyp (som i komponenten) som kan använda den:
-
cq:inplaceEditing
till exempel:
-
/libs/foundation/components/text/cq:editConfig
-
/libs/foundation/components/image/cq:editConfig
-
egenskap:
editorType
Definierar den typ av infogad redigerare som används när redigering på plats aktiveras för den komponenten, till exempel
text
,textimage
,image
,title
.
-
-
-
-
Ytterligare konfigurationsinformation om redigeraren kan konfigureras med en
config
-nod som innehåller konfigurationer och enplugin
-nod som innehåller nödvändig konfigurationsinformation för plugin-programmet.Följande är ett exempel på hur du definierar bildproportioner för bildbeskärningsplugin-programmet för bildkomponenten. På grund av den begränsade skärmstorleken har beskärningsproportionerna flyttats till helskärmsredigeraren och kan bara ses där.
code language-xml <cq:inplaceEditing jcr:primaryType="cq:InplaceEditingConfig" active="{Boolean}true" editorType="image"> <config jcr:primaryType="nt:unstructured"> <plugins jcr:primaryType="nt:unstructured"> <crop jcr:primaryType="nt:unstructured"> <aspectRatios jcr:primaryType="nt:unstructured"> <_x0031_6-10 jcr:primaryType="nt:unstructured" name="16 : 10" ratio="0.625"/> </aspectRatios> </crop> </plugins> </config> </cq:inplaceEditing>
note caution CAUTION AEM beskärningsproportioner, som anges av egenskapen ratio
, definieras som height/width. Detta skiljer sig från den vanliga definitionen av bredd/höjd och görs av bakåtkompatibilitetsskäl. Redigeringsanvändarna kommer inte att vara medvetna om några skillnader förutsatt att du definierar egenskapenname
tydligt eftersom det är det som visas i gränssnittet.
Skapa en ny lokal redigerare creating-a-new-in-place-editor
Så här implementerar du en ny redigerare på plats (i klientlib):
/libs/cq/gui/components/authoring/editors/clientlibs/core/js/editors/editorExample.js
-
Implementera:
setUp
tearDown
-
Registrera redigeraren (inkluderar konstruktorn):
editor.register
-
Ange anslutningen mellan redigeraren och alla resurstyper (som i komponenten) som kan använda den.
Kodexempel för att skapa en ny lokal redigerare code-sample-for-creating-a-new-in-place-editor
aem-authoring-extension-inplace-editor
är ett exempelpaket som visar hur du skapar en redigerare på plats i AEM.
KOD PÅ GITHUB
Koden för den här sidan finns på GitHub
- Öppna aem-authoring-extension-inplace-editor-projekt i GitHub
- Hämta projektet som en ZIP-fil
Konfigurera flera redigerare på plats configuring-multiple-in-place-editors
Det går att konfigurera en komponent så att den har flera redigerare på plats. När flera redigerare på plats har konfigurerats kan du välja rätt innehåll och öppna rätt redigerare. Mer information finns i dokumentationen för Konfigurera flera redigerare på plats.
Lägg till en ny sidåtgärd add-a-new-page-action
Om du vill lägga till en ny sidåtgärd i sidverktygsfältet, till exempel en Tillbaka till platser (konsol)-åtgärd.
Kodexempel code-sample-3
aem-authoring-extension-header-backtosites
är ett exempelpaket som visar hur du skapar en anpassad huvudfältåtgärd för att hoppa tillbaka till webbplatskonsolen.
KOD PÅ GITHUB
Koden för den här sidan finns på GitHub
- Öppna aem-authoring-extension-header-backtosites-projekt på GitHub
- Hämta projektet som en ZIP-fil
Anpassa arbetsflödet för begäran om aktivering customizing-the-request-for-activation-workflow
Det färdiga arbetsflödet, Begär aktivering:
-
Visas automatiskt på rätt meny när innehållsförfattaren inte har rätt replikeringsbehörighet, men inte har medlemskap i DAM-användare och författare.
-
I annat fall visas ingenting eftersom replikeringsrättigheter har tagits bort.
Om du vill ha ett anpassat beteende för en sådan aktivering kan du täcka över arbetsflödet Begär aktivering:
-
I
/apps
-övertäckningen Platser-guiden:/libs/wcm/core/content/common/managepublicationwizard
note note NOTE Själva den här åsidosätter den vanliga förekomsten av: /libs/cq/gui/content/common/managepublicationwizard
-
Uppdatera arbetsflödesmodellen och relaterade konfigurationer/skript efter behov.
-
Ta bort rättigheten till
replicate
-åtgärdenfrån alla lämpliga användare för alla relevanta sidor. Om du vill att det här arbetsflödet ska aktiveras som en standardåtgärd när någon av användarna försöker publicera (eller replikera) en sida.