Modificar las funciones de comentarios, parte I
La propuesta es sencilla, que los comentarios de los blogs sean moderados, y que los comentarios de los foros no sean moderados, esto que parece una cosa sencilla y fácil de hacer resulta que no lo es tanto.
Vamos a ver los pasos que he llevado a cabo, como siempre cuando queremos tocar algo tenemos que ir a la documentación de Drupal, a mi me encanta usar la web de Toletum para consultar toda la documentación de Drupal.
Lo primero que hice fue en el módulo propio añadir lo siguiente para sacar toda la información del formulario de comentario.
<?php
**
* Implementation of hook_form_alter
*/
function mimodulo_form_alter ($form_id, $form_values){
drupal_set_message($form_id);
}?>Con este código metido en un módulo propio al navegar por Drupal nos va mostrando los form_id, que no son más que los nombres que tienen los formularios, con texto, no son numéricos. Una vez tenemos el $form_id añadidos la siguiente línea de código:
<?php
if ($form_id == 'comment_form'){
drupal_set_message (dprint_r($form_values, TRUE));
}
?>al hook_form_alter, nos quedaría tal que así:
<?php
/**
* Implementation of hook_form_alter
*/
function kiddiamodulo_form_alter ($form_id, $form_values){
drupal_set_message($form_id);
if ($form_id == 'comment_form'){
drupal_set_message (dprint_r($form_values, TRUE));
}
}
?>De esta manera, si tenemos activado el módulo Devel, y entramos como user 1, nos mostrará el array que compone el formulario.
En este caso el array del form_comment que nos devuelve Drupal es:
<pre>
Array
(
[_author] => Array
(
[#type] => item
[#title] => Tu nombre
[#value] => <a href="/limpio/?q=user/1" title="Ver el perfil de usuario.">admin</a>
)
[author] => Array
(
[#type] => value
[#value] => admin
)
[subject] => Array
(
[#type] => textfield
[#title] => Título
[#maxlength] => 64
[#default_value] =>
)
[comment_filter] => Array
(
[comment] => Array
(
[#type] => textarea
[#title] => Comentario
[#rows] => 15
[#default_value] =>
[#required] => 1
)
[format] => Array
(
[#type] => fieldset
[#title] => Formato de entrada
[#collapsible] => 1
[#collapsed] => 1
[#weight] =>
[#validate] => Array
(
[filter_form_validate] => Array
(
)
)
[1] => Array
(
[#type] => radio
[#title] => Filtered HTML
[#default_value] => 1
[#return_value] => 1
[#parents] => Array
(
[0] => format
)
[#description] => <ul class="tips"><li>Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.</li><li>Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd></li><li>Saltos automáticos de líneas y de párrafos.</li></ul>
)
[2] => Array
(
[#type] => radio
[#title] => PHP code
[#default_value] => 1
[#return_value] => 2
[#parents] => Array
(
[0] => format
)
[#description] => <ul class="tips"><li>Puede enviar código PHP. Debe incluir las etiquetas <?php ?>.</li></ul>
)
[3] => Array
(
[#type] => radio
[#title] => Full HTML
[#default_value] => 1
[#return_value] => 3
[#parents] => Array
(
[0] => format
)
[#description] => <ul class="tips"><li>Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.</li><li>Saltos automáticos de líneas y de párrafos.</li></ul>
)
[4] => Array
(
[#value] => <p><a href="/limpio/?q=filter/tips">Más información sobre opciones de formato</a></p>
)
)
)
[cid] => Array
(
[#type] => value
[#value] =>
)
[pid] => Array
(
[#type] => value
[#value] =>
)
[nid] => Array
(
[#type] => value
[#value] => 852
)
[uid] => Array
(
[#type] => value
[#value] =>
)
[preview] => Array
(
[#type] => button
[#value] => Vista previa del comentario
[#weight] => 19
)
[#token] => comment852
[submit] => Array
(
[#type] => submit
[#value] => Enviar comentario
[#weight] => 20
)
[#action] => /limpio/?q=comment/reply/852
[#parameters] => Array
(
[0] => comment_form
[1] => Array
(
[pid] =>
[nid] => 852
)
[2] => Responder
)
[#type] => form
[#post] => Array
(
[subject] => hola mundo
[comment] => hola mundo
[format] => 1
[form_token] => 547133cec0aa88165077a0315e55aacc
[form_id] => comment_form
[op] => Enviar comentario
)
[#programmed] =>
[form_token] => Array
(
[#type] => token
[#default_value] => 547133cec0aa88165077a0315e55aacc
)
[form_id] => Array
(
[#type] => hidden
[#value] => comment_form
[#id] => edit-comment-form
)
[#id] => comment-form
[#description] =>
[#attributes] => Array
(
)
[#required] =>
[#tree] =>
[#parents] => Array
(
)
[#method] => post
[#validate] => Array
(
[comment_form_validate] => Array
(
)
)
[#submit] => Array
(
[comment_form_submit] => Array
(
)
)
)siento la longitud del array.
Sigo en la siguiente entrada con la segunda parte.
Oskar
. Configuración y administración del sitio
Enviar un comentario nuevo