FunctionTagHandler
in
機能タグ(`<acms-block-editor-function-tag data-block-type="...">`)を 公開HTMLへ展開するハンドラ。
ブロックエディターは、エディターのスキーマに載せられない内容を持つブロックを このカスタム要素として保存する。保持する値は data-block-props に Base64 で 格納され、表示時にハンドラが実体のHTMLへ組み立て直す。
拡張アプリは自前のハンドラを実装し、ServiceProvider::init() などで
block-editor.function-tags レジストリへ登録することで、独自の機能ブロックを
追加できる。
Table of Contents
Methods
- getBlockType() : string
- 担当する data-block-type の値
- render() : string
- ブロックが保持する props から、公開HTMLへ差し込む文字列を組み立てる
Methods
getBlockType()
担当する data-block-type の値
public
getBlockType() : string
同じ値のハンドラを後から登録した場合は、後勝ちで置き換わる。
Return values
stringrender()
ブロックが保持する props から、公開HTMLへ差し込む文字列を組み立てる
public
render(array<string|int, mixed> $props[, array<string|int, mixed> $context = [] ]) : string
戻り値はHTML文字列として DOM パーサを経由せずそのまま公開HTMLへ差し戻される
(<script> の中身や @click のような属性名も加工されない)。空文字を返すと
タグごと取り除かれる。差し戻し後の文字列にも配信URL置換と filterBlockEditorHtml
フックは適用されるが、メディア画像/ファイルの書き換えなど DOM を対象とする整形は及ばない。
props は編集者が属性を直接書き換えられる位置にあるため、期待する構造で
ない場合でも例外を投げず、安全側の値を返すこと。
$context は fix() 呼び出し元が渡す文脈情報。現時点では次のキーを持つ。
- attributes: 機能タグ要素に付いた id / class(
['id' => string, 'class' => string]。 各キーは属性が存在し空でないときだけ入り、どちらも無ければ空配列)。値は実体参照を デコードした生の文字列なので、出力するハンドラ側で属性値としてエスケープすること $context を使わないハンドラや引数を省略した呼び出しでも従来どおり動く。 将来キーを足しても既存実装を壊さないよう、未知のキーは無視すること。
Parameters
- $props : array<string|int, mixed>
-
data-block-props をデコードした連想配列
- $context : array<string|int, mixed> = []
-
呼び出し元が渡す文脈情報