Как добавить настройки к блоку, созданному в стороннем модуле

Чтобы расширить блок настройками, нужно воспользоваться хуком hook_block_configure(), но это работает только для блоков, определённых в этом же модуле. Если же встаёт задача расширить настройками блок из стороннего модуля, то на помощь приходит hook_form_FORM_ID_alter().

Ниже, пример кода для добавления текстового поля к настройкам блока, созданному из Views:

/**
 * Implements hook_form_FORM_ID_alter()
 */
function mymodule_form_block_admin_configure_alter(&$form) {
  if ($form['module']['#value'] == 'views' && $form['delta']['#value'] == 'viewname-block_1') {
    $form['settings']['nids'] = array(
      '#type' => 'textfield',
      '#title' => 'Идетификаторы материалов',
      '#description' => 'Nid-ы материалов через запятую',
      '#default_value' => variable_get('mymodule_nids'),
    );
 
    $form['#submit'][] = 'mymodule_form_block_admin_configure_submit';
  }
}
 
/**
 * Custom submit callback for block_admin_configure form
 */
function mymodule_form_block_admin_configure_submit($form, $form_state) {
  variable_set('mymodule_nids', $form_state['values']['nids']);
}

Написанное актуально для
Drupal 7
Теги:
работа с блоками, работа с формами
Добавлено: 30 Июля 2018 07:31:03 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...