logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll
25/04/2020, by maria

Menu

次のメソッドをHelloBlockクラスに追加します。この例ではファイルsrc/Plugin/Block/HelloBlock.phpにありますが、よりOOP的な思考に慣れてくると、ファイル構造内の物理的な場所は名前空間ほど重要ではないことがわかります。 非常に賢いOOプログラマーであれば、これら2つを密接に連携させておくでしょう。しかし、念のため言うと、これは実際には名前空間であり、モジュールのフォルダー名や、このセクションで以前にモジュールについて議論したマシン名に非常に似ており、後でモジュールのコードとプログラム的にやり取りしたいときに重要になります。

  /**
   * {@inheritdoc}
   */
  public function blockSubmit($form, FormStateInterface $form_state) {
    $this->configuration['hello_block_name'] = $form_state->getValue('hello_block_name');
  }

フォーム要素の周りにfieldsetラッパーがある場合は、フィールド名だけを渡すのではなく、getValue()関数に配列を渡す必要があります。ここでmyfieldsetはhello_block_nameフィールドをラップするフィールドセットです。

$this->configuration['hello_block_name'] = $form_state->getValue(['myfieldset', 'hello_block_name']);

このコードを追加すると、フォームが処理され、フォームの入力データが他のブロックインスタンスとは独立して、このブロックインスタンスの設定に保存されます。ただし、ブロックはまだ設定変更の結果を使用していません。これは本の次のページで説明します。