legacy-knowledge-base
公開されました Jul. 2, 2025

サイト間でフォーム、要素セット、データプロバイダーを共有するにはどうすればよいですか?

投稿者

Tímea Bihari

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

問題

  • 別のサイトにある既存のフォーム、要素セット、データプロバイダを再作成することなく使用したいのですが。 どのような選択肢があるのか?

Environment

  • Liferay DXP 7.1+

解決策

フォーム

オプション1: フォームは、 Global サイトから以下の方法で共有することができます:

  1. グローバルサイト(コンテンツ > フォーム)にフォームを作成する。
  2. 他のサイトへ移動する(例:Liferay DXP)
  3. Formsポートレットをページに配置する
  4. ポートレットの「設定」メニューに移動する
  5. スコープ」タブに移動する
  6. "グローバル "を選択する

結果 グローバルサイトで作成したフォームを表示することができるようになります。

オプション2: フォームのURLで表示する。

フォームを公開すると、LiferayからそのフォームにアクセスするためのURLが送られてきます(例えば、 http://localhost:8080/web/forms/shared/-/form/33755)。 そのリンクは、そのフォームが属するサイトを示すものではありません。 DXP 7.1、7.2、7.3が提供する一部のページタイプのターゲットリンクとして使用することができます:

  • URLへリンク
  • 埋め込み(「埋め込み」ページタイプはiframeを使用するため、ご注意ください。)

以下の手順で、これらの方法を試してみてください:

  1. サイト内に新しいページを作成する
  2. 埋め込み/URLへのリンク」タイプを選択する
  3. ページ名を付けて、「保存」をクリックします
  4. 次のウィンドウで、「URL」に「FormのURL」を入力します。

結果:

  • 埋め込み型」を選択した場合は、新しいページにフォームが表示されます。
  • URL へのリンク」タイプでは、新しいページに移動すると、ブラウザのタブにフォームが表示されます。

利点があります:

  • パーミッションシステムを活用することができます。
  • ページはナビゲーションメニューに追加でき、あたかも「ネイティブ」のようにサイト内に表示されます。

同時に、すべての回答はフォームに関連付けられ、したがって、そのフォームが存在するサイトに関連付けられることに注意してください。

要素セット


要素セットに関しては、残念ながらサイト間で共有することが現状では限界です。 この問題を回避するには、必要な要素セットを含む「テンプレートフォーム」をエクスポートし、別のサイトでインポートすることが考えられます。 この機能については、すでに機能要望が出されています。 このナレッジベースの記事の詳細を参照してください:フォームの要素セットをエクスポート/インポートするにはどうすればよいですか?

データプロバイダー


データプロバイダー は、グローバルサイトからも共有可能です。 グローバルスコープで作成したデータプロバイダを使用するオプションは、フォーム自体を作成する際に表示されます。 以下に例を示します。

  1. グローバルサイトにデータプロバイダを作成する
  2. 別サイトへの切り替え(例:Liferay DXP)
  3. コンテンツへ移動 > フォーム
  4. 新しいフォームを作成する
  5. フォームに「一覧から選択」フィールドを追加する
  6. フィールド構成で、「リスト作成メニュー」の下にある「データプロバイダーから」オプションを選択します

結果をご覧ください: データプロバイダーの選択」ドロップダウンに、グローバルサイトのデータプロバイダーが表示されることに注意してください。

追加情報

  • 機能要求のチケットが上がっています: LPS-79792 ポートレットのエクスポートで、ユーザーがエレメントセットをエクスポート/インポートできるようにしました。

did-this-article-resolve-your-issue

legacy-knowledge-base