1718564515
2024-06-03 07:33:56
この記事は前回のシリーズの続きです。 TinyMCE 拡張機能今日は、ページのレンダリング時にカスタム値に置き換えられる動的フィールド (マクロ) を TinyMCE エディターに挿入できるアドオンについて説明したいと思います。
マクロサポート
上の画像では、ページがレンダリングされると、 %%%ユーザー名%%% フィールドはPrincipalAccessorからログインしたユーザー名に置き換えられます プリンシパル アクセサー?.プリンシパル?.アイデンティティ?.名前

同様の動作は、TinyMCE 内のブロックを使用して実現できます。ただし、ブロックは DIV 要素としてレンダリングされるため、動的な値をテキスト内にインラインでレンダリングすることが困難になります。
それに加えて、このプラグインはキャッシュを処理しないので、開発者が設定する必要があることにも言及する必要があります。
カスタムマクロの登録
サイトによってマクロの要件が異なる可能性があるため、デフォルトでは UserName 変数のみが登録されます。
しかし、プラグインは独自のマクロを登録する簡単な方法を提供します。必要なのは、 ITinyMceマクロ変数 インターフェースと実装フィールド:
| 名前 | 必須 | 説明 |
|---|---|---|
| 鍵 | はい | マクロ変数の一意の識別子。TinyMCE エディター内で変数として使用されます。 |
| 表示名 | いいえ | TinyMCE ツールバーのドロップダウンに表示されるテキスト。デフォルトではキーが使用されます。 |
| ランク | いいえ | マクロをソートするために使用されます。デフォルトでは 100 が使用されます。 |
| 値を取得 | はい | 表示モードで使用されるマクロ値を返す関数。 |
新しいマクロを登録するには、JavaScript コードは必要ありません。
例
たとえば、連絡先の電話番号に置き換えられる新しいマクロ変数を登録するとします。番号は StartPage に文字列プロパティとして保存されます。

今、私たちは創造しなければなりません TinyMcePhoneマクロ 実装するクラス ITinyMceマクロ変数 インターフェースを作成し、コンテナに登録します。 サービス構成 属性。
マクロの値を解決すると、StartPageを取得し、 お問い合わせ電話 財産。
パブリック クラス TinyMcePhoneMacro(IContentLoader contentLoader): ITinyMceMacroVariable { パブリック 文字列 Key => “CONTACT_PHONE”; パブリック 文字列 DisplayName => “連絡先の電話番号”; パブリック 文字列 GetValue() => contentLoader.Get
|
[ServiceConfiguration(typeof(ITinyMceMacroVariable))] 公共 クラス TinyMcePhoneマクロ(Iコンテンツローダー コンテンツローダー): ITinyMceマクロ変数 { 公共 弦 鍵 => 「CONTACT_PHONE」; 公共 弦 表示名 => 「連絡先電話番号」; 公共 弦 値を取得() => コンテンツローダー。得るスタートページ>(コンテンツ参照。スタートページ)。お問い合わせ電話; } |
これで完了です。変数は TinyMCE の使用可能なマクロのリストに自動的に登録され、エディターで使用できるようになります。

インストール
マクロサポートを有効にするには、以下を追加する必要があります TinyMceマクロ変数の追加 startup.csに
services.AddTinyMceEnhancements().AddTinyMceMacroVariables()
|
サービス。TinyMce の機能強化を追加()。TinyMceマクロ変数の追加() |
#ExtendedCms.TinyMceEnhancements #マクロのサポート #Grzegorz #Wiecheć