Het beheer van meerdere sites uitbreiden extending-the-multi-site-manager
Met deze pagina kunt u de functionaliteit van het beheer van meerdere sites uitbreiden:
- Leer meer over de belangrijkste leden van de MSM Java API.
- Creeer een synchronisatieactie die in een rollout configuratie kan worden gebruikt.
- Wijzig de standaardtaal en landcodes.
- 🔗 de Configuraties van de Vervaging van de Manager van 0} multi-plaats
- de Configuraties van de Output van de Manager van de Multisite
Overzicht van de Java API overview-of-the-java-api
Beheer van meerdere sites bestaat uit de volgende pakketten:
De belangrijkste voorwerpen MSM API in wisselwerking als volgt (zie ook Gebruikte Termen):
-
Blueprint
A
Blueprint
(zoals in blauwdrukconfiguratie) specificeert de pagina's waarvan een levend exemplaar inhoud kan erven.-
Het gebruik van een blauwdrukconfiguratie (
Blueprint
) is optioneel, maar:- Staat de auteur toe om de optie van de Uitvoer op de bron (aan (uitdrukkelijk) duw wijzigingen aan levende exemplaren te gebruiken die van deze bron erven).
- Staat de auteur toe om te gebruiken creeer Plaats; dit staat de gebruiker toe om talen gemakkelijk te selecteren en de structuur van het levende exemplaar te vormen.
- Bepaalt de standaardrollout configuratie voor om het even welke resulterende levende exemplaren.
-
-
LiveRelationship
In
LiveRelationship
wordt de verbinding (relatie) aangegeven tussen een bron in de actieve kopieervertakking en de equivalente bron/blauwdrukbron.-
De relaties worden gebruikt bij het realiseren van overerving en rollout.
-
LiveRelationship
-objecten bieden toegang (verwijzingen) tot de implementatieconfiguraties (RolloutConfig
),LiveCopy
enLiveStatus
-objecten die betrekking hebben op de relatie. -
Er wordt bijvoorbeeld in
/content/copy/us
een live kopie gemaakt van de bron/blauwdruk op/content/we-retail/language-masters
. De bronnen/content/we.retail/language-masters/en/jcr:content
en/content/copy/us/en/jcr:content
vormen een relatie.
-
-
LiveCopy
LiveCopy
bevat de configuratiedetails voor de relaties (LiveRelationship
) tussen de bronnen van de livekopie en hun bron-/blauwdrukbronnen.-
Met de klasse
LiveCopy
hebt u toegang tot het pad van de pagina, het pad van de bron-/blauwdrukpagina, de rollout-configuraties en of onderliggende pagina's ook in deLiveCopy
worden opgenomen. -
Een
LiveCopy
knoop wordt gecreeerd telkens als Plaats creeert of Levende Exemplaar wordt gebruikt tot stand brengen.
-
-
LiveStatus
LiveStatus
-objecten bieden toegang tot de runtimestatus van eenLiveRelationship
. Wordt gebruikt om de synchronisatiestatus van een live kopie te controleren. -
LiveAction
Een
LiveAction
is een handeling die wordt uitgevoerd op elke bron die bij de rollout is betrokken.- LiveActions wordt slechts geproduceerd door RolloutConfigs.
-
LiveActionFactory
Maakt
LiveAction
-objecten op basis van eenLiveAction
-configuratie. Configuraties worden opgeslagen als bronnen in de opslagplaats. -
RolloutConfig
RolloutConfig
bevat een lijst metLiveActions
die moet worden gebruikt wanneer deze wordt geactiveerd.LiveCopy
erftRolloutConfig
en het resultaat is aanwezig inLiveRelationship
.- Voor het eerst dat een live kopie wordt ingesteld, wordt ook een RolloutConfig gebruikt (die de LiveActions activeert).
Nieuwe synchronisatiehandeling maken creating-a-new-synchronization-action
Creeer de acties van de douanesynchronisatie om met uw rollout configuraties te gebruiken. Creeer een synchronisatieactie wanneer de geïnstalleerde actiesniet aan uw specifieke toepassingsvereisten voldoen. Hiertoe maakt u twee klassen:
- Een implementatie van de
com.day.cq.wcm.msm.api.LiveAction
interface die de actie uitvoert. - Een component OSGI die de
com.day.cq.wcm.msm.api.LiveActionFactory
interface uitvoert en instanties van uwLiveAction
klasse leidt.
In LiveActionFactory
worden instanties van de klasse LiveAction
voor een bepaalde configuratie gemaakt:
-
LiveAction
-klassen bevatten de volgende methoden:getName
: retourneert de naam van de handeling. De naam wordt gebruikt om naar de actie, bijvoorbeeld, in rollout configuraties te verwijzen.execute
: voert de taken van de handeling uit.
-
LiveActionFactory
-klassen zijn onder andere de volgende leden:-
LIVE_ACTION_NAME
: Een veld dat de naam van de gekoppeldeLiveAction
bevat. Deze naam moet overeenkomen met de waarde die wordt geretourneerd door de methodegetName
van de klasseLiveAction
. -
createAction
: hiermee maakt u een instantie van de lusLiveAction
. De optionele parameterResource
kan worden gebruikt om configuratiegegevens op te geven. -
createsAction
: retourneert de naam van de gekoppeldeLiveAction
.
-
De LiveAction Configuration-node openen accessing-the-liveaction-configuration-node
Gebruik het configuratieknooppunt LiveAction
in de opslagplaats om informatie op te slaan die het runtimegedrag van de instantie LiveAction
beïnvloedt. Het knooppunt in de opslagplaats dat de LiveAction
-configuratie opslaat, is tijdens runtime beschikbaar voor het LiveActionFactory
-object. Daarom kunt u eigenschappen aan de configuratieknooppunt aan toevoegen en hen in uw LiveActionFactory
implementatie gebruiken zoals nodig.
Een LiveAction
moet bijvoorbeeld de naam van de auteur van het concept opslaan. Een bezit van de configuratieknoop omvat de bezitsnaam van de blauwdruk pagina die de informatie opslaat. Tijdens runtime haalt LiveAction
de eigenschapnaam uit de configuratie op en verkrijgt vervolgens de eigenschapswaarde.
De parameter van de methode LiveActionFactory.createAction
is een Resource
-object. Dit Resource
voorwerp vertegenwoordigt de cq:LiveSyncAction
knoop voor deze levende actie in de rollout configuratie; zie Creërend een Configuratie van de Output. Zoals gebruikelijk wanneer het gebruiken van een configuratieknoop, zou u het aan een voorwerp ValueMap
moeten aanpassen:
public LiveAction createAction(Resource resource) throws WCMException {
ValueMap config;
if (resource == null || resource.adaptTo(ValueMap.class) == null) {
config = new ValueMapDecorator(Collections.<String, Object>emptyMap());
} else {
config = resource.adaptTo(ValueMap.class);
}
return new MyLiveAction(config, this);
}
Toegang krijgen tot doelknooppunten, Source-knooppunten en de LiveRelationship accessing-target-nodes-source-nodes-and-the-liverelationship
De volgende objecten worden opgegeven als parameters van de methode execute
van het object LiveAction
:
-
Een
Resource
voorwerp dat de bron van Levende Exemplaar vertegenwoordigt. -
Een
Resource
-object dat het doel van de actieve kopie vertegenwoordigt. -
Het
LiveRelationship
voorwerp voor het levende exemplaar. -
De
autoSave
-waarde geeft aan of deLiveAction
wijzigingen moet opslaan die in de gegevensopslagruimte zijn aangebracht. -
De reset-waarde geeft de rollout reset-modus aan.
Met deze objecten kunt u alle informatie over de LiveCopy
opvragen. U kunt de Resource
-objecten ook gebruiken om ResourceResolver
-, Session
- en Node
-objecten te verkrijgen. Deze objecten zijn handig voor het bewerken van inhoud in opslagruimten:
In de eerste regel van de volgende code is de bron het Resource
-object van de bronpagina:
ResourceResolver resolver = source.getResourceResolver();
Session session = resolver.adaptTo(javax.jcr.Session.class);
Node sourcenode = source.adaptTo(javax.jcr.Node.class);
Resource
argumenten kunnen null
of Resources
objecten zijn die zich niet aanpassen aan Node
-objecten, zoals NonExistingResource
-objecten.Een nieuwe rollout-configuratie maken creating-a-new-rollout-configuration
Maak een rollout-configuratie wanneer de geïnstalleerde rollout-configuraties niet voldoen aan de toepassingsvereisten:
De nieuwe rollout configuratie is dan beschikbaar aan u wanneer het plaatsen van rollout configuraties op een blauwdruk of een levende exemplaarpagina.
De configuratie van de rollout maken create-the-rollout-configuration
-
Open CRXDE Lite, bijvoorbeeld:
http://localhost:4502/crx/de -
Navigeren naar:
/apps/msm/<your-project>/rolloutconfigs
note note NOTE Dit is de aangepaste versie van uw project van: /libs/msm/wcm/rolloutconfigs
Als dit uw eerste configuratie is, moet deze/libs
tak als malplaatje worden gebruikt om de nieuwe tak onder/apps
tot stand te brengen.note note NOTE Wijzig niets in het /libs
-pad.
De reden hiervoor is dat de inhoud van/libs
de volgende keer dat u een upgrade uitvoert van de instantie wordt overschreven (en dat deze inhoud ook kan worden overschreven wanneer u een hotfix- of functiepakket toepast).
De aanbevolen methode voor configuratie en andere wijzigingen is:- Het vereiste item opnieuw maken (dat wil zeggen, zoals het in
/libs
staat) onder/apps
- Breng eventuele wijzigingen aan binnen
/apps
- Het vereiste item opnieuw maken (dat wil zeggen, zoals het in
-
Onder dit creeer een knoop met de volgende eigenschappen:
- Naam: De knoopnaam van de rollout configuratie. md#installed-synchronization-actions), bijvoorbeeld
contentCopy
ofworkflow
. - Type:
cq:RolloutConfig
- Naam: De knoopnaam van de rollout configuratie. md#installed-synchronization-actions), bijvoorbeeld
-
Voeg de volgende eigenschappen toe aan dit knooppunt:
-
Naam:
jcr:title
Type:
String
Waarde: Een het identificeren titel die in UI zal verschijnen. -
Naam:
jcr:description
Type:
String
Waarde: Een facultatieve beschrijving. -
Naam:
cq:trigger
Type:
String
Waarde: De Trigger van de Uitvoerom worden gebruikt. Selecteren uit:rollout
modification
publish
deactivate
-
-
Klik sparen allen.
Synchronisatiehandelingen toevoegen aan de configuratie van de rollout add-synchronization-actions-to-the-rollout-configuration
De configuraties van de rollout worden opgeslagen onder de knoop van de rollout configuratiedie u onder /apps/msm/<your-project>/rolloutconfigs
knoop hebt gecreeerd.
Voeg onderliggende knooppunten van het type cq:LiveSyncAction
toe om synchronisatiehandelingen toe te voegen aan de rollout-configuratie. De volgorde van de actieknooppunten voor synchronisatie bepaalt de volgorde waarin de acties plaatsvinden.
-
Nog in CRXDE Lite, selecteer uw 🔗 knoop van de Configuratie van 0} Uitvoer {.
Bijvoorbeeld:
/apps/msm/myproject/rolloutconfigs/myrolloutconfig
-
creeer een knoop met de volgende knoopeigenschappen:
- Naam: De knoopnaam van de synchronisatieactie.
De naam moet het zelfde zijn zoals de Naam van de Actie in de lijst onder de Acties van de Synchronisatie, bijvoorbeeld,contentCopy
ofworkflow
. - Type:
cq:LiveSyncAction
- Naam: De knoopnaam van de synchronisatieactie.
-
Voeg en vorm zo vele knopen van de synchronisatieactie toe aangezien u vereist. Wijzig de rangschikking van de actieknoppen zodat de volgorde overeenkomt met de volgorde waarin u deze wilt uitvoeren. Het bovenste actieknooppunt komt eerst voor.
Een eenvoudige LiveActionFactory-klasse maken en gebruiken creating-and-using-a-simple-liveactionfactory-class
Volg de procedures in deze sectie om een LiveActionFactory
te ontwikkelen en het in een rollout configuratie te gebruiken. De procedures gebruiken Maven en Eclipse om LiveActionFactory
te ontwikkelen en op te stellen:
- creeer het geleide projecten voer het in Eclipse in.
- voegt gebiedsdelenaan het POM- dossier toe.
- voert
LiveActionFactory
interfaceuit en stelt de bundel OSGi op. - creeer de rollout configuratie.
- creeer het levende exemplaar.
Het Maven-project en de broncode van de Java-klasse zijn beschikbaar in de openbare Git-opslagplaats.
CODE VOOR GITHUB
U kunt de code van deze pagina op GitHub vinden
- Open ervaring-java-msmrollout project op GitHub
- Download het project als een dossier van het PIT
Maven create-the-maven-project
Voor de volgende procedure is het vereist dat u het adobe-public profiel hebt toegevoegd aan het Maven-instellingenbestand.
- Voor informatie over het adobe-openbare profiel, zie het Verkrijgen van het Pakket van de Inhoud Gemaakte Insteekmodule
- Voor informatie over het GeMaven montagesdossier, zie de Gemaakt Verwijzing van Montages.
-
Open een terminal- of opdrachtregelsessie en wijzig de directory om te wijzen naar de locatie waar u het project wilt maken.
-
Voer de volgende opdracht in:
code language-xml mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault -DarchetypeArtifactId=multimodule-content-package-archetype -DarchetypeVersion=1.0.0 -DarchetypeRepository=adobe-public-releases
-
Geef de volgende waarden op bij interactieve prompt:
groupId
:com.adobe.example.msm
artifactId
:MyLiveActionFactory
version
:1.0-SNAPSHOT
package
:MyPackage
appsFolderName
:myapp
artifactName
:MyLiveActionFactory package
packageGroup
:myPackages
-
De Verduistering van het begin en voeren het Geweven projectin.
Afhankelijkheden toevoegen aan het POM-bestand add-dependencies-to-the-pom-file
Voeg gebiedsdelen toe zodat de compiler van de Verduistering de klassen kan van verwijzingen voorzien die in de LiveActionFactory
code worden gebruikt.
-
Open het bestand in Eclipse Project Explorer:
MyLiveActionFactory/pom.xml
-
Klik in de editor op de tab
pom.xml
en zoek de sectieproject/dependencyManagement/dependencies
. -
Voeg de volgende XML toe in het
dependencyManagement
-element en sla het bestand op.code language-xml <dependency> <groupId>com.day.cq.wcm</groupId> <artifactId>cq-msm-api</artifactId> <version>5.6.2</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.api</artifactId> <version>2.4.3-R1488084</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.day.cq.wcm</groupId> <artifactId>cq-wcm-api</artifactId> <version>5.6.6</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.commons.json</artifactId> <version>2.0.6</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.day.cq</groupId> <artifactId>cq-commons</artifactId> <version>5.6.4</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.jcr.jcr-wrapper</artifactId> <version>2.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.day.cq</groupId> <artifactId>cq-commons</artifactId> <version>5.6.4</version> <scope>provided</scope> </dependency>
-
Open het POM- dossier voor de bundel van Ontdekkingsreiziger van het Project bij
MyLiveActionFactory-bundle/pom.xml
. -
Klik in de editor op de tab
pom.xml
en zoek de sectie project/afhankelijkheden. Voeg de volgende XML binnen het gebiedsdeelelement toe en bewaar dan het dossier:code language-xml <dependency> <groupId>com.day.cq.wcm</groupId> <artifactId>cq-msm-api</artifactId> </dependency> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.api</artifactId> </dependency> <dependency> <groupId>com.day.cq.wcm</groupId> <artifactId>cq-wcm-api</artifactId> </dependency> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.commons.json</artifactId> </dependency> <dependency> <groupId>com.day.cq</groupId> <artifactId>cq-commons</artifactId> </dependency> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.jcr.jcr-wrapper</artifactId> </dependency> <dependency> <groupId>com.day.cq</groupId> <artifactId>cq-commons</artifactId> </dependency>
LiveActionFactory implementeren implement-liveactionfactory
De volgende LiveActionFactory
-klasse implementeert een LiveAction
-klasse die berichten over de bron- en doelpagina's registreert, en kopieert de eigenschap cq:lastModifiedBy
van het bronknooppunt naar het doelknooppunt. De naam van de live actie is exampleLiveAction
.
-
In de Ontdekkingsreiziger van het Project Eclipse, klik het
MyLiveActionFactory-bundle/src/main/java/com.adobe.example.msm
pakket met de rechtermuisknop aan en klik Nieuw > Klasse. Voor de Naam, gaExampleLiveActionFactory
in en klik dan Afwerking. -
Open het
ExampleLiveActionFactory.java
-bestand, vervang de inhoud door de volgende code en sla het bestand op.code language-java package com.adobe.example.msm; import java.util.Collections; import com.day.cq.wcm.api.NameConstants; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceResolver; import org.apache.sling.api.resource.ValueMap; import org.apache.sling.api.wrappers.ValueMapDecorator; import org.apache.sling.commons.json.io.JSONWriter; import org.apache.sling.commons.json.JSONException; import org.osgi.service.component.annotations.Component; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.jcr.Node; import javax.jcr.RepositoryException; import javax.jcr.Session; import com.day.cq.wcm.msm.api.ActionConfig; import com.day.cq.wcm.msm.api.LiveAction; import com.day.cq.wcm.msm.api.LiveActionFactory; import com.day.cq.wcm.msm.api.LiveRelationship; import com.day.cq.wcm.api.WCMException; @Component( service = LiveActionFactory.class, property = {LiveActionFactory.LIVE_ACTION_NAME + "=" + ExampleLiveActionFactory.LIVE_ACTION_NAME}) public class ExampleLiveActionFactory implements LiveActionFactory<LiveAction> { private static final Logger logger = LoggerFactory.getLogger(ExampleLiveActionFactory.class); public static final String LIVE_ACTION_NAME = "CustomAction"; public LiveAction createAction(Resource config) { ValueMap configs; /* Adapt the config resource to a ValueMap */ if (config == null || config.adaptTo(ValueMap.class) == null) { configs = new ValueMapDecorator(Collections.<String, Object>emptyMap()); } else { configs = config.adaptTo(ValueMap.class); } return new ExampleLiveAction(LIVE_ACTION_NAME, configs); } public String createsAction() { return LIVE_ACTION_NAME; } /************* LiveAction ****************/ private static class ExampleLiveAction implements LiveAction { private String name; private ValueMap configs; private static final Logger log = LoggerFactory.getLogger(ExampleLiveAction.class); public ExampleLiveAction(String nm, ValueMap config){ name = nm; configs = config; } public void execute(Resource source, Resource target, LiveRelationship liverel, boolean autoSave, boolean isResetRollout) throws WCMException { String lastMod = null; log.info(" *** Executing ExampleLiveAction *** "); /* Determine if the LiveAction is configured to copy the cq:lastModifiedBy property */ if ((Boolean) configs.get("repLastModBy")){ /* get the source's cq:lastModifiedBy property */ if (source != null && source.adaptTo(Node.class) != null){ ValueMap sourcevm = source.adaptTo(ValueMap.class); lastMod = sourcevm.get(NameConstants.PN_PAGE_LAST_MOD_BY, String.class); } /* set the target node's la-lastModifiedBy property */ Session session = null; if (target != null && target.adaptTo(Node.class) != null){ ResourceResolver resolver = target.getResourceResolver(); session = resolver.adaptTo(javax.jcr.Session.class); Node targetNode; try{ targetNode=target.adaptTo(javax.jcr.Node.class); targetNode.setProperty("la-lastModifiedBy", lastMod); log.info(" *** Target node lastModifiedBy property updated: {} ***",lastMod); }catch(Exception e){ log.error(e.getMessage()); } } if(autoSave){ try { session.save(); } catch (Exception e) { try { session.refresh(true); } catch (RepositoryException e1) { e1.printStackTrace(); } e.printStackTrace(); } } } } public String getName() { return name; } /************* Deprecated *************/ @Deprecated public void execute(ResourceResolver arg0, LiveRelationship arg1, ActionConfig arg2, boolean arg3) throws WCMException { } @Deprecated public void execute(ResourceResolver arg0, LiveRelationship arg1, ActionConfig arg2, boolean arg3, boolean arg4) throws WCMException { } @Deprecated public String getParameterName() { return null; } @Deprecated public String[] getPropertiesNames() { return null; } @Deprecated public int getRank() { return 0; } @Deprecated public String getTitle() { return null; } @Deprecated public void write(JSONWriter arg0) throws JSONException { } }
-
Wijzig met de terminal- of opdrachtsessie de map in de map
MyLiveActionFactory
(de map Maven project). Voer vervolgens de volgende opdracht in:code language-shell mvn -PautoInstallPackage clean install
Het bestand AEM
error.log
moet aangeven dat de bundel is gestart.Bijvoorbeeld, https://localhost:4502/system/console/status-slinglogs.
code language-xml 13.08.2013 14:34:55.450 *INFO* [OsgiInstallerImpl] com.adobe.example.msm.MyLiveActionFactory-bundle BundleEvent RESOLVED 13.08.2013 14:34:55.451 *INFO* [OsgiInstallerImpl] com.adobe.example.msm.MyLiveActionFactory-bundle BundleEvent STARTING 13.08.2013 14:34:55.451 *INFO* [OsgiInstallerImpl] com.adobe.example.msm.MyLiveActionFactory-bundle BundleEvent STARTED 13.08.2013 14:34:55.453 *INFO* [OsgiInstallerImpl] com.adobe.example.msm.MyLiveActionFactory-bundle Service [com.adobe.example.msm.ExampleLiveActionFactory,2188] ServiceEvent REGISTERED 13.08.2013 14:34:55.454 *INFO* [OsgiInstallerImpl] org.apache.sling.audit.osgi.installer Started bundle com.adobe.example.msm.MyLiveActionFactory-bundle [316]
De voorbeeldconfiguratie voor rollout maken create-the-example-rollout-configuration
Creeer de MSM rollout configuratie die LiveActionFactory
gebruikt die u creeerde:
-
Creeer en configuratie a Configuratie van de Uitvoer met de standaardprocedure- en het gebruiken van de eigenschappen:
- Titel: De Configuratie van de Uitvoer van het voorbeeld
- Naam: examplerolloutconfig
- cq:trigger:
publish
Voeg de Actieve Actie aan de Configuratie van de Uitvoer van het Voorbeeld toe add-the-live-action-to-the-example-rollout-configuration
Vorm de rollout configuratie die u in de vorige procedure creeerde zodat het de ExampleLiveActionFactory
klasse gebruikt.
-
Open CRXDE Lite; bijvoorbeeld, https://localhost:4502/crx/de.
-
Maak het volgende knooppunt onder
/apps/msm/rolloutconfigs/examplerolloutconfig/jcr:content
:- Naam:
exampleLiveAction
- Type:
cq:LiveSyncAction
- Naam:
-
Klik sparen allen.
-
Selecteer het knooppunt
exampleLiveAction
en voeg de volgende eigenschap toe:- Naam:
repLastModBy
- Type:
Boolean
- Waarde:
true
Deze eigenschap geeft aan de klasse
ExampleLiveAction
aan dat de eigenschapcq:LastModifiedBy
moet worden gerepliceerd van de bron naar het doelknooppunt. - Naam:
-
Klik sparen allen.
Live kopie maken create-the-live-copy
creeer een levend exemplaarvan de Engelse/Producten tak van de Plaats van de Verwijzing Wij.Retail gebruikend uw rollout configuratie:
-
Source:
/content/we-retail/language-masters/en/products
-
Configuratie van de Uitvoer: De Configuratie van de Uitvoer van het voorbeeld
Activeer de Produkten (Engelse) pagina van de brontak en neem de logboekberichten waar die de LiveAction
klasse produceert:
16.08.2013 10:53:33.055 *INFO* [Thread-444535] com.adobe.example.msm.ExampleLiveActionFactory$ExampleLiveAction ***ExampleLiveAction has been executed.***
16.08.2013 10:53:33.055 *INFO* [Thread-444535] com.adobe.example.msm.ExampleLiveActionFactory$ExampleLiveAction ***Target node lastModifiedBy property updated: admin ***
Taalnamen en standaardlanden wijzigen changing-language-names-and-default-countries
AEM gebruikt een standaardset taal- en landcodes.
- De standaardtaalcode is de tweeletterige code in kleine letters, zoals gedefinieerd door ISO-639-1.
- De standaardlandcode is de tweelettercode in kleine letters of hoofdletters, zoals gedefinieerd in ISO 3166.
MSM gebruikt een opgeslagen lijst van taal en landcodes om de naam van het land te bepalen dat met de naam van de taalversie van uw pagina wordt geassocieerd. U kunt de volgende aspecten van de lijst indien nodig wijzigen:
- Taaltitels
- Landnamen
- Standaardlanden voor talen (bijvoorbeeld voor codes zoals
en
ende
)
De taallijst wordt opgeslagen onder het knooppunt /libs/wcm/core/resources/languages
. Elk onderliggend knooppunt vertegenwoordigt een taal of een taal-land:
-
De naam van het knooppunt is de taalcode (zoals
en
ofde
) of de taalcode (zoalsen_us
ofde_ch
). -
De eigenschap
language
van het knooppunt slaat de volledige naam van de taal voor de code op. -
In de eigenschap
country
van het knooppunt wordt de volledige naam van het land voor de code opgeslagen. -
Wanneer de knooppuntnaam alleen uit een taalcode bestaat (zoals
en
), is de landeigenschap*
en slaat een extradefaultCountry
-eigenschap de code van het taal-land op om het land aan te geven dat moet worden gebruikt.
De talen wijzigen:
-
Open CRXDE Lite in uw Webbrowser; bijvoorbeeld, https://localhost:4502/crx/de
-
Selecteer de
/apps
omslag en klik creeer, dan creeer Omslag.Geef de nieuwe map een naam
wcm
. -
Herhaal de vorige stap om de mappenstructuur
/apps/wcm/core
te maken. Maak een knooppunt van het typesling:Folder
incore
calledresources
. -
Klik de
/libs/wcm/core/resources/languages
knoop met de rechtermuisknop aan en klik Exemplaar. -
Klik met de rechtermuisknop op de
/apps/wcm/core/resources
map en klik op Plakken . Wijzig de onderliggende knooppunten naar wens. -
Klik sparen allen.
-
Klik Hulpmiddelen, Verrichtingen toen Console van het Web. Van deze console klik OSGi, toen Configuratie.
-
Bepaal de plaats en klik {de Manager van de Taal van 0} Dag CQ WCM , en verander de waarde van Lijst van de Taal aan
/apps/wcm/core/resources/languages
, dan klik sparen .{de Manager van de Taal van 0} Dag CQ WCM
MSM-vergrendelingen configureren op pagina-eigenschappen (interface met aanraakbediening) configuring-msm-locks-on-page-properties-touch-enabled-ui
Wanneer u een aangepaste pagina-eigenschap maakt, moet u mogelijk overwegen of de nieuwe eigenschap kan worden geïmplementeerd voor live kopieën.
Als bijvoorbeeld twee nieuwe pagina-eigenschappen worden toegevoegd:
-
E-mailadres contactpersoon:
- Deze eigenschap hoeft niet te worden uitgevoerd, omdat deze in elk land (of merk, enzovoort) anders zal zijn.
-
Belangrijke visuele stijl:
- Het projectvereiste is dat dit eigendom wordt uitgevoerd zoals het (gewoonlijk) voor alle landen (of merken, enzovoort) gemeenschappelijk is.
Daarna moet u ervoor zorgen dat:
-
E-mailadres contactpersoon:
-
Is uitgesloten van de opgerold uit eigenschappen; zie Uitsluitend Eigenschappen en de Types van Knoop van Synchronisatie.
-
Belangrijke visuele stijl:
-
Zorg ervoor dat u deze eigenschap niet mag bewerken in de interface met aanraakbediening, tenzij de overerving wordt geannuleerd, en dat u de overerving vervolgens opnieuw kunt installeren. Dit wordt geregeld door op de ketting-/verbroken-kettingkoppelingen te klikken die in- en uitschakelen om de status van de verbinding aan te geven.
Of een pagina-eigenschap moet worden geïmplementeerd en, afhankelijk van het annuleren/opnieuw installeren van overerving tijdens het bewerken, wordt dan gecontroleerd door de dialoogvenster-eigenschap:
-
cq-msm-lockable
-
is van toepassing op items in een interface-dialoogvenster met aanraakbediening
-
maakt het kettingkoppelingssymbool in het dialoogvenster
-
is alleen bewerken toegestaan als overerving is geannuleerd (de ketting-koppeling is verbroken)
-
alleen van toepassing op het eerste onderliggende niveau van de bron
-
Type:
String
-
Waarde: houdt de naam van het bezit in overweging (en is vergelijkbaar met de waarde van het bezit
name
; bijvoorbeeld, zie/libs/foundation/components/page/cq:dialog/content/items/tabs/items/basic/items/column/items/title/items/title
-
-
Wanneer cq-msm-lockable
is gedefinieerd, wordt de interactie tussen het verbreken en sluiten van de keten en MSM als volgt uitgevoerd:
-
als de waarde van
cq-msm-lockable
is:-
Relatief (bijvoorbeeld,
myProperty
of./myProperty
)- de eigenschap wordt toegevoegd en verwijderd uit
cq:propertyInheritanceCancelled
.
- de eigenschap wordt toegevoegd en verwijderd uit
-
Absolute (bijvoorbeeld,
/image
)-
Als u de keten breekt, wordt de overerving geannuleerd door de
cq:LiveSyncCancelled
mix toe te voegen aan./image
encq:isCancelledForChildren
in te stellen optrue
. -
als de keten wordt gesloten , wordt de overerving hersteld .
-
-
cq-msm-lockable
is van toepassing op het eerste onderliggende niveau van de bron die moet worden bewerkt en is niet functioneel op voorouders van een dieper niveau, ongeacht of de waarde als absoluut of relatief is gedefinieerd.