forum_form_node_form_alter(&$form, FormStateInterface $form_state, $form_id)
Implements hook_form_BASE_FORM_ID_alter() for \Drupal\node\NodeForm.
File
- core/modules/forum/forum.module, line 321
- Provides discussion forums.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | function forum_form_node_form_alter(& $form , FormStateInterface $form_state , $form_id ) { $node = $form_state ->getFormObject()->getEntity(); if (isset( $node ->taxonomy_forums) && ! $node ->isNew()) { $forum_terms = $node ->taxonomy_forums; // If editing, give option to leave shadows. $shadow = ( count ( $forum_terms ) > 1); $form [ 'shadow' ] = array ( '#type' => 'checkbox' , '#title' => t( 'Leave shadow copy' ), '#default_value' => $shadow , '#description' => t( 'If you move this topic, you can leave a link in the old forum to the new forum.' ), ); $form [ 'forum_tid' ] = array ( '#type' => 'value' , '#value' => $node ->forum_tid); } if (isset( $form [ 'taxonomy_forums' ])) { $widget = & $form [ 'taxonomy_forums' ][ 'widget' ]; // Make the vocabulary required for 'real' forum-nodes. $widget [ '#required' ] = TRUE; $widget [ '#multiple' ] = FALSE; if ( empty ( $widget [ '#default_value' ])) { // If there is no default forum already selected, try to get the forum // ID from the URL (e.g., if we are on a page like node/add/forum/2, we // expect "2" to be the ID of the forum that was requested). $requested_forum_id = \Drupal::request()->query->get( 'forum_id' ); $widget [ '#default_value' ] = is_numeric ( $requested_forum_id ) ? $requested_forum_id : '' ; } } } |
Please login to continue.