a-blog cms PHP API Reference

FieldTrait

テンプレート出力固有の処理を担うトレイト。

Field の構造化(フィールドキーの分類・グループ展開・型自動変換・バリデーション結果の上乗せ) は Field 本体の toStructured() に委譲する。本トレイトの責務は次の 3 つに限る:

  1. メディア・リッチエディタ・ブロックエディタの注入(Template Service への依存)
  2. path フィールドの URL 解決 / html フィールドの絶対化(Common Service への依存)
  3. テンプレート側で元 Field を取り回すための takeover キー(acmsSerialize で保存)

これらは Field 本体に持ち込むと階層違反になるため、トレイト側に残す。

Table of Contents

Methods

buildFieldTrait()  : array<string|int, mixed>|null
フィールドを連想配列として組み立て
resolveTemplateUrlsTrait()  : array<string|int, mixed>
toStructured の出力に対し、path フィールドの URL 解決と html フィールドの 絶対化(テンプレート出力固有)を適用する。
resolveTemplateUrlsInGroupRowTrait()  : array<string|int, mixed>
グループ内の 1 行に含まれるマルチ項目(連想配列構造)に対して URL 解決を適用。
resolveTemplateUrlsInMultiEntryTrait()  : array<string|int, mixed>
マルチ項目フィールドエントリ('value'/'array' を持つ)に対して URL 解決を適用。

Methods

buildFieldTrait()

フィールドを連想配列として組み立て

protected buildFieldTrait(Field|Field_Validation $field[, string|null $scp = null ]) : array<string|int, mixed>|null
Parameters
$field : Field|Field_Validation
$scp : string|null = null

子フィールドとして再帰したときの名前(takeover キーの prefix に使う)

Return values
array<string|int, mixed>|null

フィールドが空の場合は null

resolveTemplateUrlsTrait()

toStructured の出力に対し、path フィールドの URL 解決と html フィールドの 絶対化(テンプレート出力固有)を適用する。

protected resolveTemplateUrlsTrait(array<string|int, mixed> $data, Field|Field_Validation $field) : array<string|int, mixed>
  • マルチ項目フィールド (['value' => {...}, 'array' => [...]]) の中の path / html
  • グループ内マルチ項目(連番キーの行配列の中の各 baseName)の path / html

単一値フィールドや、グループ内単一値フィールドには URL 解決を適用しない(旧挙動)。

Parameters
$data : array<string|int, mixed>
$field : Field|Field_Validation
Return values
array<string|int, mixed>

resolveTemplateUrlsInGroupRowTrait()

グループ内の 1 行に含まれるマルチ項目(連想配列構造)に対して URL 解決を適用。

private resolveTemplateUrlsInGroupRowTrait(array<string|int, mixed> $row, Field|Field_Validation $field) : array<string|int, mixed>

グループ内単一値は ['value' => x] の形なのでスキップ。 グループ内マルチ項目は ['alt' => x, 'path' => y, ...] の形。

Parameters
$row : array<string|int, mixed>
$field : Field|Field_Validation
Return values
array<string|int, mixed>

resolveTemplateUrlsInMultiEntryTrait()

マルチ項目フィールドエントリ('value'/'array' を持つ)に対して URL 解決を適用。

private resolveTemplateUrlsInMultiEntryTrait(array<string|int, mixed> $entry, string $baseName, Field|Field_Validation $field) : array<string|int, mixed>
Parameters
$entry : array<string|int, mixed>
$baseName : string
$field : Field|Field_Validation
Return values
array<string|int, mixed>

        
On this page

Search results