Paginaontwerp aanpassen customizing-page-authoring
Adobe Experience Manager as a Cloud Service verstrekt mechanismen om u de pagina auteursfunctionaliteit (en de consoles ) van uw auteursinstantie te laten aanpassen.
Clientlibs clientlibs
Clientlibs laten u de standaardimplementatie uitbreiden om nieuwe functionaliteit toe te laten, terwijl het hergebruiken van de standaardfuncties, de voorwerpen, en de methodes.
Bij het aanpassen kunt u uw eigen clientlib maken onder /apps.
De nieuwe clientlib moet:
- Afhankelijk van de client lib die het document maakt
cq.authoring.editor.sites.page
. - Maak deel uit van de juiste categorie
cq.authoring.editor.sites.page.hook
.
Zie Gebruikend cliënt-Kant Bibliotheken op AEM as a Cloud Service .
Bedekkingen overlays
Bedekkingen zijn gebaseerd op knooppuntdefinities en maken het mogelijk om de standaardfunctionaliteit in /libs
te bedekken met uw eigen aangepaste functionaliteit in /apps
.
Wanneer het creëren van een bekleding, wordt een 1:1 exemplaar van origineel niet vereist, aangezien de het laten slingeren middelfusie voor overerving toestaat.
Voor meer informatie, zie de JS documentatiereeks .
Voor meer informatie over overlays, zie Bedekkingen voor Adobe Experience Manager as a Cloud Service .
Nieuwe laag toevoegen (modus) add-new-layer-mode
Wanneer u een pagina uitgeeft, zijn er diverse beschikbare wijzen . Deze wijzen worden uitgevoerd gebruikend lagen . Hiermee hebt u toegang tot verschillende typen functionaliteit voor dezelfde pagina-inhoud. AEM modi zijn Bewerken, Layout, Ontwikkelaar, Tijdverdraaiing, Live Copy-status en Doel.
Voorbeeld van laag: status van actieve kopie layer-example-live-copy-status
Een standaard AEM instantie verstrekt de laag MSM. Dit heeft toegang tot gegevens met betrekking tot multisite beheer en benadrukt het in de laag.
Om het in actie te zien, kunt u om het even welk taalexemplaar in de WKND steekproefinhoud uitgeven en de Levende 3} wijze van de Status van het Exemplaar selecteren.
U kunt de MSM laagdefinitie (voor verwijzing) vinden in:
/libs/wcm/msm/content/touch-ui/authoring/editor/js/msm.Layer.js
Codevoorbeeld code-sample
Dit is een voorbeeldpakket dat toont hoe te om een laag (wijze) voor mening tot stand te brengen MSM.
U kunt de code van deze pagina op GitHub vinden.
Nieuwe selectiecategorie toevoegen aan de middelenbrowser add-new-selection-category-to-asset-browser
In de middelenbrowser worden elementen van verschillende typen/categorieën weergegeven (bijvoorbeeld afbeeldingen en documenten). De activa kunnen ook door deze activacategorieën worden gefiltreerd.
Codevoorbeeld code-sample-1
aem-authoring-extension-assetfinder-flickr
is een voorbeeldpakket dat aangeeft hoe u een groep aan de elementenzoeker kunt toevoegen. Dit voorbeeld verbindt met de openbare stroom van Flickr en toont hen in het zijpaneel.
U kunt de code van deze pagina op GitHub vinden.
Bronnen filteren filtering-resources
Bij het ontwerpen van pagina's moet de gebruiker vaak een keuze maken uit bronnen in een lijst.
Om de lijst tot een redelijke grootte en ook relevant voor het gebruiksgeval te houden, kan een filter in de vorm van een douanevoorspelling worden uitgevoerd. Als de component pathbrowser
Granite bijvoorbeeld wordt gebruikt om de gebruiker toe te staan het pad naar een bepaalde bron te selecteren, kunnen de voorgestelde paden als volgt worden gefilterd:
- Implementeer de aangepaste voorspelling door de
com.day.cq.commons.predicate.AbstractNodePredicate
-interface te implementeren. - Geef een naam voor de voorspelling op en verwijs die naam wanneer u de voorspelling van
pathbrowser
gebruikt.
Voor verder detail bij het creëren van een douane predikt, zie dit artikel .
Nieuwe handeling toevoegen aan werkbalk Component add-new-action-to-a-component-toolbar
Elke component heeft gewoonlijk een werkbalk die toegang biedt tot een reeks handelingen die op die component kunnen worden uitgevoerd.
Codevoorbeeld code-sample-2
aem-authoring-extension-toolbar-screenshot
is een voorbeeldpakket dat aangeeft hoe u een aangepaste werkbalkactie kunt maken om componenten te renderen.
U kunt de code van deze pagina op GitHub vinden.
Nieuwe plaatseditor toevoegen add-new-in-place-editor
Standaardeditor standard-in-place-editor
In een standaard AEM-installatie:
-
/libs/cq/gui/components/authoring/editors/clientlibs/core/js/editors/editorExample.js
bevat definities van de verschillende beschikbare editors. -
Er is een verbinding tussen de redacteur en elk middeltype (zoals in component) dat het kan gebruiken:
-
cq:inplaceEditing
bijvoorbeeld:
-
/libs/foundation/components/text/cq:editConfig
-
/libs/foundation/components/image/cq:editConfig
-
eigenschap:
editorType
Definieert het type inline-editor dat wordt gebruikt wanneer de bewerking op plaats wordt geactiveerd voor die component, bijvoorbeeld
text
,textimage
,image
,title
.
-
-
-
-
Aanvullende configuratiedetails van de editor kunnen worden geconfigureerd met een
config
-knooppunt dat configuraties en eenplugin
-knooppunt voor de benodigde configuratiegegevens van de plug-in.
Hieronder ziet u een voorbeeld van het definiëren van hoogte-breedteverhoudingen voor de uitsnijdplug-in van de afbeeldingscomponent.
<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>
ratio
bezit worden geplaatst, worden bepaald als hoogte/breedte. Dit verschilt van de conventionele definitie van breedte/hoogte en wordt gedaan om oude compatibiliteitsredenen. De ontwerpgebruikers zijn zich niet bewust van enig verschil op voorwaarde dat u de eigenschap name
duidelijk definieert, aangezien dit is wat wordt weergegeven in de gebruikersinterface.Een nieuwe plaatseditor maken creating-a-new-in-place-editor
Om een nieuwe op zijn plaats redacteur (binnen uw clientlib) uit te voeren:
-
Implementeren:
setUp
tearDown
-
Registreer de editor (inclusief de constructor):
editor.register
-
Verstrek de verbinding tussen de redacteur en elk middeltype (zoals in component) dat het kan gebruiken.
Codevoorbeeld voor het maken van een nieuwe plaatseditor code-sample-for-creating-a-new-in-place-editor
aem-authoring-extension-inplace-editor
is een voorbeeldpakket waarin wordt getoond hoe u een lokale editor in AEM kunt maken.
U kunt de code van deze pagina op GitHub vinden.
Handeling Nieuwe pagina toevoegen add-a-new-page-action
Om een nieuwe paginaactie aan de paginatoolbar toe te voegen, bijvoorbeeld, a terug naar Plaatsen (console) actie.
Codevoorbeeld code-sample-3
aem-authoring-extension-header-backtosites
is een voorbeeldpakket waarin wordt getoond hoe u een aangepaste actie voor de koptekstbalk kunt maken om terug te gaan naar de Sites-console.
U kunt de code van deze pagina op GitHub vinden.
De workflow voor het aanvragen van activering aanpassen customizing-the-request-for-activation-workflow
Het uit-van-de-dooswerkschema, Verzoek om Activering:
-
Zal automatisch op het aangewezen menu verschijnen wanneer een inhoudsauteur niet de aangewezen replicatierechten heeft, maar heeft lidmaatschap van DAM-Gebruikers en Auteurs.
-
Anders wordt er niets weergegeven, omdat de replicatierechten zijn verwijderd.
Om aangepast gedrag op dergelijke activering te hebben, kunt u het Verzoek om het werkschema van de Activering bedekken:
-
In
/apps
bedekking de 2} tovenaar van Plaatsen/libs/wcm/core/content/common/managepublicationwizard
- Op deze manier wordt de algemene instantie van
/libs/cq/gui/content/common/managepublicationwizard
genegeerd.
- Op deze manier wordt de algemene instantie van
-
Werk het workflowmodel en de bijbehorende configuraties/scripts naar wens bij.
-
Verwijder het recht op de handeling
replicate
van alle relevante gebruikers voor alle relevante pagina's. Als u wilt dat deze workflow als een standaardhandeling wordt geactiveerd wanneer een gebruiker een pagina publiceert (of dupliceert), probeert u deze te publiceren.