Plone
ONLYOFFICEとPloneの統合について
ONLYOFFICEは、ONLYOFFICE DocsをPloneと統合し、コンテンツ管理システム内でドキュメントを編集するための公式コネクタを提供しています。ONLYOFFICEコネクタはPyPi.orgおよびONLYOFFICEのGitHubページからダウンロードできます。このコネクタはApache-2.0ライセンスの下で配布されています。
主な機能
- テキストドキュメント、スプレッドシート、プレゼンテーションの作成、編集、表示。
- リアルタイムでの共同編集:2つの共同編集モード(高速と厳格)、変更履歴モード、コメント、内蔵チャット。
- JWTサポートにより、適切な権限を持つユーザー以外がドキュメントにアクセスできないようにトラフィックを保護します。
対応フォーマット
- 編集用:DOCX, XLSX, PPTX, DOCXF, OFORM
- 表示用:DJVU, DOC, DOCM, DOCX, DOCXF, DOT, DOTM, DOTX, EPUB, FB2, FODT, HTML, MHT, ODT, OTT, OXPS, PDF, RTF, TXT, XPS, XML, OFORM, CSV, FODS, ODS, OTS, XLS, XLSB, XLSM, XLSX, XLT, XLTM, XLTX, FODP, ODP, OTP, POT, POTM, POTX, PPS, PPSM, PPSX, PPT, PPTM, PPTX
- 変換用(ダウンロードとして):DOC, DOCM, DOCX, DOCXF, DOT, DOTM, DOTX, EPUB, FB2, FODT, HTML, MHT, ODT, OTT, OXPS, PDF, RTF, XPS, XML, OFORM, FODS, ODS, OTS, XLS, XLSB, XLSM, XLSX, XLT, XLTM, XLTX, FODP, ODP, OTP, POT, POTM, POTX, PPS, PPSM, PPSX, PPT, PPTM, PPTX
- Office Open XMLへの変換用:DOC, DOCM, DOCXF, DOT, DOTM, DOTX, EPUB, FB2, FODT, HTML, MHT, ODT, OTT, OXPS, PDF, RTF, XPS, XML, FODS, ODS, OTS, XLS, XLSB, XLSM, XLT, XLTM, XLTX, FODP, ODP, OTP, POT, POTM, POTX, PPS, PPSM, PPSX, PPT, PPTM
ONLYOFFICE DocsをPloneに接続する
要件
-
ONLYOFFICE Document Server v6.1(サーバーまたはクラウドバージョン)以降
Ploneおよび任意のエンドクライアントから解決可能で接続可能なONLYOFFICE Docsのインスタンスが必要です。それはPloneに直接POSTできる必要があります。
ONLYOFFICE Docsのインストールについて詳しくは、公式のドキュメントページをご覧ください。 - Python 3.4以降
- ONLYOFFICE統合プラグイン3.0.1以降のPlone用
Plone用ONLYOFFICE統合プラグインのインストール
onlyoffice.connectorのプラグインバージョン)がインストールされている場合は、新しいバージョンをインストールする前に削除してください。以前のバージョンをインストールする場合は、インストール手順に従う際にonlyoffice.ploneの代わりにonlyoffice.connectorを使用してください。Plone用ONLYOFFICE統合は標準のPloneアドオンとして配布されています。推奨されるインストール方法はBuildoutを使用することです。
-
プラグインをBuildoutに追加します。
Ploneインスタンスの
buildout.cfgファイルを開き、onlyoffice.ploneをeggsセクションに追加します:[buildout] ... eggs = onlyoffice.plone -
Buildoutを実行します。
コマンドラインから
buildoutを非スーパーユーザーとして実行して変更を適用します:sudo -u plone_buildout /plone/zinstance/bin/buildout -
Ploneインスタンスを再起動します。
新しくインストールされたアドオンを読み込むためにPloneインスタンスを再起動します:
sudo /plone/zinstance/bin/instance restart -
Ploneでアドオンを有効にします。
ブラウザでPloneサイトを開き、管理者としてログインし、プラグインを有効にします:
- サイト設定 > アドオンセクションに移動します。
- 利用可能なアドオンの中からonlyoffice.ploneを見つけます。
- インストールボタンを押して有効にします。
Plone用ONLYOFFICE統合プラグインの設定
プラグインを設定するには:
- サイト設定に移動します。
- アドオン設定セクションまでスクロールします。
- ONLYOFFICE設定ボタンを押します。
- ドキュメント編集サービスフィールドに、ONLYOFFICE Docsが配置されているURLアドレスを指定します。
このアドレスはPloneからアクセス可能である必要があり、PloneのアドレスもONLYOFFICE Docsからアクセス可能である必要があります。
- シークレットキーフィールドに、データを署名するために使用されるシークレットを指定します。
ONLYOFFICE Docsv7.2以降、JWTはデフォルトで有効になっており、シークレットキーは自動的に生成されます。Plone側でも有効にする必要があります:ONLYOFFICE Docs設定ファイルでシークレットキーを見つけ、コネクタ設定で同じシークレットキーを指定します。詳細については、この記事のONLYOFFICEとPloneの統合におけるJWTの有効化セクションをご覧ください。
- ドキュメント編集サービスからの内部リクエスト用サーバーアドレスフィールドに、Document Editing ServiceからPloneにアクセスするために使用されるアドレスを指定します。
- サーバーからの内部リクエスト用ドキュメント編集サービスアドレスフィールドに、PloneからDocument Editing Serviceにアクセスするために使用されるアドレスを指定します。


Plone ONLYOFFICEプラグインの開発
-
リポジトリをクローンし、ディレクトリを変更します:
git clone --branch deploy git@github.com:ONLYOFFICE/onlyoffice-plone.git cd onlyoffice-plone - パッケージ内にvirtualenvを作成します。
- pipで必要なものをインストールします。
- buildoutを実行します:
virtualenv . ./bin/pip install -r requirements.txt ./bin/buildout - Ploneをフォアグラウンドで開始します:
./bin/instance fg
動作するPloneインスタンスがある場合、プロジェクトファイルをscrディレクトリに追加することでプラグインをインストールできます:
- scrディレクトリにonlyoffice.ploneディレクトリを作成します。
- Gitで取得したプロジェクトファイルをonlyoffice.ploneディレクトリに入れます。
- buildout.cfgファイルを編集します:
[buildout] ... eggs = onlyoffice.plone develop = src/onlyoffice.plone -
変更を反映させるためにbuildoutを再実行します:
.bin/buildout - その後、Ploneインスタンスを開始または再起動します。
PloneはZopeサーバーに基づいており、rootユーザーとして実行することはできません。rootユーザーとして実行する場合は、effective-userディレクティブを指定する必要があります。これを行うために、./parts/instance/etc/zope.confにeffective-user
< username >
行を追加します。Plone ONLYOFFICE統合プラグインのアップグレード
- buildout.cfgファイルに正確なプラグインバージョンを指定している場合(いわゆるピンニングであり、推奨されるプラクティス)、この参照を新しいバージョンに更新します。プラグインバージョンが指定されていない場合は、最新バージョンが自動的に読み込まれます:
[versions] ... onlyoffice.plone = 1.0.1 - bin/buildoutを実行します。新しいバージョンがダウンロードされ、インストールされるまで待ちます。
- 次のステップを完了するまで、サイトが歪んで見えたり、アクセスできなくなることがあります。
- アドオン画面に移動し(サイトURLに/prefs_install_products_formを追加)、アップグレードリストでonlyoffice.ploneを選択し、onlyoffice.ploneをアップグレードをクリックします。
動作の仕組み
ONLYOFFICEの統合は、こちらに記載されているAPIに従います。
- ユーザーはPlone内のドキュメントに移動し、ONLYOFFICE Editアクションを選択します。
- Ploneは、以下のプロパティを持つDocument Server用のJSONオブジェクトを準備します:
- url:ONLYOFFICE Docsがドキュメントをダウンロードするために使用するURL;
- callbackUrl:ONLYOFFICE Docsがドキュメント編集のステータスを通知するURL;
- key:UUID+修正タイムスタンプで、ONLYOFFICE Docsがドキュメントを再ダウンロードするかどうかを指示する;
- title:ドキュメントのタイトル(名前)。
- Ploneは、これらの値を埋め込んでクライアントブラウザがエディターを読み込めるようにするために、.ptテンプレートからページを構築します。
- クライアントブラウザはONLYOFFICE DocsのJavaScriptライブラリにリクエストを送り、上記のプロパティを持つDocEditor構成をONLYOFFICE Docsに送信します。
- その後、ONLYOFFICE DocsはPloneからドキュメントをダウンロードし、ユーザーは編集を開始します。
- ONLYOFFICE Docsは、ユーザーがドキュメントを編集していることをPloneに通知するためにcallbackUrlにPOSTリクエストを送信します。
- すべてのユーザーとクライアントブラウザが編集を終了すると、編集ウィンドウを閉じます。
- 10秒の非アクティブ状態の後、ONLYOFFICE Docsはクライアントがドキュメントの編集を終了し、閉じたことをPloneに知らせるためにcallbackUrlにPOSTを送信します。
- Ploneはドキュメントの新しいバージョンをダウンロードし、古いものを置き換えます。
ONLYOFFICEとPloneの統合におけるJWTの有効化
ドキュメントを不正アクセスから保護するために、ONLYOFFICEエディターはJSON Web Token(JWT)を使用します。トークンは、ドキュメントエディターが初期化されるときや、内部ONLYOFFICE Docsサービス間でのコマンド交換時に構成に追加されます。シークレットキーはJSONウェブトークンを署名し、ONLYOFFICE Docsへのリクエスト時にトークンを検証するために使用されます。
ONLYOFFICE Docsv7.2以降、JWTはデフォルトで有効になっており、シークレットキーは自動的に生成されます。ONLYOFFICE Docs設定ファイルでシークレットキーを見つけ、コネクタ設定で同じシークレットキーを指定する必要があります。
ステップ1:ONLYOFFICE Docs設定ファイルでシークレットキーを見つける
-
任意のテキストエディターでlocal.jsonファイルを開きます。
- Linuxの場合 -
/etc/onlyoffice/documentserver/local.json - Windowsの場合 -
%ProgramFiles%\ONLYOFFICE\DocumentServer\config\local.json -
Dockerの場合 –
docker exec -it <containerID> bashコマンドを使用してONLYOFFICE Docsコンテナに入り、/etc/onlyoffice/documentserver/local.jsonを開きます。または、local.jsonを開かずにデフォルトのシークレットキーを見つけるために次のコマンドを使用できます:
sudo docker exec <containerID> /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'
local.jsonファイルは次のようになります:
{"services": {"CoAuthoring": {"token": {"enable": {"request": {"inbox": true,"outbox": true},"browser": true}},"secret": {"inbox": {"string": "yoursecret"},"outbox": {"string": "yoursecret"},"session": {"string": "yoursecret"}}}}} - Linuxの場合 -
true値は3つのセクションで指定されています。これはトークン検証が有効であることを意味します。services.CoAuthoring.token.enable.browserservices.CoAuthoring.token.enable.request.inboxservices.CoAuthoring.token.enable.request.outbox
-
自動生成されたシークレットキーは3つのセクションで指定されています。デフォルトのシークレット値を独自のシークレットキーに置き換えることができます。シークレットキーは3つのセクションで同じでなければなりません。
services.CoAuthoring.secret.inbox.stringservices.CoAuthoring.secret.outbox.stringservices.CoAuthoring.secret.session.string
-
変更を加えた場合は、それを保存し、設定変更が反映されるようにサービスを再起動します。
supervisorctl restart all
ステップ2:コネクタ設定で同じシークレットキーを指定する
コネクタ設定で、シークレットキーフィールドに同じシークレットを指定し、設定を保存します。
デモONLYOFFICE Docsへの接続
ONLYOFFICEコネクタバージョン3.0.0以降、Plone内でONLYOFFICE DocsをインストールせずにONLYOFFICEオンラインエディターを試すことができます。
接続をオンにするには、デモONLYOFFICE Document Serverに接続チェックボックスをクリックし、保存ボタンをクリックします。
Plone内でONLYOFFICE Docsを使い始める
ドキュメントを作成するには:
- コンテンツタブで、左側のONLYOFFICEで作成メニューオプションをクリックします。
-
必要なファイルタイプを選択します:ドキュメント、スプレッドシート、またはプレゼンテーション。


- 新しいドキュメントが編集用に開かれます。
ドキュメントを編集するには:
- コンテンツタブで必要なドキュメントを見つけます。


- ドキュメントをクリックします。
-
開かれたページで、ONLYOFFICE Editメニューオプションをクリックして、ドキュメントを編集および/または表示用に開きます。


ドキュメントをOffice Open XML形式に変換するには:
- コンテンツタブで必要なドキュメントを見つけます。
- ドキュメントをクリックします。
-
開かれたページで、ONLYOFFICEで変換メニューオプションをクリックします。

OOXMLに変換可能なフォーマットの完全なリストをご覧ください。 - 変換ボタンをクリックします。


フォームテンプレートを作成するには:
- コンテンツタブで、左側のONLYOFFICEで作成メニューオプションをクリックします。
- フォームテンプレートオプションを選択します。
- 新しい空のフォームテンプレートが編集用に開かれます。
フォームに記入するには:
- コンテンツタブで必要なフォームを見つけます。
- フォームをクリックします。
-
開かれたページで、ONLYOFFICEでフォームに記入メニューオプションをクリックします。


ドキュメントを異なる形式でダウンロードするには:
- コンテンツタブで必要なドキュメントを見つけます。
- ドキュメントをクリックします。
-
開かれたページで、アクションメニューオプションをクリックし、ダウンロードとしてメニュー項目を選択します。


- リストから必要な形式を選択します。
- ダウンロードボタンをクリックします。

