drupal 8 – ¿Cómo hacer que el nombre del autor del comentario sea obligatorio para usuarios anónimos?

Pregunta:

Estoy tratando de hacer que el nombre del autor del comentario sea obligatorio con este código:

use Drupal\Core\Form\FormStateInterface;
/**
 * Implements hook_form_FORM_ID_alter().
 */
function MODULE_form_comment_comment_form_alter(array &$form, FormStateInterface $form_state, $form_id) {
  $form['name']['#required'] = true;
}

Pero no encuentro la manera de hacerlo. ¿Cómo hacer que el nombre del autor del comentario sea obligatorio para usuarios anónimos?

Respuesta:

Puedes probar:

if (\Drupal::currentUser()->isAnonymous()) {
  $form['author']['name']['#required'] = TRUE;
}

Es necesario porque no es correcto verificar si el usuario está autenticado verificando si el campo de nombre está prellenado.

Tenemos que usar el servicio \Drupal::currentUser() en el tema o archivo de módulo (en el controlador tienes que usar Drupal\Core\Session\AccountProxy ).

CurrentUser () Documentación

/**
 * Implements hook_form_FORM_ID_alter().
 */

function MODULE_form_comment_comment_form_alter(array &$form, FormStateInterface $form_state, $form_id) 
{
  if (\Drupal::currentUser()->isAnonymous()) {
    $form['author']['name']['#required'] = TRUE;
  }
  else {
    $form['author']['name']['#required'] = FALSE;
  }
}

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım