OSGiモジュールの作成とEditorConfigContributorクラスの構成
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。
AlloyEditorのツールバーにボタンを追加するには、まずサービスタイプ EditorConfigContributor.class
OSGiコンポーネントクラスを作成する必要があります。 以下の手順に従って、OSGiモジュールを作成および構成します。
-
[ ブレードのポートレットテンプレートを使用して、OSGiモジュール](/docs/7-1/tutorials/-/knowledge_base/t/starting-module-development#creating-a-module)作成します。
blade create -t portlet -p com.liferay.docs.my.button -c MyEditorConfigContributor my-new-button
-
ポートレットの
build.gradle
ファイルを開き、com.liferay.portal.kernel
バージョン
を3.6.2
更新します。 これは、Liferay DXPリリースにバンドルされているバージョンです。 -
ステップ1で作成したポートレットクラス(
MyEditorConfigContributor
)を開き、次のインポートを追加します。import com.liferay.portal.kernel.editor.configuration.BaseEditorConfigContributor; import com.liferay.portal.kernel.editor.configuration.EditorConfigContributor; import com.liferay.portal.kernel.json.JSONArray; import com.liferay.portal.kernel.json.JSONFactoryUtil; import com.liferay.portal.kernel.json.JSONObject; import com.liferay.portal.kernel.portlet.RequestBackedPortletURLFactory; import com.liferay.portal.kernel.theme.ThemeDisplay;
-
@Component
およびプロパティを以下のプロパティに置き換えます。@Component( immediate = true, property = { "editor.name=alloyeditor", "service.ranking:Integer=100" }, service = EditorConfigContributor.class )
これは、構成のAlloyEditorをターゲットとし、より高い サービスのランク提供することにより、デフォルトのサービスをオーバーライドします。 より具体的な構成を対象とする場合は、
EditorConfigContributor
インターフェースのJavadoc使用可能なプロパティを見つけることができます。 -
GenericPortlet
代わりにBaseEditorConfigContributor
拡張し` 。
AlloyEditorバンドルされている CKEditorプラグインの1つにボタンを追加する場合、以下のコードを追加して追加のプラグインを取得し、Aロイエディターの構成にプラグインを追加します。 以下の例は、 doView()` メソッドとコンテンツを、以下に示す `populateConfigJSONObject()` メソッドに置き換えます。
@Override
public void populateConfigJSONObject(
JSONObject jsonObject, Map<String, Object> inputEditorTaglibAttributes,
ThemeDisplay themeDisplay,
RequestBackedPortletURLFactory requestBackedPortletURLFactory) {
}
populateConfigJSONObject()
メソッド内で、AlloyEditorのツールバーを取得します。JSONObject toolbarsJSONObject = jsonObject.getJSONObject("toolbars");
if (toolbarsJSONObject == null) {
toolbarsJSONObject = JSONFactoryUtil.createJSONObject();
}
クリップボード
CKEditorプラグインを追加します。
String extraPlugins = jsonObject.getString("extraPlugins");
if (Validator.isNotNull(extraPlugins)) {
extraPlugins = extraPlugins + ",ae_uibridge,ae_autolink,
ae_buttonbridge,ae_menubridge,ae_panelmenubuttonbridge,ae_placeholder,
ae_richcombobridge,clipboard";
}
else {
extraPlugins = "ae_uibridge,ae_autolink,ae_buttonbridge,ae_menubridge,
ae_panelmenubuttonbridge,ae_placeholder,ae_richcombobridge,clipboard";
}
jsonObject.put("extraPlugins", extraPlugins);
AlloyEditorには、CKEditorのUIとAlloyEditorのUIの間のギャップを埋めるためのプラグインもいくつか付属しています。 これらには、上記の ae_
というプレフィックスが付いています。 互換性を確保するためにすべてを含めることをお勧めします。
* EditorConfigContributor
クラスが準備されています。 ここで、ボタンを追加するツールバーを選択する必要があります: 追加ツールバー または つのスタイルツールバー。