Show Menu
ARGOMENTI×

Estensione di Multi Site Manager

Questa pagina consente di estendere le funzionalità di Multi Site Manager:
  • Informazioni sui membri principali dell'API Java MSM.
  • Create una nuova azione di sincronizzazione che possa essere utilizzata in una configurazione di rollout.
  • Rimuovere il passaggio "Capitoli" nella procedura guidata Crea sito.
  • Modificare la lingua e i codici paese predefiniti.
Questa pagina deve essere letta insieme a Riutilizzo del contenuto: Multi Site Manager .
Multi Site Manager e le relative API vengono utilizzate per la creazione di un sito Web, pertanto sono destinate solo all’utilizzo in un ambiente di authoring.

Panoramica dell'API Java

Multi Site Management è costituito dai pacchetti seguenti:
I principali oggetti API MSM interagiscono come segue (vedere anche Termini utilizzati ):
  • Blueprint Un Blueprint (come nella configurazione Configurazioni di origine, blueprint e Blueprint 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 l’opzione Rollout sull’origine (per (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 copie live risultanti.
  • LiveRelationship Specifica LiveRelationship la connessione (relazione) tra una risorsa nel ramo Live Copy e la risorsa sorgente/blueprint equivalente.
    • Le relazioni vengono utilizzate quando si realizza l'ereditarietà e il rollout.
    • LiveRelationship gli oggetti forniscono l'accesso (riferimenti) alle configurazioni di rollout ( RolloutConfig ) LiveCopy e LiveStatus agli oggetti correlati alla relazione.
    • Ad esempio, una Live Copy viene creata in /content/copy/us dalla sorgente o dal blueprint in /content/we-retail/language-masters . Le risorse /content/we.retail/language-masters/en/jcr:content e /content/copy/us/en/jcr:content formano una relazione.
  • LiveCopy contiene i dettagli di configurazione per le relazioni ( LiveRelationship ) tra le risorse Live Copy e le relative risorse di origine/blueprint.
    • Utilizzate la LiveCopy classe per accedere al percorso della pagina, al percorso della pagina di origine/blueprint, alle configurazioni di rollout e all'eventuale inclusione di pagine figlie nella LiveCopy .
    • Un LiveCopy nodo viene creato ogni volta che si utilizza Crea sito o Crea Live Copy .
  • LiveStatus forniscono l'accesso allo stato di runtime di un LiveRelationship . Consente di eseguire una query sullo stato di sincronizzazione di una Live Copy.
  • LiveAction è un'azione eseguita su ogni risorsa coinvolta nel rollout.
    • LiveActions vengono generati solo da RolloutConfigs.
  • LiveActionFactory crea LiveAction oggetti in base a una LiveAction configurazione. Le configurazioni sono memorizzate come risorse nella directory archivio.
  • RolloutConfig contiene un elenco di LiveActions , da utilizzare quando viene attivato. L' LiveCopy eredita il risultato RolloutConfig e il risultato è presente nell' LiveRelationship .
    • Quando si configura una copia dal vivo per la prima volta, viene utilizzato anche un RolloutConfig (che attiva le azioni LiveActions).

Creazione di una nuova azione di sincronizzazione

Create azioni di sincronizzazione personalizzate da utilizzare con le configurazioni di rollout. Create un'azione di sincronizzazione quando le azioni Azioni di sincronizzazione installate installate non soddisfano i requisiti specifici dell'applicazione. A tale scopo, creare due classi:
Crea LiveActionFactory le istanze della LiveAction classe per una determinata configurazione:
  • LiveAction le 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.
  • LiveActionFactory le classi includono i seguenti membri:
    • LIVE_ACTION_NAME : Campo che contiene il nome dell'associato LiveAction . Questo nome deve corrispondere al valore restituito dal getName metodo della LiveAction classe.
    • createAction : Crea un'istanza dell' LiveAction . Il Resource parametro opzionale può essere utilizzato per fornire informazioni sulla configurazione.
    • createsAction : Restituisce il nome del associato LiveAction .

Accesso al nodo di configurazione LiveAction

Utilizzate il nodo di LiveAction configurazione nell'archivio per memorizzare informazioni che influiscono sul comportamento di runtime dell' LiveAction istanza. Il nodo nell'archivio che memorizza la LiveAction configurazione è disponibile per l' LiveActionFactory oggetto in fase di esecuzione. Di conseguenza, puoi aggiungere proprietà al nodo di configurazione e utilizzarle nell' LiveActionFactory implementazione, se necessario.
Ad esempio, un utente LiveAction deve memorizzare il nome dell’autore della blueprint. Una proprietà del nodo di configurazione include il nome della proprietà della pagina di blueprint in cui sono memorizzate le informazioni. In fase di esecuzione, il LiveAction recupero del nome della proprietà dalla configurazione, quindi ottiene il valore della proprietà.
Il parametro del LiveActionFactory .createAction metodo è un Resource oggetto. Questo Resource oggetto rappresenta il cq:LiveSyncAction nodo per questa azione live nella configurazione rollout; consultate Creazione di una configurazione rollout. Come di consueto, quando si utilizza un nodo di configurazione è necessario 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 destinazione, ai nodi di origine e alla LiveRelationship

I seguenti oggetti sono forniti come parametri del execute metodo dell' LiveAction oggetto:
  • Un Resource oggetto che rappresenta l'origine della Live Copy.
  • Un Resource oggetto che rappresenta la destinazione di Live Copy.
  • L' LiveRelationship oggetto per la Live Copy.
  • Il autoSave valore indica se LiveAction salvare le modifiche apportate alla directory archivio.
  • Il valore reset indica la modalità di ripristino rollout.
Da questi oggetti è possibile ottenere tutte le informazioni sul LiveCopy . È inoltre possibile utilizzare gli Resource oggetti per ottenere ResourceResolver , Session e Node oggetti. Questi oggetti sono utili per manipolare il contenuto dell'archivio:
Nella prima riga del codice seguente, source è l' 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);

Gli Resource argomenti possono essere null o Resources oggetti che non si adattano agli Node oggetti, come NonExistingResource gli oggetti.

Creating a New Rollout Configuration

Create 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.
Consultate anche le best practice per la personalizzazione dei rollout.

Create the Rollout Configuration

  1. Aprite la console Strumenti nell’interfaccia classica; ad esempio, http://localhost:4502/miscadmin#/etc
    Nell’interfaccia touch standard potete passare alla console classica Strumenti dell’interfaccia utente utilizzando le voci della barra laterale Strumenti , Operazioni e quindi Configurazione .
  2. Nella struttura delle cartelle, selezionate la cartella Strumenti , MSM , Rollout Configurations .
  3. Fate clic su Nuovo , quindi su Nuova pagina per definire le proprietà di configurazione del rollout:
    • Titolo : Titolo della configurazione del rollout, ad esempio Configurazione del rollout personale
    • Nome : Nome del nodo che memorizza i valori delle proprietà, ad esempio myrolloutconfig
    • Selezionate Modello RolloutConfig.
  4. Fai clic su Crea .
  5. Fate doppio clic sulla configurazione di rollout creata per aprirla e configurarla ulteriormente.
  6. Fate clic su Modifica .
  7. Nella finestra di dialogo Rollout Config , selezionate Sincronizza attivatore ​per definire l’azione che causa il rollout.
  8. Fate clic su OK per salvare le modifiche.

Add Synchronization Actions to the Rollout Configuration

Le configurazioni del rollout sono memorizzate sotto il /etc/msm/rolloutconfigs nodo. Aggiungete nodi secondari di tipo cq:LiveSyncAction per aggiungere azioni di sincronizzazione alla configurazione del rollout. L'ordine dei nodi di azione della sincronizzazione determina l'ordine in cui si verificano le azioni.
  1. Aperto CRXDE Lite; ad esempio http://localhost:4502/crx/de
  2. Selezionare il jcr:content nodo sotto il nodo di configurazione rollout.
    Ad esempio, per la configurazione di rollout con la proprietà Name di myrolloutconfig , selezionare il nodo:
    /etc/msm/rolloutconfigs/myrolloutconfig/jcr:content
  3. Fai clic su Crea , quindi su Crea nodo . Quindi configurate le seguenti proprietà del nodo e fate clic su OK :
    • Nome : Nome del nodo dell’azione di sincronizzazione. Il nome deve corrispondere al nome dell’ azione nella tabella in Azioni di sincronizzazione, ad esempio contentCopy o workflow .
    • Tipo : cq:LiveSyncAction
  4. Seleziona il nodo di azione appena creato e aggiungi la seguente proprietà al nodo:
    • Nome : Nome della proprietà dell’azione. Il nome deve corrispondere al nome della proprietà nella tabella in Azioni di sincronizzazione, ad esempio enabled .
    • Tipo :Stringa
    • Valore : il valore della proprietà dell'azione. Per valori validi, vedere la colonna Proprietà in Azioni di sincronizzazione, ad esempio true .
  5. Aggiungi e configura tutti i nodi di azione di sincronizzazione richiesti. Ridisporre i nodi di azione in modo che l'ordine corrisponda all'ordine in cui si desidera che si verifichino. Il nodo di azione superiore si verifica per primo.
  6. Fate clic su Salva tutto .

Creazione e utilizzo di una semplice classe LiveActionFactory

Seguite le procedure riportate in questa sezione per sviluppare un LiveActionFactory e utilizzarlo in una configurazione di rollout. Le procedure utilizzano Maven ed Eclipse per sviluppare e distribuire LiveActionFactory :
  1. Create il progetto del cielo e importatelo in Eclipse.
  2. Implementate l’ e distribuite il bundle OSGi.
Il progetto Maven e il codice sorgente della classe Java sono disponibili nel repository Git pubblico.
CODICE SU GITHUB
Puoi trovare il codice di questa pagina su GitHub

Crea progetto Paradiso

La procedura seguente richiede l’aggiunta del profilo adobe-public al file delle impostazioni Maven.
  1. Aprite una sessione di terminale o riga di comando e cambiate la directory in modo che punti alla posizione in cui creare il progetto.
  2. Digitate il comando seguente:
    mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault -DarchetypeArtifactId=multimodule-content-package-archetype -DarchetypeVersion=1.0.0 -DarchetypeRepository=adobe-public-releases
    
    
  3. Al prompt interattivo, specificate i seguenti valori:
    • groupId : com.adobe.example.msm
    • artifactId : MyLiveActionFactory
    • version : 1.0-SNAPSHOT
    • package : MyPackage
    • appsFolderName : myapp
    • artifactName : MyLiveActionFactory package
    • packageGroup : myPackages
  4. Avviate Eclipse e importate il progetto Maven.

Aggiungere dipendenze al file POM

Aggiungete dipendenze in modo che il compilatore Eclipse possa fare riferimento alle classi utilizzate nel LiveActionFactory codice.
  1. In Esplora progetti Eclipse, apri il file:
    MyLiveActionFactory/pom.xml
  2. Nell’editor, fate clic sulla pom.xml scheda e individuate la project/dependencyManagement/dependencies sezione.
  3. Aggiungete il seguente codice XML all’interno dell’ dependencyManagement elemento e salvate il file.
     <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>
    
    
  4. Aprite il file POM per il bundle da Esplora progetti all'indirizzo MyLiveActionFactory-bundle/pom.xml .
  5. Nell’editor, fate clic sulla pom.xml scheda e individuate la sezione progetto/dipendenze. Aggiungete il seguente codice XML all’interno dell’elemento dipendenze, quindi salvate il file:
     <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>
    
    

Implementa LiveActionFactory

La LiveActionFactory classe seguente implementa un LiveAction che registra i messaggi sulle pagine di origine e di destinazione e copia la cq:lastModifiedBy proprietà dal nodo di origine al nodo di destinazione. Il nome dell'azione live è exampleLiveAction .
  1. In Esplora progetti Eclipse, fate clic con il pulsante destro del mouse sul MyLiveActionFactory-bundle/src/main/java/com.adobe.example.msm pacchetto e fate clic su Nuovo > Classe . Per Nome , immettere ExampleLiveActionFactory e fare clic su Fine .
  2. Aprite il ExampleLiveActionFactory.java file, sostituite il contenuto con il seguente codice e salvate il file.
    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.api.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 {
      }
     }
    }
    
    
  3. Utilizzando il terminale o la sessione di comando, cambiate la directory nella MyLiveActionFactory directory (la directory del progetto Maven). Quindi, digitate il comando seguente:
    mvn -PautoInstallPackage clean install
    
    
    Il file AEM error.log indica che il bundle è stato avviato.
    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]
    
    

Create the Example Rollout Configuration

Create la configurazione di rollout MSM che utilizza l' LiveActionFactory oggetto creato:
  1. Create e configurate una configurazione Rollout con la procedura standard e utilizzando le proprietà:
    1. Crea:
      1. Titolo : Esempio di configurazione del rollout
      2. Nome : examplerolloutconfig
      3. Utilizzo del modello RolloutConfig .
    2. Modifica:
      1. Trigger sincronizzazione: Attivazione

Aggiungere l'azione Live alla configurazione rollout di esempio

Configurate la configurazione di rollout creata nella procedura precedente in modo che utilizzi la ExampleLiveActionFactory classe.
  1. Aperto CRXDE Lite; ad esempio, http://localhost:4502/crx/de .
  2. Crea il nodo seguente sotto /etc/msm/rolloutconfigs/examplerolloutconfig/jcr:content :
    • Nome : exampleLiveAction
    • Tipo : cq:LiveSyncAction
  3. Fate clic su Salva tutto .
  4. Selezionare il exampleLiveAction nodo e aggiungere la proprietà seguente:
    • Nome : repLastModBy
    • Tipo : Boolean
    • Valore : true Questa proprietà indica alla ExampleLiveAction classe che la cq:LastModifiedBy proprietà deve essere replicata dal nodo di origine a quello di destinazione.
  5. Fate clic su Salva tutto .

Creare la Live Copy

Create una copia dal vivo della sezione inglese/prodotti del sito di riferimento We.Retail utilizzando la configurazione di rollout:
  • Origine : /content/we-retail/language-masters/en/products
  • Configurazione rollout: Esempio di configurazione del rollout
Attiva la pagina Prodotti (inglese) del ramo di origine e osserva i messaggi di registro generati dalla LiveAction classe:
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 ***

Rimozione del passaggio dei capitoli nella Creazione guidata sito

In alcuni casi, la selezione dei capitoli non è necessaria nella procedura guidata di creazione del sito (è necessaria solo la selezione delle lingue ). Per rimuovere questo passaggio nella blueprint inglese predefinita We.Retail:
  1. In CRX Explorer, rimuovere il nodo:
    /etc/blueprints/weretail-english/jcr:content/dialog/items/tabs/items/tab_chap .
  2. Passa a /libs/wcm/msm/templates/blueprint/defaults/livecopy_tab/items e crea un nuovo nodo:
    1. Nome = chapters ; Tipo = cq:Widget .
  3. Aggiungi le seguenti proprietà al nuovo nodo:
    1. Nome = name ; Tipo = String ; Value = msm:chapterPages
    2. Nome = value ; Tipo = String ; Value = all
    3. Nome = xtype ; Tipo = String ; Value = hidden

Modifica dei nomi delle lingue e dei paesi predefiniti

AEM utilizza un set predefinito di codici lingua e paese.
  • Il codice della lingua predefinita è il codice di due lettere minuscoli, come definito dallo standard ISO-639-1.
  • Il codice del paese predefinito è il codice di due lettere minuscolo o superiore, come definito dallo standard 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, potete modificare i seguenti aspetti dell’elenco:
  • Titolo lingua
  • Nomi paese
  • Paesi predefiniti per le lingue (per codici quali en , de ad esempio,
L'elenco delle lingue è memorizzato sotto il /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 en o de ) o il codice della lingua_paese (ad esempio en_us o de_ch ).
  • La language proprietà del nodo memorizza il nome completo della lingua per il codice.
  • La country proprietà del nodo memorizza il nome completo del paese per il codice.
  • Quando il nome del nodo è composto solo da un codice della lingua (ad esempio en ), la proprietà country è * , e una defaultCountry proprietà aggiuntiva memorizza il codice del paese della lingua per indicare il paese da utilizzare.
Per modificare le lingue:
  1. Aprite CRXDE Lite nel browser Web; ad esempio, http://localhost:4502/crx/de
  2. Selezionate la /apps cartella e fate clic su Crea , quindi su Crea cartella.
    Denominate la nuova cartella wcm .
  3. Ripetete il passaggio precedente per creare la struttura delle /apps/wcm/core cartelle. Create un nodo di tipo sling:Folder nel nucleo denominato resources .
  4. Fare clic con il pulsante destro del mouse sul /libs/wcm/core/resources/languages nodo e scegliere Copia .
  5. Fare clic con il pulsante destro del mouse sulla /apps/wcm/core/resources cartella e scegliere Incolla . Modificate i nodi secondari come necessario.
  6. Fate clic su Salva tutto .
  7. Fare clic su Strumenti , Operazioni , quindi su Console ​Web. In questa console fate clic su OSGi , quindi su Configuration .
  8. Individuare e fare clic su Gestione lingua CQ WCM Day e modificare il valore di Elenco ​lingue in /apps/wcm/core/resources/languages , quindi fare clic su Salva .

Configurazione di blocchi MSM sulle proprietà della pagina (interfaccia touch)

Durante la creazione di 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 è obbligatoria, in quanto sarà diversa in ogni paese (o marchio, ecc.).
  • Stile visivo chiave:
    • Il requisito del progetto è che questa proprietà venga implementata come (di solito) comune a tutti i paesi (o marchi, ecc.).
A questo punto è necessario assicurarsi che:
  • E-mail di contatto:
  • Stile visivo chiave:
    • Accertatevi di non poter modificare questa proprietà nell’interfaccia touch, a meno che l’ereditarietà non venga annullata, e di poter quindi ripristinare l’ereditarietà; questo è controllato facendo clic sui collegamenti a catena o a catena interrotta che vengono attivati per indicare lo stato della connessione.
Se una proprietà di pagina è soggetta al rollout e, di conseguenza, all’annullamento/ripristino dell’ereditarietà durante la modifica, è controllata dalla proprietà dialog:
  • cq-msm-lockable
    • è applicabile agli elementi in una finestra di dialogo dell’interfaccia touch
    • crea il simbolo di collegamento catena nella finestra di dialogo
    • consente la modifica solo se l'ereditarietà viene annullata (il collegamento a catena non funziona)
    • si applica solo al primo livello figlio della risorsa
    • Tipo : String
    • Valore : detiene il nome dell’immobile in questione (ed è paragonabile al valore dell’immobile name ; ad esempio, vedete
      /libs/foundation/components/page/cq:dialog/content/items/tabs/items/basic/items/column/items/title/items/title
Una volta cq-msm-lockable definita, l'interruzione/chiusura della catena interagisce con MSM nel modo seguente:
  • if the value of cq-msm-lockable is:
    • Relativo (ad esempio myProperty o ./myProperty )
      • aggiungerà e rimuoverà la proprietà da cq:propertyInheritanceCancelled .
    • Assoluto (ad esempio /image )
      • spezzando la catena si annullerà l'ereditarietà aggiungendo il cq:LiveSyncCancelled mixin ./image e impostando cq:isCancelledForChildren su true .
      • la chiusura della catena ripristina l'ereditarietà.
cq-msm-lockable si applica al primo livello figlio della risorsa da modificare e non funziona su antenati di livello più profondo, indipendentemente dal fatto che il valore sia definito come assoluto o relativo.
Quando riattivate l'ereditarietà, la proprietà Live Copy page non viene sincronizzata automaticamente con la proprietà source. Se necessario, potete richiedere manualmente una sincronizzazione.