Ver y editar solo mis comentarios

Events happening in the community are now at Drupal community events on www.drupal.org.
Soy_programador's picture

Me gustaría que cada usuario solo pudiese ver y editar sus propios comentarios. Como si fuera por decirlo de alguna manera una especie de bloc de notas dentro de cada nodo.

Hará un mes aproximadamente escribí en el foro para restringir los usuarios a niveles y que solo entre esos niveles puedan ver sus comentarios. Ahora me ha surgido otra necesidad.

Me gustaría que cada usuario solo pudiese ver y editar sus propios comentarios. Como si fuera por decirlo de alguna manera una especie de bloc de notas dentro de cada nodo.

He estado mirando algunos módulos como "Field Permissions" y "Content Access" pero no hacen del todo lo que necesito.

Espero que como siempre me podáis ayudar.
Un saludo y gracias de antemano.

Comments

Con Views puedes hacer un

calbasi's picture

Con Views puedes hacer un bloque que muestre los comentarios de el usuario en cuestión... De tal manera que otro usurio no los verá, porqué verá los suyos o ninguno...

Deberás usar los filtros contextuales...

Web developer: www.calbasi.net

¿Y como se hace?

Soy_programador's picture

He estado buscando información y no encuentro nada. Tengo que poner en el filtro que si el usuario logeado es el mismo que ha puesto algún comentario los pueda ver, y si no que no vea nada.

Seguiré mirando, gracias por la pista

Implemente hook_query_alter

a_grizzli's picture

@Soy programador: Supongo que hablas de Drupal 7 en este post. Desgraciadamente no uso esta version. Pero conozco 6 y 8.

Es muy interesante que en Drupal 8 seguimos con los mismos problemas. Yo también quería hacer algo parecido a lo que quieras tu. Lo he logrado dando un rodeo.

Como @calbasi dijo, podrías hacerlo con los módulos 'panels' y 'views'. Con 'views' haz un bloque con la lista de comentarios. Ahí puedes filtrar los comentarios, así que tengan el mismo creador como el usuario logueado. Normalmente se lo hace con argumentos en views. Después utilizas 'panels' para poner ambos bloques en una página:

  • un bloque del contenido de node
  • y un bloque de comentarios desde 'views'

El problema es que te faltará un bloque para el formulario de comentarios. Al menos eso es que pasó a mí en Drupal 8.

Entonces en vez de todo de arriba, puedes implementar hook_query_alter y cambiar el query de la base de datos así, que filtre solamente los comentarios propios.

https://api.drupal.org/api/drupal/modules%21comment%21comment.module/fun...

<?php
/**
* Restringir la vista de comentarios solo a los propios.
* Modulo 'comment' establece la etiqueta 'comment_filter' en la funcion 'comment_get_thread'
* cuando crea las consultas, entonces aquí se lo puede filtrar
*
* Implementa hook_query_alter
* @param \Drupal\Core\Database\Query\AlterableInterface $query
*/
function mymodule_query_alter(QueryAlterableInterface $query) {
  global
$user;
  
  if(
$query->hasTag('comment_filter')) {
     
// Añade un filtro para excluir los comentarios de otros usuarios
     
$query->condition('c.uid', $user->uid);
  }
}
?>

Spain

Group organizers

Group categories

Región geográfica

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: