Estensione di Multi Site Manager extending-the-multi-site-manager
Questa pagina consente di estendere le funzionalità di Multi Site Manager:
- Scopri i membri principali dell’API Java MSM.
- Crea una nuova azione di sincronizzazione che può essere utilizzata in una configurazione di rollout.
- Modificare la lingua e i codici paese predefiniti.
-
Ristrutturazione dell’archivio siti nella AEM 6.4:
Panoramica dell’API Java overview-of-the-java-api
Multi Site Management è costituito dai seguenti pacchetti:
I principali oggetti API MSM interagiscono come segue (vedi anche Termini utilizzati):
-
Blueprint
ABlueprint(come in configurazione blueprint) specifica le pagine da cui una Live Copy può ereditare il contenuto.
-
L’utilizzo di una configurazione blueprint (
Blueprint) è facoltativo, ma:- Consente all’autore di utilizzare la funzione Rollout sull’origine (in modo esplicito) le modifiche push alle Live Copy che ereditano da questa origine).
- Consente all’autore di utilizzare Crea sito; questo consente all’utente di selezionare facilmente le lingue e configurare la struttura della Live Copy.
- Definisce la configurazione di rollout predefinita per tutte le Live Copy risultanti.
-
-
LiveRelationshipLaLiveRelationshipspecifica la connessione (relazione) tra una risorsa nel ramo Live Copy e la relativa risorsa sorgente/blueprint equivalente.- Le relazioni vengono utilizzate per la realizzazione dell’ereditarietà e del rollout.
LiveRelationshipGli oggetti forniscono l’accesso (riferimenti) alle configurazioni di rollout (RolloutConfig),LiveCopyeLiveStatusoggetti correlati alla relazione.- Ad esempio, viene creata una Live Copy in
/content/copy/usdalla sorgente/blueprint all'indirizzo/content/we-retail/language-masters. Risorse/content/we.retail/language-masters/en/jcr:contente/content/copy/us/en/jcr:contentcreare una relazione.
-
LiveCopycontiene i dettagli di configurazione delle relazioni (LiveRelationship) tra le risorse della Live Copy e le relative risorse sorgente/blueprint.- Utilizza la
LiveCopyclasse per accedere al percorso della pagina, al percorso della pagina sorgente/blueprint, alle configurazioni di rollout e se anche le pagine figlie sono incluse nelLiveCopy. - A
LiveCopyviene creato ogni volta Crea sito o Crea Live Copy viene utilizzato.
- Utilizza la
-
LiveStatusgli oggetti consentono di accedere allo stato di runtime di unLiveRelationship. Utilizza per eseguire una query sullo stato di sincronizzazione di una Live Copy. -
LiveActionè un’azione eseguita su ogni risorsa coinvolta nel rollout.- Le LiveActions sono generate solo da RolloutConfigs.
-
LiveActionFactorycreaLiveActionoggetti datiLiveActionconfigurazione. Le configurazioni vengono memorizzate come risorse nell’archivio. -
RolloutConfigcontiene un elenco diLiveActions, da utilizzare quando viene attivato. LaLiveCopyereditaRolloutConfige il risultato è presente nellaLiveRelationship.- L'impostazione di una Live Copy per la prima volta utilizza anche un RolloutConfig (che attiva le LiveActions).
Creazione di una nuova azione di sincronizzazione creating-a-new-synchronization-action
Crea azioni di sincronizzazione personalizzate da utilizzare con le configurazioni di rollout. Crea un'azione di sincronizzazione quando azioni installate non soddisfano i requisiti specifici dell'applicazione. Per eseguire questa operazione, creare due classi:
- L'attuazione
com.day.cq.wcm.msm.api.LiveActionche esegue l'azione. - Un componente OSGI che implementa il
com.day.cq.wcm.msm.api.LiveActionFactorye crea le istanze dellaLiveActionclasse.
La LiveActionFactory crea le istanze del LiveAction classe per una determinata configurazione:
-
LiveActionle classi includono i metodi seguenti:getName: Restituisce il nome dell'azione Il nome viene utilizzato per fare riferimento all'azione, ad esempio nelle configurazioni di rollout.execute: Esegue le attività dell'azione.
-
LiveActionFactoryle classi includono i seguenti membri:LIVE_ACTION_NAME: Campo contenente il nome dell'associatoLiveAction. Questo nome deve coincidere con il valore restituito dalgetNamemetodoLiveActionclasse.createAction: Crea un'istanza delLiveAction. L'opzioneResourcepuò essere utilizzato per fornire informazioni sulla configurazione.createsAction: Restituisce il nome dell'associatoLiveAction.
Accesso al nodo di configurazione LiveAction accessing-the-liveaction-configuration-node
Utilizza la LiveAction nodo di configurazione nell'archivio per memorizzare informazioni che influiscono sul comportamento di runtime del LiveAction istanza. Il nodo nell'archivio che memorizza il LiveAction la configurazione è disponibile per LiveActionFactory oggetto in fase di runtime. Pertanto, puoi aggiungere proprietà al nodo di configurazione a e utilizzarle nel tuo LiveActionFactory implementazione in base alle esigenze.
Ad esempio, un LiveAction deve memorizzare il nome dell’autore della blueprint. Una proprietà del nodo di configurazione include il nome della proprietà della pagina blueprint che memorizza le informazioni. In fase di esecuzione, il LiveAction recupera il nome della proprietà dalla configurazione, quindi ottiene il valore della proprietà.
Il parametro della LiveActionFactory.createAction è un metodo Resource oggetto. Questo Resource l'oggetto rappresenta cq:LiveSyncAction nodo per questa azione live nella configurazione di rollout; vedere Creazione di una configurazione di rollout. Come di consueto, quando utilizzi un nodo di configurazione, devi adattarlo a un ValueMap oggetto:
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);
}
Accesso ai nodi di Target, ai nodi sorgente e alla LiveRelationship accessing-target-nodes-source-nodes-and-the-liverelationship
I seguenti oggetti vengono forniti come parametri del execute metodo LiveAction oggetto:
-
A
Resourceche rappresenta l'origine della Live Copy. -
A
Resourceche rappresenta la destinazione della Live Copy. -
La
LiveRelationshipoggetto per la Live Copy. -
La
autoSaveil valore indica se ilLiveActiondevono salvare le modifiche apportate all’archivio. -
Il valore di reset indica la modalità di ripristino del rollout.
Da questi oggetti è possibile ottenere tutte le informazioni sui LiveCopy. È inoltre possibile utilizzare Resource oggetti da ottenere ResourceResolver, Sessione Node oggetti. Questi oggetti sono utili per manipolare il contenuto dell’archivio:
Nella prima riga del codice seguente, l'origine è il Resource oggetto della pagina di origine:
ResourceResolver resolver = source.getResourceResolver();
Session session = resolver.adaptTo(javax.jcr.Session.class);
Node sourcenode = source.adaptTo(javax.jcr.Node.class);
Resource argomenti null o Resources oggetti che non si adattano Node oggetti, quali NonExistingResource oggetti.Creazione di una nuova configurazione di rollout creating-a-new-rollout-configuration
Crea una configurazione di rollout quando le configurazioni di rollout installate non soddisfano i requisiti dell'applicazione:
La nuova configurazione di rollout è quindi disponibile quando imposti le configurazioni di rollout su una pagina blueprint o Live Copy.
Creare la configurazione di rollout create-the-rollout-configuration
Per creare una nuova configurazione di rollout:
-
CRXDE Lite aperto; ad esempio:
http://localhost:4502/crx/de -
Accedi a :
/apps/msm/<your-project>/rolloutconfigsnote note NOTE Questa è la versione personalizzata del progetto di: /libs/msm/wcm/rolloutconfigs
Deve essere creato se si tratta della prima configurazione.note note NOTE Non devi modificare nulla nel percorso /libs.
Questo perché il contenuto di /libs viene sovrascritto la prossima volta che aggiorni l'istanza (e potrebbe essere sovrascritto quando applichi un hotfix o un feature pack).
Il metodo consigliato per la configurazione e altre modifiche è:- Ricrea l'elemento richiesto (cioè come esiste in /libs) sotto /apps
- Apporta modifiche a /apps
-
Sotto questo Crea un nodo con le seguenti proprietà:
- Nome: Nome del nodo della configurazione di rollout. md#install-sync-actions), ad esempio
contentCopyoworkflow. - Tipo:
cq:RolloutConfig
- Nome: Nome del nodo della configurazione di rollout. md#install-sync-actions), ad esempio
-
Aggiungi le seguenti proprietà a questo nodo:
-
Nome:
jcr:titleTipo:
String
Valore: Titolo di identificazione che verrà visualizzato nell’interfaccia utente. -
Nome:
jcr:descriptionTipo:
String
Valore: Una descrizione facoltativa. -
Nome:
cq:triggerTipo:
String
Valore: La Attivatore di rollout da utilizzare. Seleziona da:rolloutmodificationpublishdeactivate
-
-
Fai clic su Salva tutto.
Aggiungere azioni di sincronizzazione alla configurazione del rollout add-synchronization-actions-to-the-rollout-configuration
Le configurazioni di rollout sono memorizzate sotto nodo di configurazione di rollout creato in /apps/msm/<your-project>/rolloutconfigs nodo.
Aggiungi nodi figlio di tipo cq:LiveSyncAction per aggiungere azioni di sincronizzazione alla configurazione di rollout. L’ordine dei nodi di azione di sincronizzazione determina l’ordine in cui si verificano le azioni.
-
Sempre in CRXDE Lite, seleziona la Configurazione del rollout nodo.
Ad esempio:
/apps/msm/myproject/rolloutconfigs/myrolloutconfig -
Crea un nodo con le seguenti proprietà del nodo:
- Nome: Nome del nodo dell'azione di sincronizzazione.
Il nome deve essere lo stesso del Nome azione nella tabella di cui Azioni di sincronizzazione, ad esempiocontentCopyoworkflow. - Tipo:
cq:LiveSyncAction
- Nome: Nome del nodo dell'azione di sincronizzazione.
-
Aggiungi e configura tutti i nodi di azione di sincronizzazione necessari. Ridisponi i nodi di azione in modo che il loro ordine corrisponda all’ordine in cui desideri che si verifichino. Il nodo di azione più in alto si verifica per primo.
-
Fai clic su Salva tutto.
Creazione e utilizzo di una semplice classe LiveActionFactory creating-and-using-a-simple-liveactionfactory-class
Segui le procedure descritte in questa sezione per sviluppare un LiveActionFactory e utilizzalo in una configurazione di rollout. Le procedure utilizzano Maven ed Eclipse per sviluppare e distribuire il LiveActionFactory:
- Crea il progetto Maven e importalo in Eclipse.
- Aggiungi dipendenze al file POM.
- Implementare
LiveActionFactoryinterfaccia e distribuire il bundle OSGi. - Creare la configurazione di rollout.
- Creare la Live Copy.
Il progetto Maven e il codice sorgente della classe Java sono disponibili nell’archivio Git pubblico.
CODICE SU GITHUB
Puoi trovare il codice di questa pagina su GitHub
- Apri il progetto experiencemanager-java-msmrollout su GitHub
- Scarica il progetto come un file ZIP
Crea progetto Maven create-the-maven-project
La procedura seguente richiede l’aggiunta del profilo adobe-public al file delle impostazioni Maven.
- Per informazioni sul profilo adobe-public, vedi Ottenimento del plug-in Maven del pacchetto di contenuti
- Per informazioni sul file delle impostazioni Maven, consulta la sezione Maven Riferimento impostazioni.
-
Apri un terminale o una sessione della riga di comando e modifica la directory in modo che punti alla posizione in cui creare il progetto.
-
Immetti il seguente comando:
code language-xml mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault -DarchetypeArtifactId=multimodule-content-package-archetype -DarchetypeVersion=1.0.0 -DarchetypeRepository=adobe-public-releases -
Al prompt interattivo, specifica i seguenti valori:
groupId:com.adobe.example.msmartifactId:MyLiveActionFactoryversion:1.0-SNAPSHOTpackage:MyPackageappsFolderName:myappartifactName:MyLiveActionFactory packagepackageGroup:myPackages
-
Avvia Eclipse e importare il progetto Maven.
Aggiungi dipendenze al file POM add-dependencies-to-the-pom-file
Aggiungi le dipendenze in modo che il compilatore Eclipse possa fare riferimento alle classi utilizzate nel LiveActionFactory codice.
-
In Esplora progetti Eclipse, apri il file:
MyLiveActionFactory/pom.xml -
Nell’editor, fai clic su
pom.xmle individua laproject/dependencyManagement/dependenciessezione . -
Aggiungi il seguente XML all’interno del
dependencyManagemente quindi salva il file.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> -
Apri il file POM per il bundle da Esplora progetti a
MyLiveActionFactory-bundle/pom.xml. -
Nell’editor, fai clic su
pom.xmle individua la sezione progetto/dipendenze . Aggiungi il seguente XML all’interno dell’elemento dipendenze, quindi salva il file: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>
Implementare LiveActionFactory implement-liveactionfactory
I seguenti LiveActionFactory la classe implementa un LiveAction che registra i messaggi relativi alle pagine di origine e di destinazione e copia il cq:lastModifiedBy dal nodo di origine al nodo di destinazione. Il nome dell’azione live è exampleLiveAction.
-
In Esplora progetti Eclipse, fai clic con il pulsante destro del mouse sul pulsante
MyLiveActionFactory-bundle/src/main/java/com.adobe.example.msmpacchetto e fai clic su Nuovo > Classe. Per Nome, inserisciExampleLiveActionFactoryquindi fai clic su Fine. -
Apri
ExampleLiveActionFactory.java, sostituisci il contenuto con il seguente codice e salva il file .code language-java package com.adobe.example.msm; import java.util.Collections; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Property; import org.apache.felix.scr.annotations.Service; 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.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(metatype = false) @Service public class ExampleLiveActionFactory implements LiveActionFactory<LiveAction> { @Property(value="exampleLiveAction") static final String actionname = LiveActionFactory.LIVE_ACTION_NAME; 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(actionname, configs); } public String createsAction() { return actionname; } /************* 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(com.day.cq.wcm.msm.api.MSMNameConstants.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 { } } } -
Utilizzando il terminale o la sessione di comando, cambiare la directory in
MyLiveActionFactorydirectory (la directory di progetto Maven). Quindi, immetti il comando seguente:code language-shell mvn -PautoInstallPackage clean installAEM
error.logIl file deve indicare che il bundle è avviato.Ad esempio: http://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]
Creare la configurazione di rollout di esempio create-the-example-rollout-configuration
Crea la configurazione di rollout MSM che utilizza il LiveActionFactory creato:
-
Creare e configurare un Configurazione del rollout con la procedura standard - e utilizzando le proprietà:
- Titolo: Esempio di configurazione del rollout
- Nome: examplerolloutconfig
- cq:trigger:
publish
Aggiungi l’azione live alla configurazione di rollout di esempio add-the-live-action-to-the-example-rollout-configuration
Configura la configurazione di rollout creata nella procedura precedente in modo che utilizzi ExampleLiveActionFactory classe.
-
CRXDE Lite aperto; ad esempio, http://localhost:4502/crx/de.
-
Crea il seguente nodo sotto
/apps/msm/rolloutconfigs/examplerolloutconfig/jcr:content:- Nome:
exampleLiveAction - Tipo:
cq:LiveSyncAction
- Nome:
-
Fai clic su Salva tutto.
-
Seleziona la
exampleLiveActione aggiungi la seguente proprietà:- Nome:
repLastModBy - Tipo:
Boolean - Valore:
true
Questa proprietà indica
ExampleLiveActionla classecq:LastModifiedByLa proprietà deve essere replicata dall'origine al nodo di destinazione. - Nome:
-
Fai clic su Salva tutto.
Creare la Live Copy create-the-live-copy
Creare una Live Copy della sezione Inglese/Prodotti del sito di riferimento We.Retail utilizzando la configurazione di rollout:
-
Origine:
/content/we-retail/language-masters/en/products -
Configurazione del rollout: Esempio di configurazione del rollout
Attiva la Prodotti (inglese) pagina del ramo di origine e osserva i messaggi di log che LiveAction la classe genera:
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 ***
Modifica dei nomi delle lingue e dei paesi predefiniti changing-language-names-and-default-countries
AEM utilizza un set predefinito di codici lingua e paese.
- Il codice della lingua predefinito è il codice a due lettere minuscolo come definito dallo standard ISO-639-1.
- Il codice del paese predefinito è il codice a due lettere minuscolo o superiore, come definito dalla norma ISO 3166.
MSM utilizza un elenco memorizzato di codici lingua e paese per determinare il nome del paese associato al nome della versione della lingua della pagina. Se necessario, è possibile modificare i seguenti aspetti dell’elenco:
- Titoli in lingua
- Nomi dei paesi
- Paesi predefiniti per le lingue (per codici quali
en,de, tra gli altri)
L'elenco delle lingue è memorizzato sotto la /libs/wcm/core/resources/languages nodo. Ogni nodo figlio rappresenta una lingua o un paese della lingua:
-
Il nome del nodo è il codice della lingua (ad esempio
enode) o il codice language_country (ad esempioen_usode_ch). -
La
languageLa proprietà del nodo memorizza il nome completo della lingua per il codice. -
La
countryLa proprietà del nodo memorizza il nome completo del paese per il codice. -
Quando il nome del nodo è costituito solo da un codice della lingua (ad esempio
en), la proprietà del paese è*, edefaultCountryla proprietà memorizza il codice del paese della lingua per indicare il paese da utilizzare.
Per modificare le lingue:
-
Apri CRXDE Lite nel browser Web; ad esempio, http://localhost:4502/crx/de
-
Seleziona la
/appse fai clic su Crea, quindi Crea cartella.Denomina la nuova cartella
wcm. -
Ripeti il passaggio precedente per creare il
/apps/wcm/corestruttura delle cartelle. Crea un nodo di tiposling:Foldernel nucleo chiamatoresources. -
Fai clic con il pulsante destro del mouse sul pulsante
/libs/wcm/core/resources/languagesnodo e fai clic su Copia. -
Fai clic con il pulsante destro del mouse sul pulsante
/apps/wcm/core/resourcese fai clic su Incolla. Modifica i nodi figlio come necessario. -
Fai clic su Salva tutto.
-
Fai clic su Strumenti, Operazioni then Console web. Da questa console fai clic su OSGi, quindi Configurazione.
-
Individua e fai clic su Gestione della lingua di CQ WCM Day e modifica il valore di Elenco lingua a
/apps/wcm/core/resources/languages, quindi fai clic su Salva.
Configurazione dei blocchi MSM nelle proprietà di pagina (interfaccia touch) configuring-msm-locks-on-page-properties-touch-enabled-ui
Quando crei una proprietà pagina personalizzata, potrebbe essere necessario considerare se la nuova proprietà deve essere idonea per il rollout in qualsiasi Live Copy.
Ad esempio, se vengono aggiunte due nuove proprietà di pagina:
-
E-mail di contatto:
- Questa proprietà non deve essere implementata, in quanto sarà diversa in ogni paese (o marchio, ecc.).
-
Stile visivo chiave:
- Il requisito del progetto è che questa proprietà deve essere implementata così come è (di solito) comune a tutti i paesi (o marchi, ecc.).
Poi devi assicurarti che:
-
E-mail di contatto:
- è escluso dalle proprietà di rollout; vedere Esclusione di proprietà e tipi di nodo dalla sincronizzazione.
-
Stile visivo chiave:
- Assicurati di non poter modificare questa proprietà nell’interfaccia touch a meno che l’ereditarietà non venga annullata e di poter quindi ripristinare l’ereditarietà; questa opzione è controllata facendo clic sui collegamenti a catena o a catena interrotta che si attivano per indicare lo stato della connessione.
Il fatto che una proprietà di pagina sia soggetta a rollout e, quindi, soggetta a annullamento/ripristino dell’ereditarietà durante la modifica, sia controllata dalla proprietà di dialogo:
-
cq-msm-lockable-
è applicabile agli elementi in una finestra di dialogo dell’interfaccia touch
-
crea il simbolo di collegamento a catena nella finestra di dialogo
-
consente la modifica solo se l’ereditarietà viene annullata (il collegamento a catena è interrotto)
-
si applica solo al primo livello figlio della risorsa
-
Tipo:
String -
Valore: contiene il nome dell'immobile considerato (ed è paragonabile al valore dell'immobile
name; ad esempio, vedi/libs/foundation/components/page/cq:dialog/content/items/tabs/items/basic/items/column/items/title/items/title
-
Quando cq-msm-lockable è stato definito, rompere/chiudere la catena interagisce con MSM nel modo seguente:
-
se il valore di
cq-msm-lockableè:-
Relativo (ad esempio
myPropertyo./myProperty)- aggiungerà e rimuoverà la proprietà da
cq:propertyInheritanceCancelled.
- aggiungerà e rimuoverà la proprietà da
-
Assoluto (ad esempio
/image)- l’interruzione della catena annullerà l’ereditarietà aggiungendo la
cq:LiveSyncCancelledmixin./imagee le impostazionicq:isCancelledForChildrenatrue. - la chiusura della catena ripristina l’ereditarietà.
- l’interruzione della catena annullerà l’ereditarietà aggiungendo la
-