Show Menu
トピック×

Multi Site Manager の拡張

ここでは、Multi Site Manager の機能を拡張する方法について説明します。
  • MSM Java API の主な構成要素について学習します。
  • ロールアウト設定で使用できる、新しい同期アクションを作成します。
  • サイトを作成ウィザードで「章」ステップを削除します。
  • デフォルトの言語コードと国コードを変更します。
このページは、 コンテンツの再利用:Multi Site Manager と併せて読んでください。
Multi Site Manager とその API は Web サイトのオーサリング時に使用するものなので、オーサー環境での使用のみを目的としています。

Java API の概要

Multi Site Management は、以下のパッケージで構成されています。
主要な MSM API オブジェクトは、次のような関係にあります( 使用される用語 も参照してください)。
  • Blueprint
    A Blueprint (as in blueprint configuration ) specifies the pages from which a live copy can inherit content.
    • ブループリント設定( Blueprint )の使用は任意ですが、これを使用すると、
      • Allows the author to use the Rollout option on the source (to (explicitly) push modifications to live copies that inherit from this source).
      • 作成者が「 サイトを作成 」を使用できます(これにより、ユーザーが簡単に言語を選択し、ライブコピーの構造を設定できます)。
      • 作成されるすべてのライブコピーに対するデフォルトのロールアウト設定を定義できます。
  • LiveRelationship は、ラ LiveRelationship イブコピーブランチ内のリソースと同等のソース/ブループリントリソースとの間の接続(関係)を指定します。
    • この関係は、継承およびロールアウトの実現時に使用されます。
    • LiveRelationship オブジェクトは、ロールアウト設定()、関係に関連するオブジェクトへのアクセス( RolloutConfig 参照) LiveCopy を提 LiveStatus 供するオブジェクトです。
    • For example, a live copy is created in /content/copy/us from the source/blueprint at /content/we-retail/language-masters . リソースと /content/we.retail/language-masters/en/jcr:content 関係 /content/copy/us/en/jcr:content を形成します。
  • LiveCopy ライ LiveCopy ブコピーリソースとそのソース/ブループリントリ LiveRelationship ソース間の関係()の構成詳細を保持します。
    • Use the LiveCopy class to access to the path of the page, the path of the source/blueprint page, the rollout configurations and whether child pages are also included in the LiveCopy .
    • A LiveCopy node is created each time Create Site or Create Live Copy is used.
  • LiveStatus
    LiveStatus オブジェクトは、 LiveRelationship の実行時ステータスへのアクセスを可能にします。このオブジェクトを使用して、ライブコピーの同期ステータスを問い合わせます。
  • LiveAction
    LiveAction は、ロールアウトに含まれる各リソースに対して実行されるアクションです。
    • LiveAction は、RolloutConfig によってのみ生成されます。
  • LiveActionFactory
    Creates LiveAction objects given a LiveAction configuration. 設定は、リポジトリ内にリソースとして保存されます。
  • RolloutConfig は、ト RolloutConfig リガー時に使用さ LiveActions れるリストを保持します。 The LiveCopy inherits the RolloutConfig and the result is present in the LiveRelationship .
    • 初めてライブコピーを設定するときは、(LiveAction を呼び出す)RolloutConfig も使用します。

新しい同期アクションの作成

カスタム同期アクションを作成して、ロールアウト設定と併用します。 インストール済みのアクション が特定のアプリケーション要件を満たさない場合に同期アクションを作成します。同期アクションを作成するには、次の 2 つのクラスを作成します。
The LiveActionFactory creates instances of the LiveAction class for a given configuration:
  • LiveAction クラスには次のメソッドが含まれます。
    • getName :アクション名を返します。この名前は、ロールアウト設定などで、アクションを参照するために使用します。
    • execute :アクションのタスクを実行します。
  • LiveActionFactory クラスには次のメンバーが含まれます。
    • LIVE_ACTION_NAME :関連付けられたフィールドの名前が含まれま LiveAction す。 この名前は、 getName クラスの LiveAction メソッドが返す値と一致する必要があります。
    • createAction :のインスタンスを作成しま LiveAction す。 オプションの Resource パラメーターを使用して、設定情報を提供できます。
    • createsAction :関連付けられた名前を返しま LiveAction す。

LiveAction 設定ノードへのアクセス

リポジトリ内の LiveAction 設定ノードを使用して、 LiveAction インスタンスの実行時動作に影響を与える情報を保存します。 LiveAction 設定を保存するリポジトリ内のノードは、実行時に LiveActionFactory オブジェクトに使用できます。そのため、設定ノードにプロパティを追加し、必要に応じて LiveActionFactory 実装内で使用することができます。
例えば、 LiveAction にはブループリント作成者の名前を保存する必要があります。設定ノードのプロパティには、情報を保存するブループリントページのプロパティ名が含まれます。実行時、 LiveAction は設定からプロパティ名を取得して、そのプロパティ値を取得します。
The parameter of the [LiveActionFactory](https://helpx.adobe.com/experience-manager/6-5/sites/developing/using/reference-materials/javadoc/com/day/cq/wcm/msm/api/LiveActionFactory.html).createAction method is a Resource object. この Resource オブジェクトは、ロールアウト設定内のこのライブアクションの cq:LiveSyncAction ノードを表します。詳しくは ロールアウト設定の作成 を参照してください。通常どおり、設定ノードを使用する場合は、 ValueMap オブジェクトに適応させる必要があります。
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);
}

ターゲットノード、ソースノード、LiveRelationship へのアクセス

execute オブジェクトの LiveAction メソッドのパラメーターとして、以下のオブジェクトを指定します。
  • ライブコピーのソースを表す Resource オブジェクト。
  • ライブコピーのターゲットを表す Resource オブジェクト。
  • ライブコピーの LiveRelationship オブジェクト。
  • autoSave は、 LiveAction がリポジトリに対しておこなわれた変更を保存する必要があることを示します。
  • 値 reset は、ロールアウトのリセットモードを示します。
これらのオブジェクトから、 LiveCopy に関するすべての情報を取得できます。You can also use the Resource objects to obtain ResourceResolver , Session , and Node objects. これらのオブジェクトは、リポジトリコンテンツの操作に役立ちます。
以下のコードの先頭行で、source はソースページの Resource オブジェクトです。
ResourceResolver resolver = source.getResourceResolver();
Session session = resolver.adaptTo(javax.jcr.Session.class);
Node sourcenode = source.adaptTo(javax.jcr.Node.class);

The Resource arguments may be null or Resources objects that do not adapt to Node objects, such as NonExistingResource objects.

新しいロールアウト設定の作成

インストールされるロールアウト設定がアプリケーションの要件を満たさない場合は、ロールアウト設定を作成します。
ブループリントまたはライブコピーページでロールアウト設定を指定すると、新しいロールアウト設定が使用可能になります。

ロールアウト設定の作成

  1. Open the Tools console in the classic UI; for example, https://localhost:4502/miscadmin#/etc
    タッチ操作対応 UI では、レールエントリの​ ツール 運営 設定 ​からクラシック UI のツールコンソールに移動できます。
  2. フォルダーツリーで、 ツール MSM ロールアウト設定 ​フォルダーを選択します。
  3. 新規 」をクリックし、次に「 新しいページ 」をクリックしてロールアウト設定のプロパティを定義します。
    • タイトル : #など、ロールアウト設定のタイトル
    • 名前 :プロパティ値を格納するノードの名前(例:myrolloutconfig)
    • Select RolloutConfig Template .
  4. 作成 」をクリックします。
  5. 作成したロールアウト設定をダブルクリックして開き、追加の設定をおこないます。
  6. 編集 」をクリックします。
  7. In the Rollout Config dialog, select the Sync Trigger ​to define the action that causes the rollout to occur.
  8. OK 」をクリックして、変更を保存します。

ロールアウト設定への同期アクションの追加

Rollout configurations are stored below the /etc/msm/rolloutconfigs node. Add child nodes of type cq:LiveSyncAction to add synchronization actions to the rollout configuration. 同期アクションノードの順序によって、アクションが実行される順序が決まります。
  1. Open CRXDE Lite; for example https://localhost:4502/crx/de
  2. Select the jcr:content node below your rollout configuration node.
    例えば、 名前 ​プロパティが myrolloutconfig のロールアウト設定の場合は、次のノードを選択します。
    /etc/msm/rolloutconfigs/myrolloutconfig/jcr:content
  3. Click Create then Create Node . 次のノードプロパティを設定して、「 OK 」をクリックします。
    • 名前 :同期アクションのノード名。The name must be the same as the Action Name in the table under Synchronization Actions , for example contentCopy or workflow .
    • タイプ : cq:LiveSyncAction
  4. 作成したアクションノードを選択し、次のプロパティをノードに追加します。
    • 名前 :アクションのプロパティ名。 The name must be the same as the Property Name in the table under Synchronization Actions , for example enabled .
    • 種類 :string
    • :アクションのプロパティ値。 For valid values, see the Properties column in Synchronization Actions , for example true .
  5. 必要に応じてさらに同期アクションノードを追加して設定します。アクションノードを実行する順序に並べ替えます。一番上のアクションノードが最初に実行されます。
  6. すべて保存 」をクリックします。

シンプルな LiveActionFactory クラスの作成と使用

この節の手順を実行して LiveActionFactory を作成し、ロールアウト設定で使用します。この手順では、Maven と Eclipse を使用して、 LiveActionFactory を作成およびデプロイします。
  1. Maven プロジェクトを作成 し、Eclipse に読み込みます。
  2. POM ファイルに 依存関係を追加 します。
  3. LiveActionFactory OSGi バンドルをデプロイします。
MavenプロジェクトとJavaクラスのソースコードは、パブリックGitリポジトリで使用できます。
GitHub のコード
このページのコードは GitHub にあります

Maven プロジェクトの作成

以下の手順では、adobe-public プロファイルを Maven 設定ファイルに追加している必要があります。
  1. 端末またはコマンドラインセッションを開き、ディレクトリがプロジェクトを作成する場所を指すように変更します。
  2. 以下のコマンドを入力します。
    mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault -DarchetypeArtifactId=multimodule-content-package-archetype -DarchetypeVersion=1.0.0 -DarchetypeRepository=adobe-public-releases
    
    
  3. インタラクティブなプロンプトで、次の値を指定します。
    • groupId : com.adobe.example.msm
    • artifactId : MyLiveActionFactory
    • version : 1.0-SNAPSHOT
    • package : MyPackage
    • appsFolderName : myapp
    • artifactName : MyLiveActionFactory package
    • packageGroup : myPackages
  4. Eclipse を起動して、 Maven プロジェクトを読み込みます

POM ファイルへの依存関係の追加

LiveActionFactory コード内で使用されるクラスを Eclipse コンパイラーが参照できるようにするために、依存関係を追加します。
  1. Eclipse Project Explorer から次のファイルを開きます。
    MyLiveActionFactory/pom.xml
  2. In the editor, click the pom.xml tab and locate the project/dependencyManagement/dependencies section.
  3. 次の XML を dependencyManagement 要素内に追加して、ファイルを保存します。
     <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. Project Explorer から、バンドルの POM ファイル MyLiveActionFactory-bundle/pom.xml を開きます。
  5. エディターで、「 pom.xml 」タブをクリックし、project/dependencies セクションを探します。次の XML を dependencies 要素内に追加して、ファイルを保存します。
     <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 の実装

次の LiveActionFactory クラスは、ソースページとターゲットページに関するメッセージをログに記録し、ソースノードからターゲットノードに LiveAction プロパティをコピーする cq:lastModifiedBy を実装します。The name of the live action is exampleLiveAction .
  1. In the Eclipse Project Explorer, right-click the MyLiveActionFactory-bundle/src/main/java/com.adobe.example.msm package and click New > Class . 「 Name 」に「 ExampleLiveActionFactory 」と入力し、「 Finish 」をクリックします。
  2. ExampleLiveActionFactory.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.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. 端末またはコマンドセッションを使用して、ディレクトリを MyLiveActionFactory ディレクトリ(Maven プロジェクトディレクトリ)に変更します。以下のコマンドを入力します。
    mvn -PautoInstallPackage clean install
    
    
    AEM の error.log ファイルに、バンドルが開始されたことが記録されます。
    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]
    
    

ロールアウト設定例の作成

作成した LiveActionFactory を使用する MSM ロールアウト設定を作成します。
  1. 次のプロパティと 標準の手順を使用して、ロールアウト設定 を作成および設定します。
    1. 作成:
      1. タイトル :ロールアウト設定例
      2. 名前 : examplerolloutconfig
      3. RolloutConfig テンプレート ​を使用
    2. 編集:
      1. トリガーを同期 :アクティベート時

ロールアウト設定例へのライブアクションの追加

Configure the rollout configuration that you created in the previous procedure so that it uses the ExampleLiveActionFactory class.
  1. Open CRXDE Lite; for example, https://localhost:4502/crx/de .
  2. 次のノードを次の場所に作成しま /etc/msm/rolloutconfigs/examplerolloutconfig/jcr:content す。
    • 名前 : exampleLiveAction
    • タイプ : cq:LiveSyncAction
  3. すべて保存 」をクリックします。
  4. exampleLiveAction ノードを選択して、次のプロパティを追加します。
    • 名前 : repLastModBy
    • タイプ : Boolean
    • : true このプロパティは、 ExampleLiveAction プロパティをソースノードからターゲットノードにレプリケートする必要がある cq:LastModifiedBy クラスを示します。
  5. すべて保存 」をクリックします。

ライブコピーの作成

ロールアウト設定を使用して、We.Retail 参照サイトの English/Products ブランチの ライブコピーを作成 します。
  • ソース : /content/we-retail/language-masters/en/products
  • ロールアウト設定 :ロールアウト設定例
ソースブランチの Products (english)ページをアクティベートし、 LiveAction クラスが生成するログメッセージを監視します。
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 ***

サイトを作成ウィザードでの章ステップの削除

場合によっては、サイトを作成ウィザードで、「 」の選択は必要ありません(「 言語 」の選択は必要です)。デフォルトの We.Retail English ブループリントでこの手順を削除するには、以下の手順を実行します。
  1. CRXエクスプローラーで、ノードを削除します。 /etc/blueprints/weretail-english/jcr:content/dialog/items/tabs/items/tab_chap です。
  2. 新しいノー /libs/wcm/msm/templates/blueprint/defaults/livecopy_tab/items ドに移動し、作成します。
    1. Name = chapters ; Type = cq:Widget .
  3. 新しいノードに次のプロパティを追加します。
    1. Name = name ; Type = String ; Value = msm:chapterPages
    2. Name = value ; Type = String ; Value = all
    3. Name = xtype ; Type = String ; Value = hidden

言語名とデフォルトの国の変更

AEM では、言語コードと国コードのデフォルトセットを使用します。
  • デフォルトの言語コードは、ISO-639-1 で定義されている小文字 2 文字のコードです。
  • デフォルトの国コードは、ISO 3166 で定義されている小文字または大文字 2 文字のコードです。
MSM は、保存されている言語コードと国コードのリストを使用して、ページの言語バージョン名に関連付けられている国名を判断します。必要に応じて、リストの次の要素を変更できます。
  • 言語タイトル
  • 国名
  • Default countries for languges (for codes such as en , de , amongst others)
The language list is stored below the /libs/wcm/core/resources/languages node. 各子ノードは、言語または言語-国を表します。
  • The name of the node is the languge code (such as en or de ), or the language_country code (such as en_us or de_ch ).
  • ノードの language プロパティには、そのコードが表す言語の正式名称が格納されます。
  • ノードの country プロパティには、そのコードが表す国の正式名称が格納されます。
  • When the node name consists only of a language code (such as en ), the country property is * , and an additional defaultCountry property stores the code of the language-country to indicate the country to use.
言語の変更手順
  1. Open CRXDE Lite in your web browser; for example, https://localhost:4502/crx/de
  2. Select the /apps folder and click Create , then Create Folder.
    Name the new folder wcm .
  3. Repeat the previous step to create the /apps/wcm/core folder tree. Create a node of type sling:Folder in core called resources .
  4. Right-click the /libs/wcm/core/resources/languages node and click Copy .
  5. Right-click the /apps/wcm/core/resources folder and click Paste . 必要に応じて子ノードを変更します。
  6. すべて保存 」をクリックします。
  7. ツール 操作 Web コンソール ​の順にクリックします。このコンソールから「 OSGi 」をクリックし、次に「 設定 」をクリックします。
  8. Locate and click Day CQ WCM Language Manager , and change the value of Language List to /apps/wcm/core/resources/languages , then click Save .

Configuring MSM Locks on Page Properties (Touch-Enabled UI)

カスタムページプロパティの作成時に、新しいプロパティをすべてのライブコピーへのロールアウトの対象にするかどうかを検討しなければならない場合があります。
例えば、次の 2 つのページプロパティを追加する場合は、
  • 連絡先電子メール:
    • このプロパティは国(またはブランドなど)によって異なるので、ロールアウトする必要はありません。
  • キービジュアルのスタイル:
    • プロジェクトの要件としては、このプロパティは(通常は)すべての国(またはブランドなど)に共通なので、ロールアウトする必要があります。
次のことを保証する必要があります。
  • 連絡先電子メール:
  • キービジュアルのスタイル:
    • 継承がキャンセルされている場合以外はタッチ操作対応 UI でこのプロパティを編集できないようにし、さらに継承を回復できるようにします。継承を制御するには、関連付けの状態をトグル切り替えするチェーンリンクまたはチェーン解除リンクをクリックします。
ページプロパティをロールアウトの対象にするかどうか(したがって編集時に継承をキャンセルまたは復元するかどうか)は、次のダイアログプロパティで制御されます。
  • cq-msm-lockable
    • タッチ操作対応 UI ダイアログの項目に適用されます。
    • ダイアログ内にチェーンリンクシンボルを作成します。
    • 継承がキャンセルされている(チェーンリンクが解除されている)場合は、編集のみ可能です。
    • リソースの最初の子レベルにのみ適用されます
    • タイプ : String
    • :は、検討中のプロパティの名前を保持します(かつ、そのプロパティの値に匹敵しま name す。例えば、 /libs/foundation/components/page/cq:dialog/content/items/tabs/items/basic/items/column/items/title/items/title
cq-msm-lockable が定義されている場合は、次の方法でチェーンの解除またはクローズを MSM と連携できます。
  • if the value of cq-msm-lockable is:
    • 相対 (例:ま myProperty ./myProperty )
      • it will add and remove the property from cq:propertyInheritanceCancelled .
    • 絶対 (例: /image )
      • breaking the chain will cancel inheritance by adding the cq:LiveSyncCancelled mixin to ./image and setting cq:isCancelledForChildren to true .
      • チェーンを閉じると、継承が元に戻ります。
cq-msm-lockable 編集するリソースの最初の子レベルに適用され、値が絶対値または相対値として定義されている場合でも、より深いレベルの親要素では機能しません。
継承を再度有効にしても、ライブコピーページのプロパティはソースのプロパティとは自動的には同期されません。必要な場合は、手動で同期をリクエストできます。