Index: modules/comment/comment.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.admin.inc,v
retrieving revision 1.31
diff -u -p -r1.31 comment.admin.inc
--- modules/comment/comment.admin.inc 25 Aug 2009 10:27:14 -0000 1.31
+++ modules/comment/comment.admin.inc 5 Sep 2009 12:41:23 -0000
@@ -59,7 +59,6 @@ function comment_admin_overview($type =
// Load the comments that need to be displayed.
$status = ($arg == 'approval') ? COMMENT_NOT_PUBLISHED : COMMENT_PUBLISHED;
$header = array(
- 'subject' => array('data' => t('Subject'), 'field' => 'subject'),
'author' => array('data' => t('Author'), 'field' => 'name'),
'posted_in' => array('data' => t('Posted in'), 'field' => 'node_title'),
'time' => array('data' => t('Time'), 'field' => 'timestamp', 'sort' => 'desc'),
@@ -72,7 +71,7 @@ function comment_admin_overview($type =
$query->addField('u', 'name', 'registered_name');
$query->addField('n', 'title', 'node_title');
$result = $query
- ->fields('c', array('subject', 'nid', 'cid', 'comment', 'timestamp', 'status', 'name', 'homepage'))
+ ->fields('c', array('nid', 'cid', 'timestamp', 'status', 'name', 'homepage'))
->fields('u', array('uid'))
->condition('c.status', $status)
->limit(50)
@@ -86,9 +85,8 @@ function comment_admin_overview($type =
foreach ($result as $comment) {
$options[$comment->cid] = array(
- 'subject' => l($comment->subject, 'comment/' . $comment->cid, array('attributes' => array('title' => truncate_utf8($comment->comment, 128)), 'fragment' => 'comment-' . $comment->cid)),
'author' => theme('username', $comment),
- 'posted_in' => l($comment->node_title, 'node/' . $comment->nid),
+ 'posted_in' => l($comment->node_title, 'comment/' . $comment->cid, array('fragment' => 'comment-' . $comment->cid)),
'time' => format_date($comment->timestamp, 'short'),
'operations' => l(t('edit'), 'comment/edit/' . $comment->cid, array('query' => $destination)),
);
@@ -140,7 +138,7 @@ function comment_admin_overview_submit($
// Allow modules to respond to the updating of a comment.
module_invoke_all('comment_' . $form_state['values']['operation'], $comment);
// Add an entry to the watchdog log.
- watchdog('content', 'Comment: updated %subject.', array('%subject' => $comment->subject), WATCHDOG_NOTICE, l(t('view'), 'node/' . $comment->nid, array('fragment' => 'comment-' . $comment->cid)));
+ watchdog('content', 'Comment: updated %cid.', array('%cid' => $comment->cid), WATCHDOG_NOTICE, l(t('view'), 'node/' . $comment->nid, array('fragment' => 'comment-' . $comment->cid)));
}
}
cache_clear_all();
@@ -172,8 +170,7 @@ function comment_multiple_delete_confirm
foreach (array_filter($edit['comments']) as $cid => $value) {
$comment = comment_load($cid);
if (is_object($comment) && is_numeric($comment->cid)) {
- $subject = db_query('SELECT subject FROM {comment} WHERE cid = :cid', array(':cid' => $cid))->fetchField();
- $form['comments'][$cid] = array('#type' => 'hidden', '#value' => $cid, '#prefix' => '
', '#suffix' => check_plain($subject) . '');
+ $form['comments'][$cid] = array('#type' => 'hidden', '#value' => $cid);
$comment_counter++;
}
}
@@ -237,7 +234,7 @@ function comment_confirm_delete(&$form_s
$form['#comment'] = $comment;
return confirm_form(
$form,
- t('Are you sure you want to delete the comment %title?', array('%title' => $comment->subject)),
+ t('Are you sure you want to delete the comment by %name', array('%name' => $comment->name)),
'node/' . $comment->nid,
t('Any replies to this comment will be lost. This action cannot be undone.'),
t('Delete'),
Index: modules/comment/comment.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.install,v
retrieving revision 1.44
diff -u -p -r1.44 comment.install
--- modules/comment/comment.install 9 Aug 2009 02:46:27 -0000 1.44
+++ modules/comment/comment.install 5 Sep 2009 12:41:23 -0000
@@ -21,6 +21,15 @@ function comment_uninstall() {
// Remove tables.
drupal_uninstall_schema('comment');
+ // @TODO do we need to check if any non-comment bundle has these fields
+ // assigned before deleting? If so, what happens then?
+
+ // Delete comment_body field.
+ field_delete_field('comment_body');
+
+ // Delete comment_subject field.
+ field_delete_field('comment_subject');
+
// Remove variables.
variable_del('comment_block_count');
$node_types = array_keys(node_type_get_types());
@@ -54,6 +63,24 @@ function comment_enable() {
db_insert('node_comment_statistics')
->from($query)
->execute();
+
+ // Create comment body field.
+ // @todo this should be doen in comment_install, but causes exceptions
+ // in simpletest due to dependencies between entity_get_info() and
+ // taxonomy_install().
+ $field = array(
+ 'field_name' => 'comment_body',
+ 'type' => 'text_long',
+ );
+ field_create_field($field);
+
+ // Create comment subject field.
+ $field = array(
+ 'field_name' => 'comment_subject',
+ 'type' => 'text',
+ );
+ field_create_field($field);
+
}
/**
@@ -160,7 +187,93 @@ function comment_update_7006() {
}
/**
- * @} End of "defgroup updates-6.x-to-7.x"
+ * Create the comment_body and comment_subject fields.
+ */
+function comment_update_7007() {
+ $ret = array();
+ // Create comment body field.
+ $field = array(
+ 'field_name' => 'comment_body',
+ 'type' => 'text_long',
+ );
+ field_create_field($field);
+
+ // Create comment_subject field.
+ $field = array(
+ 'field_name' => 'comment_subject',
+ 'type' => 'text',
+ );
+ field_create_field($field);
+
+ // Add the fields to comments for all existing bundles.
+ $body_instance = array(
+ 'field_name' => 'comment_body',
+ 'label' => 'Body',
+ 'settings' => array('text_processing' => 1),
+ );
+ $subject_instance = array(
+ 'field_name' => 'comment_subject',
+ 'label' => 'Subject',
+ );
+ foreach (node_type_get_types() as $info) {
+ $body_instance['bundle'] = 'comment_node_' . $info->type;
+ field_create_instance($body_instance);
+
+ // Only create the subject field if it is enabled for this content type.
+ if (variable_get('comment_subject_field_' . $info->type, TRUE)) {
+ $subject_instance['bundle'] = 'comment_node_' . $info->type;
+ field_create_instance($subject_instance);
+ variable_del('comment_subject_field_' . $info->type);
+ }
+ }
+
+ // Migrate data from the comment and subject fields.
+ $etid = db_query('SELECT etid FROM {field_config_entity_type} WHERE type = :comment', array(':comment' => 'comment'))->fetchField();
+
+ // Migrate {comment}.comment to field storage.
+ $query = db_select('comment', 'c');
+ $query->innerJoin('node', 'n', 'c.nid = n.nid');
+ $query->addField('c', 'cid', 'entity_id');
+ $query->addField('n', 'type', 'bundle');
+ $query->addExpression($etid, 'etid');
+ $query->addExpression('0', 'deleted');
+ $query->addExpression("'" . FIELD_LANGUAGE_NONE . "'", 'language');
+ $query->addExpression('0', 'delta');
+ $query->addField('c', 'comment', 'comment_body_value');
+ $query->addField('c', 'format', 'comment_body_format');
+
+ $comment_body = field_info_field('comment_body');
+ $comment_body_table = _field_sql_storage_tablename($comment_body);
+
+ db_insert($comment_body_table)
+ ->from($query)
+ ->execute();
+
+ // Migrate {comment}.subject to field storage.
+ $query = db_select('comment', 'c');
+ $query->innerJoin('node', 'n', 'c.nid = n.nid');
+ $query->addField('c', 'cid', 'entity_id');
+ $query->addField('n', 'type', 'bundle');
+ $query->addExpression($etid, 'etid');
+ $query->addExpression('0', 'deleted');
+ $query->addExpression("'" . FIELD_LANGUAGE_NONE . "'", 'language');
+ $query->addExpression('0', 'delta');
+ $query->addField('c', 'subject', 'comment_subject_value');
+
+ $comment_subject = field_info_field('comment_subject');
+ $comment_subject_table = _field_sql_storage_tablename($comment_subject);
+
+ db_insert($comment_subject_table)
+ ->from($query)
+ ->execute();
+
+ db_drop_field($ret, 'comment', 'comment');
+ db_drop_field($ret, 'comment', 'subject');
+
+ return $ret;
+}
+
+/** @} End of "defgroup updates-6.x-to-7.x"
* The next series of updates should start at 8000.
*/
@@ -194,19 +307,6 @@ function comment_schema() {
'default' => 0,
'description' => 'The {users}.uid who authored the comment. If set to 0, this comment was created by an anonymous user.',
),
- 'subject' => array(
- 'type' => 'varchar',
- 'length' => 64,
- 'not null' => TRUE,
- 'default' => '',
- 'description' => 'The comment title.',
- ),
- 'comment' => array(
- 'type' => 'text',
- 'not null' => TRUE,
- 'size' => 'big',
- 'description' => 'The comment body.',
- ),
'hostname' => array(
'type' => 'varchar',
'length' => 128,
@@ -228,13 +328,6 @@ function comment_schema() {
'size' => 'tiny',
'description' => 'The published status of a comment. (0 = Not Published, 1 = Published)',
),
- 'format' => array(
- 'type' => 'int',
- 'size' => 'small',
- 'not null' => TRUE,
- 'default' => 0,
- 'description' => 'The {filter_format}.format of the comment body.',
- ),
'thread' => array(
'type' => 'varchar',
'length' => 255,
@@ -321,4 +414,4 @@ function comment_schema() {
);
return $schema;
-}
\ No newline at end of file
+}
Index: modules/comment/comment.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.module,v
retrieving revision 1.766
diff -u -p -r1.766 comment.module
--- modules/comment/comment.module 5 Sep 2009 06:07:58 -0000 1.766
+++ modules/comment/comment.module 5 Sep 2009 12:41:24 -0000
@@ -223,6 +223,23 @@ function comment_menu() {
*/
function comment_node_type_insert($info) {
field_attach_create_bundle('comment_node_' . $info->type);
+
+ // Attach the body field by default.
+ $instance = array(
+ 'field_name' => 'comment_body',
+ 'label' =>'Body',
+ 'bundle' => 'comment_node_' . $info->type,
+ 'settings' => array('text_processing' => 1),
+ );
+ field_create_instance($instance);
+
+ // Attach the subject field by default.
+ $instance = array(
+ 'field_name' => 'comment_subject',
+ 'label' => 'Subject',
+ 'bundle' => 'comment_node_' . $info->type,
+ );
+ field_create_instance($instance);
}
/**
@@ -244,7 +261,6 @@ function comment_node_type_delete($info)
'comment_default_mode',
'comment_default_per_page',
'comment_anonymous',
- 'comment_subject_field',
'comment_preview',
'comment_form_location',
);
@@ -380,15 +396,17 @@ function comment_get_recent($number = 10
// and are visible to the current user.
$nids = db_query_range("SELECT nc.nid FROM {node_comment_statistics} nc WHERE nc.comment_count > 0 ORDER BY nc.last_comment_timestamp DESC", 0, $number)->fetchCol();
- $comments = array();
if (!empty($nids)) {
// Step 2: From among the comments on the nodes selected in the first query,
// find the $number of most recent comments.
// Using Query Builder here for the IN-Statement.
$query = db_select('comment', 'c');
$query->innerJoin('node', 'n', 'n.nid = c.nid');
+ $query->innerJoin('users', 'u', 'u.uid = c.uid');
+ $query->addField('n', 'title', 'node_title');
+ $query->addExpression('IF(c.uid != 0, u.name, c.name)', 'name');
return $query
- ->fields('c', array('nid', 'subject', 'cid', 'timestamp'))
+ ->fields('c', array('nid', 'cid', 'uid', 'timestamp'))
->condition('c.nid', $nids, 'IN')
->condition('c.status', COMMENT_PUBLISHED)
->condition('n.status', 1)
@@ -398,7 +416,7 @@ function comment_get_recent($number = 10
->fetchAll();
}
- return $comments;
+ return array();
}
/**
@@ -461,8 +479,12 @@ function comment_new_page_count($num_com
function theme_comment_block() {
$items = array();
$number = variable_get('comment_block_count', 10);
+
foreach (comment_get_recent($number) as $comment) {
- $items[] = l($comment->subject, 'comment/' . $comment->cid, array('fragment' => 'comment-' . $comment->cid)) . '
' . t('@time ago', array('@time' => format_interval(REQUEST_TIME - $comment->timestamp)));
+ $name = theme('username', $comment);
+ $comment_permalink = url('comment/' . $comment->cid, array('fragment' => 'comment-' . $comment->cid));
+ $time_ago = format_interval(REQUEST_TIME - $comment->timestamp);
+ $items[] = t('!username on @node_title @time ago', array('!username' => $name, '@comment_permalink' => $comment_permalink, '@node_title' => $comment->node_title, '@time' => $time_ago));
}
if ($items) {
@@ -821,11 +843,6 @@ function comment_build_content($comment,
$comment->content = array();
}
- // Build comment body.
- $comment->content['comment_body'] = array(
- '#markup' => check_markup($comment->comment, $comment->format),
- );
-
$comment->content += field_attach_view('comment', $comment, $build_mode);
if (empty($comment->in_preview)) {
@@ -975,11 +992,6 @@ function comment_form_node_type_form_alt
$form['comment']['comment_anonymous']['#access'] = FALSE;
}
- $form['comment']['comment_subject_field'] = array(
- '#type' => 'checkbox',
- '#title' => t('Allow comment title'),
- '#default_value' => variable_get('comment_subject_field_' . $form['#node_type']->type, 1),
- );
$form['comment']['comment_form_location'] = array(
'#type' => 'checkbox',
'#title' => t('Show reply form on the same page as comments'),
@@ -1128,17 +1140,12 @@ function comment_node_delete($node) {
* Implement hook_node_update_index().
*/
function comment_node_update_index($node) {
- $text = '';
- if ($node->comment != COMMENT_NODE_HIDDEN) {
- $comments = db_query('SELECT subject, comment, format FROM {comment} WHERE nid = :nid AND status = :status', array(
- ':nid' => $node->nid,
- ':status' => COMMENT_PUBLISHED
- ));
- foreach ($comments as $comment) {
- $text .= '' . check_plain($comment->subject) . '
' . check_markup($comment->comment, $comment->format);
- }
+ if ($node->comment && $cids = comment_get_thread($node)) {
+ $comments = comment_load_multiple($cids);
+ comment_prepare_thread($comments);
+ $build = comment_build_multiple($comments);
}
- return $text;
+ return drupal_render($build);
}
/**
@@ -1255,9 +1262,6 @@ function comment_save($comment) {
->fields(array(
'status' => $comment->status,
'timestamp' => $comment->timestamp,
- 'subject' => $comment->subject,
- 'comment' => $comment->comment,
- 'format' => $comment->comment_format,
'uid' => $comment->uid,
'name' => $comment->name,
'mail' => $comment->mail,
@@ -1269,7 +1273,7 @@ function comment_save($comment) {
// Allow modules to respond to the updating of a comment.
module_invoke_all('comment_update', $comment);
// Add an entry to the watchdog log.
- watchdog('content', 'Comment: updated %subject.', array('%subject' => $comment->subject), WATCHDOG_NOTICE, l(t('view'), 'comment/' . $comment->cid, array('fragment' => 'comment-' . $comment->cid)));
+ watchdog('content', 'Comment: updated %cid.', array('%subject' => $comment->cid), WATCHDOG_NOTICE, l(t('view'), 'comment/' . $comment->cid, array('fragment' => 'comment-' . $comment->cid)));
}
else {
// Add the comment to database. This next section builds the thread field.
@@ -1326,9 +1330,6 @@ function comment_save($comment) {
'nid' => $comment->nid,
'pid' => empty($comment->pid) ? 0 : $comment->pid,
'uid' => $comment->uid,
- 'subject' => $comment->subject,
- 'comment' => $comment->comment,
- 'format' => $comment->comment_format,
'hostname' => ip_address(),
'timestamp' => $comment->timestamp,
'status' => $comment->status,
@@ -1482,6 +1483,7 @@ class CommentController extends DrupalDe
$comment->node_type = 'comment_node_' . $comment->node_type;
$comments[$key] = $comment;
}
+ parent::attachLoad($comments);
}
}
@@ -1785,15 +1787,6 @@ function comment_form(&$form_state, $com
);
}
- if (variable_get('comment_subject_field_' . $node->type, 1) == 1) {
- $form['subject'] = array(
- '#type' => 'textfield',
- '#title' => t('Subject'),
- '#maxlength' => 64,
- '#default_value' => !empty($comment->subject) ? $comment->subject : '',
- );
- }
-
if (!empty($comment->comment)) {
$default = $comment->comment;
}
@@ -1801,15 +1794,6 @@ function comment_form(&$form_state, $com
$default = '';
}
- $form['comment'] = array(
- '#type' => 'textarea',
- '#title' => t('Comment'),
- '#rows' => 15,
- '#default_value' => $default,
- '#text_format' => isset($comment->format) ? $comment->format : FILTER_FORMAT_DEFAULT,
- '#required' => TRUE,
- );
-
$form['cid'] = array(
'#type' => 'value',
'#value' => !empty($comment->cid) ? $comment->cid : NULL,
@@ -1880,7 +1864,6 @@ function comment_preview($comment) {
$node = node_load($comment->nid);
if (!form_get_errors()) {
- $comment->format = $comment->comment_format;
// Attach the user and time information.
if (!empty($comment->author)) {
@@ -2010,19 +1993,6 @@ function comment_submit($comment) {
$comment['name'] = $comment['author'];
}
- // Validate the comment's subject. If not specified, extract from comment body.
- if (trim($comment['subject']) == '') {
- // The body may be in any format, so:
- // 1) Filter it into HTML
- // 2) Strip out all HTML tags
- // 3) Convert entities back to plain-text.
- $comment['subject'] = truncate_utf8(trim(decode_entities(strip_tags(check_markup($comment['comment'], $comment['comment_format'])))), 29, TRUE);
- // Edge cases where the comment body is populated only by HTML tags will
- // require a default subject.
- if ($comment['subject'] == '') {
- $comment['subject'] = t('(No subject)');
- }
- }
return (object)$comment;
}
@@ -2059,8 +2029,8 @@ function comment_form_submit($form, &$fo
$redirect = array('comment/' . $comment->cid, array(), 'comment-' . $comment->cid);
}
else {
- watchdog('content', 'Comment: unauthorized comment submitted or comment submitted to a closed post %subject.', array('%subject' => $comment->subject), WATCHDOG_WARNING);
- drupal_set_message(t('Comment: unauthorized comment submitted or comment submitted to a closed post %subject.', array('%subject' => $comment->subject)), 'error');
+ watchdog('content', 'Comment: unauthorized comment submitted or comment submitted to a closed post %title.', array('%title' => $node->title), WATCHDOG_WARNING);
+ drupal_set_message(t('Comment: unauthorized comment submitted or comment submitted to a closed post %title.', array('%title' => $comment->title)), 'error');
$page = comment_new_page_count($node->comment_count, 1, $node);
$redirect = array('node/' . $node->nid, $page);
}
@@ -2085,7 +2055,7 @@ function template_preprocess_comment(&$v
$variables['new'] = !empty($comment->new) ? t('new') : '';
$variables['picture'] = theme_get_setting('toggle_comment_user_picture') ? theme('user_picture', $comment) : '';
$variables['signature'] = $comment->signature;
- $variables['title'] = l($comment->subject, 'comment/' . $comment->cid, array('fragment' => "comment-$comment->cid"));
+ $variables['permalink'] = l('#', 'comment/' . $comment->cid, array('fragment' => "comment->$comment->cid"));
$variables['template_files'][] = 'comment-' . $variables['node']->type;
// Set status to a string representation of comment->status.
if (isset($comment->in_preview)) {
@@ -2340,7 +2310,6 @@ function comment_action_info() {
function comment_unpublish_action($comment, $context = array()) {
if (isset($comment->cid)) {
$cid = $comment->cid;
- $subject = $comment->subject;
}
else {
$cid = $context['cid'];
@@ -2350,7 +2319,7 @@ function comment_unpublish_action($comme
->fields(array('status' => COMMENT_NOT_PUBLISHED))
->condition('cid', $cid)
->execute();
- watchdog('action', 'Unpublished comment %subject.', array('%subject' => $subject));
+ watchdog('action', 'Unpublished comment %cid.', array('%cid' => $cid));
}
/**
@@ -2390,12 +2359,13 @@ function comment_unpublish_by_keyword_ac
*/
function comment_unpublish_by_keyword_action($comment, $context) {
foreach ($context['keywords'] as $keyword) {
- if (strpos($comment->comment, $keyword) !== FALSE || strpos($comment->subject, $keyword) !== FALSE) {
+ $text = drupal_render($comment);
+ if (strpos($text, $keyword) !== FALSE) {
db_update('comment')
->fields(array('status' => COMMENT_NOT_PUBLISHED))
->condition('cid', $comment->cid)
->execute();
- watchdog('action', 'Unpublished comment %subject.', array('%subject' => $comment->subject));
+ watchdog('action', 'Unpublished comment %cid.', array('%cid' => $comment->cid));
break;
}
}
@@ -2428,14 +2398,3 @@ function comment_menu_alter(&$items) {
// Add comments to the description for admin/content.
$items['admin/content']['description'] = "View, edit, and delete your site's content and comments.";
}
-
-/**
- * Implement hook_filter_format_delete().
- */
-function comment_filter_format_delete($format, $default) {
- db_update('comment')
- ->fields(array('format' => $default->format))
- ->condition('format', $format->format)
- ->execute();
-}
-
Index: modules/comment/comment.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.pages.inc,v
retrieving revision 1.24
diff -u -p -r1.24 comment.pages.inc
--- modules/comment/comment.pages.inc 1 Aug 2009 05:58:18 -0000 1.24
+++ modules/comment/comment.pages.inc 5 Sep 2009 12:41:24 -0000
@@ -109,7 +109,6 @@ function comment_approve($cid) {
// Load the comment whose cid = $cid
if ($comment = comment_load($cid)) {
$comment->status = COMMENT_PUBLISHED;
- $comment->comment_format = $comment->format;
comment_save($comment);
drupal_set_message(t('Comment approved.'));
Index: modules/comment/comment.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.test,v
retrieving revision 1.44
diff -u -p -r1.44 comment.test
--- modules/comment/comment.test 21 Aug 2009 14:27:44 -0000 1.44
+++ modules/comment/comment.test 5 Sep 2009 12:41:24 -0000
@@ -28,8 +28,8 @@ class CommentHelperCase extends DrupalWe
*/
function postComment($node, $subject, $comment, $preview = FALSE, $contact = NULL) {
$edit = array();
- $edit['subject'] = $subject;
- $edit['comment'] = $comment;
+ $edit['comment_subject[zxx][0][value]'] = $subject;
+ $edit['comment_body[zxx][0][value]'] = $comment;
if ($contact !== NULL && is_array($contact)) {
$edit += $contact;
@@ -97,16 +97,6 @@ class CommentHelperCase extends DrupalWe
}
/**
- * Set comment subject setting.
- *
- * @param boolean $enabled
- * Subject value.
- */
- function setCommentSubject($enabled) {
- $this->setCommentSettings('comment_subject_field', ($enabled ? '1' : '0'), 'Comment subject ' . ($enabled ? 'enabled' : 'disabled') . '.');
- }
-
- /**
* Set comment preview setting.
*
* @param boolean $required
@@ -213,21 +203,6 @@ class CommentHelperCase extends DrupalWe
$this->assertText(t('The update has been performed.'), t('Operation "' . $operation . '" was performed on comment.'));
}
}
-
- /**
- * Get the comment ID for an unapproved comment.
- *
- * @param string $subject
- * Comment subject to find.
- * @return integer
- * Comment id.
- */
- function getUnapprovedComment($subject) {
- $this->drupalGet('admin/content/comment/approval');
- preg_match('/href="(.*?)#comment-([^"]+)"(.*?)>(' . $subject . ')/', $this->drupalGetContent(), $match);
-
- return $match[2];
- }
}
class CommentInterfaceTest extends CommentHelperCase {
@@ -247,19 +222,11 @@ class CommentInterfaceTest extends Comme
$this->drupalLogin($this->admin_user);
$this->setCommentPreview(TRUE);
$this->setCommentForm(TRUE);
- $this->setCommentSubject(FALSE);
$this->setCommentSettings('comment_default_mode', COMMENT_MODE_THREADED, t('Comment paging changed.'));
- $this->drupalLogout();
-
- // Post comment without subject.
- $this->drupalLogin($this->web_user);
- $this->drupalGet('comment/reply/' . $this->node->nid);
- $this->assertNoFieldByName('subject', '', t('Subject field not found.'));
// Set comments to have subject and preview to required.
$this->drupalLogout();
$this->drupalLogin($this->admin_user);
- $this->setCommentSubject(TRUE);
$this->setCommentPreview(TRUE);
$this->drupalLogout();
@@ -331,7 +298,7 @@ class CommentInterfaceTest extends Comme
$this->assertTrue($this->node, t('Article node created.'));
$this->drupalGet('comment/reply/' . $this->node->nid);
$this->assertNoText('This discussion is closed', t('Posting to node with comments enabled'));
- $this->assertField('edit-comment', t('Comment body field found.'));
+ $this->assertField('edit-comment-body-zxx-0-value', t('Comment body field found.'));
// Delete comment and make sure that reply is also removed.
$this->drupalLogout();
@@ -381,27 +348,28 @@ class CommentPreviewTest extends Comment
$this->drupalLogin($this->admin_user);
$this->setCommentPreview(TRUE);
$this->setCommentForm(TRUE);
- $this->setCommentSubject(TRUE);
$this->setCommentSettings('comment_default_mode', COMMENT_MODE_THREADED, t('Comment paging changed.'));
$this->drupalLogout();
// As web user, fill in node creation form and preview node.
$this->drupalLogin($this->web_user);
+ $subject = $this->randomName(8);
+ $body = $this->randomName(16);
$edit = array();
- $edit['subject'] = $this->randomName(8);
- $edit['comment'] = $this->randomName(16);
+ $edit['comment_subject[zxx][0][value]'] = $subject;
+ $edit['comment_body[zxx][0][value]'] = $body;
$this->drupalPost('node/' . $this->node->nid, $edit, t('Preview'));
// Check that the preview is displaying the title and body.
$this->assertTitle(t('Preview comment | Drupal'), t('Page title is "Preview comment".'));
- $this->assertText($edit['subject'], t('Subject displayed.'));
- $this->assertText($edit['comment'], t('Comment displayed.'));
+ $this->assertText($subject, t('Subject displayed.'));
+ $this->assertText($body, t('Comment displayed.'));
// Check that the title and body fields are displayed with the correct values.
- $this->assertFieldByName('subject', $edit['subject'], t('Subject field displayed.'));
- $this->assertFieldByName('comment', $edit['comment'], t('Comment field displayed.'));
+ $this->assertFieldByName('comment_subject[zxx][0][value]', $subject, t('Subject field displayed.'));
+ $this->assertFieldByName('comment_body[zxx][0][value]', $body, t('Comment field displayed.'));
}
-
+
/**
* Test comment edit and preview.
*/
@@ -410,28 +378,30 @@ class CommentPreviewTest extends Comment
$this->drupalLogin($this->admin_user);
$this->setCommentPreview(TRUE);
$this->setCommentForm(TRUE);
- $this->setCommentSubject(TRUE);
$this->setCommentSettings('comment_default_mode', COMMENT_MODE_THREADED, t('Comment paging changed.'));
-
+
+ $subject = $this->randomName(8);
+ $body = $this->randomName(16);
+
$edit = array();
- $edit['subject'] = $this->randomName(8);
- $edit['comment'] = $this->randomName(16);
+ $edit['comment_subject[zxx][0][value]'] = $subject;
+ $edit['comment_body[zxx][0][value]'] = $body;
$edit['author'] = $web_user->name;
$edit['date'] = '2008-03-02 17:23 +0300';
$expected_date = format_date(strtotime($edit['date']));
- $comment = $this->postComment($this->node, $edit['subject'], $edit['comment'], TRUE);
+ $comment = $this->postComment($this->node, $subject, $body, TRUE);
$this->drupalPost('comment/edit/' . $comment->id, $edit, t('Preview'));
-
+
// Check that the preview is displaying the subject, comment, author and date correctly.
$this->assertTitle(t('Preview comment | Drupal'), t('Page title is "Preview comment".'));
- $this->assertText($edit['subject'], t('Subject displayed.'));
- $this->assertText($edit['comment'], t('Comment displayed.'));
+ $this->assertText($subject, t('Subject displayed.'));
+ $this->assertText($body, t('Comment displayed.'));
$this->assertText($edit['author'], t('Author displayed.'));
$this->assertText($expected_date, t('Date displayed.'));
// Check that the title and body fields are displayed with the correct values.
- $this->assertFieldByName('subject', $edit['subject'], t('Subject field displayed.'));
- $this->assertFieldByName('comment', $edit['comment'], t('Comment field displayed.'));
+ $this->assertFieldByName('comment_subject[zxx][0][value]', $subject, t('Subject field displayed.'));
+ $this->assertFieldByName('comment_body[zxx][0][value]', $body, t('Comment field displayed.'));
$this->assertFieldByName('author', $edit['author'], t('Author field displayed.'));
$this->assertFieldByName('date', $edit['date'], t('Date field displayed.'));
}
@@ -563,7 +533,6 @@ class CommentPagerTest extends CommentHe
// Set comment variables.
$this->setCommentForm(TRUE);
- $this->setCommentSubject(TRUE);
$this->setCommentPreview(FALSE);
// Create a node and three comments.
@@ -657,7 +626,7 @@ class CommentApprovalTest extends Commen
// Get unapproved comment id.
$this->drupalLogin($this->admin_user);
- $anonymous_comment4 = $this->getUnapprovedComment($subject);
+ $anonymous_comment4 = db_query('SELECT MAX(cid) FROM {comment} WHERE status = 0')->fetchField();
$anonymous_comment4 = (object) array('id' => $anonymous_comment4, 'subject' => $subject, 'comment' => $body);
$this->drupalLogout();
@@ -691,7 +660,7 @@ class CommentApprovalTest extends Commen
// Get unapproved comment id.
$this->drupalLogin($this->admin_user);
- $anonymous_comment4 = $this->getUnapprovedComment($subject);
+ $anonymous_comment4 = db_query('SELECT MAX(cid) FROM {comment} WHERE status = 0')->fetchField();
$anonymous_comment4 = (object) array('id' => $anonymous_comment4, 'subject' => $subject, 'comment' => $body);
$this->drupalLogout();
@@ -756,10 +725,10 @@ class CommentBlockFunctionalTest extends
$this->assertText($block['title'], t('Block was found.'));
// Test the only the 2 latest comments are shown and in the proper order.
- $this->assertNoText($comment1->subject, t('Comment not found in block.'));
- $this->assertText($comment2->subject, t('Comment found in block.'));
- $this->assertText($comment3->comment, t('Comment found in block.'));
- $this->assertTrue(strpos($this->drupalGetContent(), $comment3->comment) < strpos($this->drupalGetContent(), $comment2->subject), t('Comments were ordered correctly in block.'));
+ $this->assertNoRaw("#comment-$comment1->id", t('Comment not found in block.'));
+ $this->assertRaw("#comment-$comment2->id", t('Comment found in block.'));
+ $this->assertRaw("#comment-$comment3->id", t('Comment found in block.'));
+ $this->assertTrue(strpos($this->drupalGetContent(), "#comment-$comment3->id") < strpos($this->drupalGetContent(), "#comment-$comment2->id"), t('Comments were ordered correctly in block.'));
// Set the number of recent comments to show to 10.
$this->drupalLogout();
@@ -781,13 +750,14 @@ class CommentBlockFunctionalTest extends
// Test that links to comments work when comments are across pages.
$this->setCommentsPerPage(1);
- $this->drupalGet('');
- $this->clickLink($comment1->subject);
+ $this->drupalGet('node/' . $this->node->nid);
+ $this->clickLink($this->node->title, 3);
$this->assertText($comment1->subject, t('Comment link goes to correct page.'));
- $this->drupalGet('');
- $this->clickLink($comment2->subject);
+ $this->drupalGet('node/' . $this->node->nid);
+ $this->clickLink($this->node->title, 2);
$this->assertText($comment2->subject, t('Comment link goes to correct page.'));
- $this->clickLink($comment4->subject);
+ $this->drupalGet('node/' . $this->node->nid);
+ $this->clickLink($this->node->title, 0);
$this->assertText($comment4->subject, t('Comment link goes to correct page.'));
// Check that when viewing a comment page from a link to the comment, that
// rel="canonical" is added to the head of the document.
Index: modules/comment/comment.tpl.php
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.tpl.php,v
retrieving revision 1.11
diff -u -p -r1.11 comment.tpl.php
--- modules/comment/comment.tpl.php 29 Aug 2009 04:16:14 -0000 1.11
+++ modules/comment/comment.tpl.php 5 Sep 2009 12:41:24 -0000
@@ -17,7 +17,6 @@
* - $signature: Authors signature.
* - $status: Comment status. Possible values are:
* comment-unpublished, comment-published or comment-preview.
- * - $title: Linked title.
* - $classes: String of classes that can be used to style contextually through
* CSS. It can be manipulated through the variable $classes_array from
* preprocess functions. The default values can be one or more of the following:
@@ -50,8 +49,7 @@
-
-
+
refreshVariables();
+ $langcode = FIELD_LANGUAGE_NONE;
+
// Add a comment to one of the nodes.
- $edit = array('subject' => 'my comment title', 'comment' => 'some random comment');
+ $edit = array("comment_subject[$langcode][0][value]" => 'my comment title', "comment_body[$langcode][0][value]" => 'some random comment');
$this->drupalGet('comment/reply/' . $nodes['comments'][1]->nid);
$this->drupalPost(NULL, $edit, t('Preview'));
$this->drupalPost(NULL, $edit, t('Save'));
@@ -490,10 +492,11 @@ class SearchCommentTestCase extends Drup
// Create a node.
$node = $this->drupalCreateNode(array('type' => 'article'));
// Post a comment using 'Full HTML' text format.
+ $langcode = FIELD_LANGUAGE_NONE;
$edit_comment = array(
- 'subject' => $this->randomName(2),
- 'comment' => '
' . $comment_body . '
',
- 'comment_format' => 2,
+ "comment_subject[$langcode][0][value]" => $this->randomName(2),
+ "comment_body[$langcode][0][value]" => '
' . $comment_body . '
',
+ "comment_body[$langcode][0][value_format]" => 2,
);
$this->drupalPost('comment/reply/' . $node->nid, $edit_comment, t('Save'));
@@ -509,10 +512,9 @@ class SearchCommentTestCase extends Drup
$this->assertText($node->title, t('Node found in search results.'));
// Verify that comment is rendered using proper format.
- $this->assertText($edit_comment['subject'], t('Comment subject found in search results.'));
$this->assertText($comment_body, t('Comment body text found in search results.'));
$this->assertNoRaw(t('n/a'), t('HTML in comment body is not hidden.'));
- $this->assertNoRaw(check_plain($edit_comment['comment']), t('HTML in comment body is not escaped.'));
+ $this->assertNoRaw(check_plain($edit_comment["comment_body[$langcode][0][value]"]), t('HTML in comment body is not escaped.'));
// Hide comments.
$this->drupalLogin($this->admin_user);
Index: modules/tracker/tracker.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/tracker/tracker.test,v
retrieving revision 1.11
diff -u -p -r1.11 tracker.test
--- modules/tracker/tracker.test 31 Aug 2009 06:52:50 -0000 1.11
+++ modules/tracker/tracker.test 5 Sep 2009 12:41:24 -0000
@@ -73,8 +73,8 @@ class TrackerTest extends DrupalWebTestC
'status' => 1,
));
$comment = array(
- 'subject' => $this->randomName(),
- 'comment' => $this->randomName(20),
+ 'comment_subject[zxx][0][value]' => $this->randomName(),
+ 'comment_body[zxx][0][value]' => $this->randomName(20),
);
$this->drupalPost('comment/reply/' . $other_published_my_comment->nid, $comment, t('Save'));
@@ -125,8 +125,8 @@ class TrackerTest extends DrupalWebTestC
// Add a comment to the page.
$comment = array(
- 'subject' => $this->randomName(),
- 'comment' => $this->randomName(20),
+ 'comment_subject[zxx][0][value]' => $this->randomName(),
+ 'comment_body[zxx][0][value]' => $this->randomName(20),
);
$this->drupalPost('comment/reply/' . $node->nid, $comment, t('Save')); // The new comment is automatically viewed by the current user.
@@ -137,8 +137,8 @@ class TrackerTest extends DrupalWebTestC
// Add another comment as other_user.
$comment = array(
- 'subject' => $this->randomName(),
- 'comment' => $this->randomName(20),
+ 'comment_subject[zxx][0][value]' => $this->randomName(),
+ 'comment_body[zxx][0][value]' => $this->randomName(20),
);
// If the comment is posted in the same second as the last one then Drupal
// can't tell a difference, so wait one second here.
@@ -170,8 +170,8 @@ class TrackerTest extends DrupalWebTestC
// Add a comment to the last node as other user.
$this->drupalLogin($this->other_user);
$comment = array(
- 'subject' => $this->randomName(),
- 'comment' => $this->randomName(20),
+ 'comment_subject[zxx][0][value]' => $this->randomName(),
+ 'comment_body[zxx][0][value]' => $this->randomName(20),
);
$this->drupalPost('comment/reply/' . $nodes[3]->nid, $comment, t('Save'));
Index: themes/garland/comment.tpl.php
===================================================================
RCS file: /cvs/drupal/drupal/themes/garland/comment.tpl.php,v
retrieving revision 1.15
diff -u -p -r1.15 comment.tpl.php
--- themes/garland/comment.tpl.php 29 Aug 2009 04:16:15 -0000 1.15
+++ themes/garland/comment.tpl.php 5 Sep 2009 12:41:24 -0000
@@ -13,7 +13,7 @@
-
+