function rdf_sioc_xml_story_render in Views Datasource 5
1 call to rdf_sioc_xml_story_render()
File
- ./
views_rdf.module, line 413 - Provides Views plugin for rendering node content as RDF.
Code
function rdf_sioc_xml_story_render($nid, $title, $type, $created, $changed, $last_updated, $uid, $body, &$users_xml) {
$node_url = url('/node/' . $nid, NULL, NULL, true);
$xml .= "<sioc:Post rdf:about=\"{$node_url}\">\n";
$xml .= " <dc:title>{$title}</dc:title>\n";
$xml .= " <sioc:content>\n ";
$xml .= " <![CDATA[{$body}]]>\n";
$xml .= " </sioc:content>\n";
$xml .= " <dc:created>" . date(DATE_ISO8601, $created) . "</dc:created>\n";
$xml .= " <dc:modified>" . date(DATE_ISO8601, $changed) . "</dc:modified>\n";
$xml .= " <sioc:link rdf:resource=\"{$node_url}\" rdfs:label=\"{$title}\" />\n";
$xml .= " <sioc:has_creator rdf:nodeID=\"{$uid}\"/>\n";
/*Add taxonomy terms as SIOC topics*/
$query = db_query('SELECT tn.tid AS tid, td.name AS name FROM {term_node} tn, {term_data} td WHERE td.tid = tn.tid AND tn.nid = %d', $nid);
while ($term = db_fetch_object($query)) {
$taxonomy_terms = " <sioc:topic rdfs:label=\"{$term->name}\" rdf:resource=\"" . url("taxonomy/term/{$term->tid}", NULL, NULL, true) . "\" />\n";
}
$xml .= $taxonomy_terms;
/*Add comments as SIOC replies*/
$query_count = 'SELECT COUNT(*) FROM {comments} WHERE nid = %d AND status = %d';
$query = 'SELECT c.cid as cid, c.pid, c.nid, c.subject, c.comment, c.format, c.timestamp, c.name, c.mail, c.homepage, u.uid, u.name AS registered_name, u.signature, u.picture, u.data, c.thread, c.status FROM {comments} c INNER JOIN {users} u ON c.uid = u.uid WHERE c.nid = %d and c.status = %d ORDER BY SUBSTRING(c.thread, 1, (LENGTH(c.thread) - 1))';
$query_args = array(
$nid,
COMMENT_PUBLISHED,
);
$query = db_rewrite_sql($query, 'c', 'cid');
$comment_children = 0;
$num_rows = FALSE;
$comments = '';
$result = db_query($query, $query_args);
while ($comment = db_fetch_object($result)) {
$comment = drupal_unpack($comment);
$comments .= " <sioc:has_reply>\n";
$comments .= " <sioc:Post rdf:about=\"{$node_url}#comment-{$comment->cid}\">\n";
if ($comment->subject) {
$comments .= " <dc:title>{$comment->subject}</dc:title>\n";
}
if ($comment->timestamp) {
$comments .= " <dc:created>" . date(DATE_ISO8601, $comment->timestamp) . "</dc:created>\n";
}
if ($comment->uid) {
if (!array_key_exists($comment->uid, $users_xml)) {
$users_xml[$comment->uid] = rdf_sioc_xml_user_render(user_load(array(
'uid' => $comment->uid,
)));
}
$comments .= " <sioc:has_creator>\n";
$comments .= " <sioc:User>\n";
$comments .= " <sioc:name>{$comment->registered_name}</sioc:name>\n";
$comments .= " <sioc:email rdf:resource=\"mailto:{$comment->mail}\"/>\n";
$comments .= " <sioc:link rdf:resource=\"" . url('/user/' . $comment->uid, NULL, NULL, true) . "\" rdfs:label=\"{$comment->registered_name}\"/>\n";
$comments .= " </sioc:User>\n";
$comments .= " </sioc:has_creator>\n";
}
$comments .= " <sioc:content><![CDATA[{$comment->comment}]]></sioc:content>\n";
$comments .= " </sioc:Post>\n";
$comments .= " </sioc:has_reply>\n";
}
$xml .= $comments;
$xml .= "</sioc:Post>\n";
return $xml;
}