Отправление (Submit) конфигурационной формы блока
Добавьте следующий метод в класс HelloBlock. В этом примере он находится в файле src/Plugin/Block/HelloBlock.php, но, как вы начинаете думать в более ООП-режиме, где он физически расположен в файловой структуре, он менее важен, чем в пространстве имен. Если вы очень умный OO-программист, вы держите две вещи очень тесно выровненными. Но на всякий случай это фактически пространство имен, очень похожее на имя папки модуля и имя машины для нашего обсуждения модуля ранее в этом разделе, которое будет важно позже, когда вы захотите программно взаимодействовать с кодом вашего модуля.
/** * {@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']);
Добавление этого кода будет означать, что форма будет обрабатываться, и входные данные для формы будут сохранены в конфигурации для этого экземпляра блока, независимо от других экземпляров блока. Однако, блок все еще не использует результаты изменения конфигурации. Это на следующей странице книги.
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.