You are here

function _views_rdf_sioc_xml_story_render in Views Datasource 7

Same name and namespace in other branches
  1. 6 theme/views_views_rdf_style.theme.inc \_views_rdf_sioc_xml_story_render()
1 call to _views_rdf_sioc_xml_story_render()
views-views-rdf-style-sioc.tpl.php in views/theme/views-views-rdf-style-sioc.tpl.php
views-views-rdf-style-sioc.tpl.php Default template for the Views RDF style plugin using the SIOC vocabulary

File

views/theme/views_views_rdf_style.theme.inc, line 451
View template to render view fields as rdf.

Code

function _views_rdf_sioc_xml_story_render($nid, $title, $type, $created, $changed, $last_updated, $uid, $body) {
  $node_url = url("node/{$nid}", array(
    'absolute' => TRUE,
  ));
  $xml = "";
  $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>". format_date(strtotime($created), 'custom', DATE_ISO8601) ."</dc:created>\n";

  //$xml .= "  <dc:modified>". format_date(strtotime($changed), 'custom', DATE_ISO8601) ."</dc:modified>\n";
  $xml .= "  <dc:created>" . $created . "</dc:created>\n";
  $xml .= "  <dc:modified>" . $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}", array(
      'absolute' => 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);

    //    var_dump($comment);module_invoke_all('exit');return;
    //    $comment->depth = count(explode('.', $comment->thread)) - 1;
    //    if ($comment->depth > $comment_children) {
    //      $comment_children++;
    //      $comments .= "  <sioc:has_reply>\n";
    //    }
    //    else {
    //      while ($comment->depth < $comment_children) {
    //        $comment_children--;
    //        $comments .= "  </sioc:has_reply>\n";
    //      }
    //    }
    //    $comments .="     <sioc:Post rdf:about=\"$node_url#comment-$comment->cid\">\n";
    //    while ($comment_children-- > 0) {
    //      $num_rows = TRUE;
    //      $comments .="       <sioc:content><![CDATA[$comment->comment]]></sioc:content>\n";
    //      $comments .="     </sioc:Post>\n";
    //      $comments .= "  </sioc:has_reply>\n";
    //    }
    //  }
    $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>" . format_date($comment->timestamp, 'custom', DATE_ISO8601) . "</dc:created>\n";
    }
    if ($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, array(
        'absolute' => 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;
}