機械翻訳について

コンテンツ・ピッカー

Oracle Content Managementでは統合の2つのメカニズムがサポートされているため、ユーザーはコンテンツおよびアセットを参照して選択し、Oracle Content Managementに取り込むことができます。

コンテンツ・コネクタのコンテンツ・ピッカーは、共通のコンテンツ・ピッカーまたはカスタム・コンテンツ・ピッカーのいずれかになります:

  • 共通のコンテンツ・ピッカーは、Oracle Content Managementによって提供されます。

    汎用の共通ピッカーにより、Oracle Content Managementはコンテンツの閲覧と選択を構築するための基本的なフレームワークと機能を提供します。 これは、コネクタ・フレームワークSDKおよび定義されたAPIとシームレスに機能します。

  • カスタム・ピッカーは、コンテンツ・コネクタによって構築される必要があり、JSテクノロジを使用して構築できます。

    カスタム・ピッカーは、通常、コンテンツ・コネクタがリモート・ストアのコンテンツにアクセスするために独自のエクスペリエンスをビルドする場合に使用されます。 一部のストアには独自のネイティブ・ピッカーがあり、これは、コンテンツ・コネクタがアセット・リポジトリと統合するために再利用できます(Google Drive、Microsoft、OneDrive、Dropboxなど)。 また、コンテンツ・コネクタは、Oracle Content Managementで規定されている事前定義済インタフェースおよびコールバック・メカニズムに従って独自のピッカーUIを開発できます。

コンテンツ・コネクタが共通ピッカーを使用する場合、コネクタはサーバー実装でpickerTypeを定義する必要があります:

intradoc.connectorcommon.server.ServerResource implementation

serverInfo.pickerType = PickerType.COMMON;

コンテンツ・コネクタは、intradoc.connectorcommon.server.FilesystemResourceインタフェースも実装する必要があります。 実装は、filesystem REST実装で、次のガイドラインに従う必要があります:

  1. コンテンツ・コネクタは、fileSystemのレスポンス内の各フォルダに対して、uri, parentUri内に"fFolderGUID:"を追加する必要があります。

  2. 共通UIを問題なく動作させるために、FileSystemResourceに設定するすべてのフォルダおよびファイルにはいくつかのフィールドが必須です: uriparentUri、およびname parentUriが該当しない場合は、fFolderGUID:nullに設定できます。

  3. 返される結果セットのサイズを把握しておく必要があります。つまり、totalItemsCountを設定する必要があります。

共通UIの使用

コンテンツ・コネクタが共通ピッカーを使用している場合、eserverの実装でpickerTypeを定義する必要があります:

intradoc.connectorcommon.server.ServerResource implementation

serverInfo.pickerType = PickerType.COMMON;

コンテンツ・コネクタは、intradoc.connectorcommon.server.FilesystemResourceインタフェースも実装する必要があります。 実装は、filesystem REST実装で、次のガイドラインに従う必要があります:

  1. コンテンツ・コネクタは、fileSystemのレスポンス内の各フォルダに対して、uri, parentUri内に"fFolderGUID:"を追加する必要があります。

  2. 共通UIを問題なく動作させるために、FileSystemResourceに設定するすべてのフォルダおよびファイルにはいくつかのフィールドが必須です: uriparentUri、およびname parentUriが該当しない場合は、fFolderGUID:nullに設定できます。

  3. 返される結果セットのサイズを把握しておく必要があります。つまり、totalItemsCountを設定する必要があります。

共通UIはカスタマイズをサポートしており、このカスタマイズはコネクタ構成で定義できます。 次の表では、コネクタServerResource実装で渡すことができる追加設定について説明しています。

プロパティ 説明
hide_breadcrumbs

true

false (デフォルト)

ブレッドクラムを表示する、または非表示にするには
nextPrevPaginationEnabled

true

false (デフォルト)

ページ区切りのためのおよび前ボタンを含むページを表示するには

ページ区切りの番号を付ける場合は、このプロパティをtrueに設定しないでください。

CommonPickerShowVideoView

true

false (デフォルト)

各カードに次のアイテムが含まれるカード・レイアウトが表示されます:
  • ビデオ・リンク付きIframe
  • ビデオの摘要
  • チャネル名
CommonPickerShowImageView

true

false (デフォルト)

各カードに次のアイテムが含まれるカード・レイアウトが表示されます:
  • 次のタブで完全なイメージを開くためのリンク付きのイメージ・サムネイル
  • 写真のURL
  • イメージの名前
  • mimeType
show_termsOfUse

true

false (デフォルト)

用語および条件リンクを表示するには
termsOfUse_link 文字列

show_termsOfUseプロパティがtrueの場合、用語および条件のリンクはこのプロパティを使用して指定します。

show_privacyPolicy

true

false (デフォルト)

プライバシ・ポリシー・リンクを表示する手順
privacyPolicy_link 文字列

show_privacyPolicyプロパティがtrueの場合、プライバシ・ポリシーのリンクはこのプロパティを使用して指定されます。

show_view_action

true

false (デフォルト)

アイテムの選択時に表示アクションを表示するには
page_size

文字列

50 (default)

1ページのサイズ。 結果が特定のページ・サイズよりも大きい場合、結果はページ区切りになります。

設定はServerInfoに設定する必要のあるマップの形式になります。 次に例を示します:

    //Add UI Settings for the connector that will be read by the common 
picker 
    Map<String,Object> additionalSettingsMap = new HashMap<String,Object>(); 
    Map<String,String> uiSettingsMap = new HashMap<String,String>(); 
    uiSettingsMap.put("CommonPickerShowImageView", "true"); 
    uiSettingsMap.put("hide_breadcrumbs", "true"); 
    uiSettingsMap.put("show_termsOfUse","true"); 
    uiSettingsMap.put("show_privacyPolicy","true"); 
    uiSettingsMap.put("termsOfUse_link","https://unsplash.com/terms"); 
    uiSettingsMap.put("privacyPolicy_link","https://unsplash.com/privacy"); 
    uiSettingsMap.put("show_view_action","true"); 
    additionalSettingsMap.put("UISettings", uiSettingsMap); 
    serverInfo.addtionalSettings = additionalSettingsMap; 

結果のJSON構造は次のようになります:


    "addtionalSettings": { 
        "UISettings": { 
            "hide_breadcrumbs": "true", 
            "show_view_action": "true", 
            "CommonPickerShowImageView": "true", 
            "termsOfUse_link": "https://unsplash.com/terms", 
            "privacyPolicy_link": "https://unsplash.com/privacy", 
            "show_privacyPolicy": "true", 
            "show_termsOfUse": "true", 
            "page_size": "30" 
        } 
    } 

カスタムUIの使用

コンテンツ・コネクタは、そのピッカーのカスタムUIを実装できます。 これは、任意のJSテクノロジを使用して構築できます。 ただし、コネクタ構成の取得および選択の引渡しを行うには、Oracle Content Managementの事前定義されたメソッドを起動する必要があります。 カスタム・ピッカーは、独自のOKボタンおよび「取消」ボタンを公開するために構築でき、その場合は適切なハンドラを起動する必要があります。 ピッカーが独自のOKおよび「取消」ボタンを表示しない場合、Oracle Content Managementによってこれが提供されます。

pickerTypeは、サーバー実装でCUSTOMとして定義する必要があります:

intradoc.connectorcommon.server.ServerResource implementation

serverInfo.pickerType = PickerType.CUSTOM;

カスタム実装では、ライブラリに次のJSファイルを含める必要があります:

oracle-oce-custompicker.js

/*global window:true*/
(function() {
  'use strict';
 
  var name = window.name; // name set on iframe element to uniquely identify the instance
  var receiver = window.opener || window.parent;
  var origin = "*";
  function _postMessage(msg) {
    msg.name = name;
    receiver.postMessage(msg, origin);
  }
 
  var namespace = "OCE"; //todo: allow passing in data attribute
  if (!window[namespace]) {
    window[namespace] = {};
  }
  var OCE = window[namespace];
 
  if (!OCE.CustomPicker) {
 
    OCE.CustomPicker = {
 
      selection: [],
 
      addItem: function(id, name, type, size) {
        var item = {id: id, name: name, type: type, size: size};
        this.selection.push(item);
        this.onChange();
      },
 
      removeItem: function(id) {
        this.selection = this.selection.filter(function(item) {
          return item.id !== id;
        });
        this.onChange();
      },
 
      onInit: function(cbInit) {
        var msg = {
          message: 'init',
          needAuthToken: true
        };
        _postMessage(msg);
        this.messageListener = this.onPostMessage.bind(this);
        window.addEventListener('message', this.messageListener, false);
        this.cbInit = cbInit;
      },
 
      onClose: function() {
        window.removeEventListener('message', this.messageListener, false);
      },
 
      onPostMessage: function(event) {
        if (event.data && event.data.message === "init") {
          if (this.cbInit) {
            this.cbInit(event.data);
          }
        }
      },
 
      onChange: function() {
        var msg = {
          message: 'change',
          selection: this.selection
        };
        _postMessage(msg);
      },
 
      onOk: function(selection) {
        selection = selection || this.selection;
        var msg = {
          message: 'ok',
          selection: this.selection
        };
        _postMessage(msg);
      },
 
      onCancel: function() {
        var msg = {
          message: 'cancel'
        };
        _postMessage(msg);
      }
    };
  }
 
})();

このJSファイルは、コンテンツ・コネクタでパッケージ化する必要があります。

このライブラリは、JS postMessagingパラダイムに従って、情報を渡します。 次のメソッドが重要です。

onInit

カスタム・ピッカーは、初期化時にこのメソッドを起動する必要があります。 ここでは、カスタム・ピッカーがクライアントIDやアクセス・トークンなどのコネクタ構成情報を取得できます。 コネクタ構成(/rest/api/v1/server)で定義される属性は、このメソッドを介して渡されます。

OCE.CustomPicker.onInit(function(data) {
    {
        if (data != null) {
            self.clientId = data.ClientID;
 
            //If connector uses OAuth
            self.AccessToken = data.AccessToken;
             
            //If connector uses BASIC auth
            self.user = data.UserName;
            self.password = Base64.decode(data.UserPwd);
    }
 
        //Use client id and access token to fetch data from back end.
    }
})

onOk

カスタム・ピッカーが独自のOKボタンを公開する場合、このメソッドを起動してイベントをOracle Content Managementに渡す必要があります。

function pickerCallback(data) {
  if (data[google.picker.Response.ACTION] === google.picker.Action.PICKED) {
    data[google.picker.Response.DOCUMENTS].forEach(function(doc) {
      OCE.CustomPicker.addItem(doc.id, doc.name, "file", doc.sizeBytes);
    });
    OCE.CustomPicker.onOk();
  }
  else if (data[google.picker.Response.ACTION] === google.picker.Action.CANCEL) {
    OCE.CustomPicker.onCancel();
  }
}

onCancel

カスタム・ピッカーが独自の「取消」ボタンを公開している場合、このメソッドを起動して、前述のスニペットのOKボタンに対するonOkメソッドと同様に、イベントをOracle Content Managementに渡す必要があります。

addItem

このメソッドは、カスタム・ピッカーからOracle Content Managementに選択アイテムを渡すために、「リポジトリに追加」ダイアログで選択したアイテムのリストを表示するために起動する必要があります。 ここに渡されるIDは、アセット・リポジトリにアイテムを追加する際に/rest/api/v1/contentを使用してコンテンツをフェッチするために使用されます。

addImage(selectedImages: Image[]) {
    selectedImages.forEach(o => {
        var name = "PexelsImages_" + o.uri;
        OCE.CustomPicker.addItem(o.uri, name, o.thumbnail, o.size);
    });
}

removeItem

このメソッドは、カスタム・ピッカーからアイテムを選択解除したときに、Oracle Content Managementによって保守されるリストが最新になるように起動する必要があります。 最終的なリストは、「リポジトリに追加」ダイアログに表示されます。 ここで渡されるIDは、addItemコールで渡されたIDと同じです。
removeImage(image: Image) {
    OCE.CustomPicker.removeItem(image);
}

コネクタにカスタム・ピッカーをパッケージ化します。 コンテンツ・コネクタの登録中に、次の値を指定します:

  1. カスタム・ピッカーURL : http://host:port/pexels-picker/webなど(これは、コンテンツ・コネクタにパッケージ化されたカスタム・ピッカーです。)

  2. カスタム・ピッカーでは、独自のOKまたは取消ボタンが使用されます: 選択解除したままにします。 (これは、Oracle Content Managementでピッカーをダイアログに埋め込むことを示します。)

    カスタム・ピッカーで独自のOKボタンおよび「取消」ボタンを実装している場合は、これを選択します。