- Patch #632092 by scor, linclark: number of replies of a node in RDFa.
parent
c655cda6f3
commit
8ee21dd132
|
@ -1087,11 +1087,33 @@ class CommentRdfaTestCase extends CommentHelperCase {
|
|||
$this->drupalLogout();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests the presence of the RDFa markup for the number of comments.
|
||||
*/
|
||||
function testNumberOfCommentsRdfaMarkup() {
|
||||
// Posts 2 comments as a registered user.
|
||||
$this->drupalLogin($this->web_user);
|
||||
$this->postComment($this->node1, $this->randomName(), $this->randomName());
|
||||
$this->postComment($this->node1, $this->randomName(), $this->randomName());
|
||||
|
||||
// Tests number of comments in teaser view.
|
||||
$this->drupalGet('node');
|
||||
$comment_count_teaser = $this->xpath("//div[contains(@typeof, 'sioc:Item')]//li[contains(@class, 'comment_comments')]/a[contains(@property, 'sioc:num_replies') and contains(@content, '2')]");
|
||||
$this->assertTrue(!empty($comment_count_teaser), t('RDFa markup for the number of comments found on teaser view.'));
|
||||
|
||||
// Tests number of comments in full node view.
|
||||
$this->drupalGet('node/' . $this->node1->nid);
|
||||
$node_url = url('node/' . $this->node1->nid);
|
||||
$comment_count_teaser = $this->xpath("/html/head/meta[@about='$node_url' and @property='sioc:num_replies' and @content='2']");
|
||||
$this->assertTrue(!empty($comment_count_teaser), t('RDFa markup for the number of comments found on full node view.'));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests the presence of the RDFa markup for the title, date and author and
|
||||
* homepage on registered users and anonymous comments.
|
||||
*/
|
||||
function testAttributesInRdfaMarkup() {
|
||||
function testCommentRdfaMarkup() {
|
||||
|
||||
// Posts comment #1 as a registered user.
|
||||
$this->drupalLogin($this->web_user);
|
||||
|
@ -1141,7 +1163,7 @@ class CommentRdfaTestCase extends CommentHelperCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Helper function for testAttributesInRdfaMarkup().
|
||||
* Helper function for testCommentRdfaMarkup().
|
||||
*
|
||||
* Tests the current page for basic comment RDFa markup.
|
||||
*
|
||||
|
|
|
@ -810,6 +810,9 @@ function node_rdf_mapping() {
|
|||
'name' => array(
|
||||
'predicates' => array('foaf:name'),
|
||||
),
|
||||
'comment_count' => array(
|
||||
'predicates' => array('sioc:num_replies'),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
|
|
@ -405,7 +405,7 @@ function rdf_preprocess_node(&$variables) {
|
|||
if (!empty($variables['node']->rdf_mapping['title']['predicates'])) {
|
||||
$element['#attributes']['property'] = $variables['node']->rdf_mapping['title']['predicates'];
|
||||
}
|
||||
drupal_add_html_head($element, 'rdf_node');
|
||||
drupal_add_html_head($element, 'rdf_node_title');
|
||||
}
|
||||
|
||||
// Adds RDFa markup for the date.
|
||||
|
@ -417,6 +417,29 @@ function rdf_preprocess_node(&$variables) {
|
|||
if (!empty($variables['rdf_mapping']['uid'])) {
|
||||
$variables['rdf_template_variable_attributes_array']['name']['rel'] = $variables['rdf_mapping']['uid']['predicates'];
|
||||
}
|
||||
|
||||
// Adds RDFa markup annotating the number of comments a node has.
|
||||
if (isset($variables['node']->comment_count) && !empty($variables['node']->rdf_mapping['comment_count']['predicates'])) {
|
||||
// Annotates the 'x comments' link in teaser view.
|
||||
if (isset($variables['content']['links']['comment']['#links']['comment_comments'])) {
|
||||
$comment_count_attributes['property'] = $variables['node']->rdf_mapping['comment_count']['predicates'];
|
||||
$comment_count_attributes['content'] = $variables['node']->comment_count;
|
||||
$variables['content']['links']['comment']['#links']['comment_comments']['attributes'] += $comment_count_attributes;
|
||||
}
|
||||
// In full node view, the number of comments is not displayed by
|
||||
// node.tpl.php so it is expressed in RDFa in the <head> tag.
|
||||
if ($variables['page'] && user_access('access comments')) {
|
||||
$element = array(
|
||||
'#tag' => 'meta',
|
||||
'#attributes' => array(
|
||||
'about' => $variables['node_url'],
|
||||
'property' => $variables['node']->rdf_mapping['comment_count']['predicates'],
|
||||
'content' => $variables['node']->comment_count,
|
||||
),
|
||||
);
|
||||
drupal_add_html_head($element, 'rdf_node_comment_count');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue