Crear un comentario programando en Drupal 8

Crear un comentario en Drupal 8 puede parecer complicado dada la nueva estructura y manera de programar en Drupal 8. Pero es una tarea realmente sencilla. En Drupal 8 los comentarios son ahora entidades completas y ya no están limitados únicamente a los nodos, son independientes, lo cual hace los nuevos comentarios de Drupal 8 mucho mas flexibles.

Para crear un nuevo comentario, tenemos que crear una entidad de tipo comentario pasarle unos parametros, y guardarla, en este ejemplo vamos a rellenar únicamente los campos requeridos.

//Para crear una nueva entidad de comentario, debemos utilizar la clase “Comment”.
use Drupal\comment\Entity\Comment;
//El nombre de la funcion no importa, le pondremos que el queramos para luego llamarla.
function nombre_que_queramos() {
  $body = “Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam nec enim et massa venenatis posuere at id ante. Ut feugiat ultricies accumsan. Sed nec tincidunt tortor.”;

  //Primero creamos un array con los valores necesarios.
  $values = [
    // Estos valores sin para especificar la entidad en la cual vamos a crear el comentario.
    'entity_type' => 'node', // requerido.
    'entity_id' => 42, // requerido.
    'field_name' => 'comment', // requerido.
    // El Id del usuario que crea el comentario, 0 para el anonimo.
    'uid' => 0, // requerido.
    // Estos campos son para el comentario.
    'comment_type' => 'comment', // requerido.
    'subject' => 'Mi super comentario', // requerido.
    'comment_body' => $body, // opcional.
    // Indica si el comentario esta aprovado o no.
    'status' => 1, // opcional. Por defecto es cero 0.
  ];
  // Aquí creamos la entidad pasándole los valores que hemos definido arriba.
  $comment = Comment::create($values);
  // Almacenamos la entidad en la base de datos.
  $comment->save();
}

A continuación vamos a explicar cada valor que definimos.

  • - entity_type: El tipo de entidad al que vamos a adjuntar el comentario, si estamos creando un comentario para un nodo, debemos especificar “node”.
  • - entity_id: La id de la entidad a la que vamos a adjuntar el comentarios.
  • - field_name: El nombre que tiene el campos de la entidad de destino al cual se adjuntara el comentario. Esto es algo nuevo en Drupal 8, puedes tener diferentes tipos de comentarios en la misma entidad o en el mismo tipo de entidad (tipo de contenido para los nodos). Hay que colocar el “machine name” del campo de destino.

Después el campo uid, en el cual indicamos la id del usuario.

Los campos restantes son los siguientes:

  • - comment_type: El tipo de comentario que vamos a crear, este campo es como si especificáramos el tipo de contenido de un nodo, es necesario ya que ahora podemos tener diferentes tipos de comentarios en Drupal 8.
  • - subject: El asunto del comentario.
  • - comment_body: El campo que por defecto almacena el texto del comentario.
  • - status: El estado del comentario, 1 aprovado, 0 no aprovado. El valor por defecto es 0.

Y listo, con esto tenemos ya un comentario creado programándolo, es algo muy sencillo de hacer.

 

Total de votos: 26

Comentarios (0)

Deja un comentario