"node_admin"); function node_overview($query = array()) { global $user, $rstatus; $result = db_query("SELECT n.*, u.userid FROM node n LEFT JOIN users u ON n.author = u.id $query[1] LIMIT 50"); $output .= status($query[0]); $output .= "\n"; $output .= " \n"; while ($node = db_fetch_object($result)) { $output .= " " : "view node") ."" : "edit node") ."" : "edit $node->type") ."\n"; } $output .= "
titletypestatusauthordateoperations
nid\">". check_output($node->title) ."$node->type". $rstatus[$node->status] ."". format_username($node->userid) ."". format_date($node->timestamp) ."". (user_access($user, "node") ? "nid\">view node". (user_access($user, "node") ? "nid\">edit node". (user_access($user, $node->type) ? "type&op=edit&id=$node->nid\">edit $node->type
\n"; return $output; } function node_admin_view($id) { global $rstatus; $node = node_get_object("nid", $id); $output .= "
nid\" METHOD=\"post\">\n"; $output .= "Title:
". check_output($node->title) ."

\n"; $output .= "Author:
". format_username($node->userid) ."

\n"; $output .= "Status:
". $rstatus[$node->status] ."

\n"; $output .= "Date:
". format_date($node->timestamp) ."

\n"; $output .= "\n"; $output .= "\n"; $output .= "

\n"; return $output; } function node_admin_edit($id) { global $user, $status; $node = node_get_object("nid", $id); foreach (array($node->userid => $node->author, $user->userid => $user->id) as $value=>$key) $author .= " \n"; foreach (array(format_date($node->timestamp) ." (original)" => $node->timestamp, format_date(time()) ." (current)" => time()) as $value=>$key) $timestamp .= " \n"; foreach (node_status($node) as $value) $statuz .= " \n"; $output .= "
nid\" METHOD=\"post\">\n"; $output .= "Title:
". check_output($node->title) ."

\n"; $output .= "Author:

\n"; $output .= "Status:

\n"; $output .= "Date:

\n"; $output .= "nid\">\n"; $output .= "\n"; $output .= "\n"; $output .= "

\n"; return $output; } function node_delete($id) { return (node_del("nid", $id) ? "node has been deleted." : "failed to delete node: node must be dumped first."); } function node_query($type = "") { global $status; $queries = array(0 => array("active nodes", "ORDER BY n.timestamp DESC"), 1 => array("posted nodes", "WHERE n.status = '$status[posted]' ORDER BY n.timestamp DESC"), 2 => array("queued nodes", "WHERE n.status = '$status[queued]' ORDER BY n.timestamp DESC"), 3 => array("dumped nodes", "WHERE n.status = '$status[dumped]' ORDER BY n.timestamp DESC")); return ($queries[$type] ? $queries[$type] : $queries); } function node_listing() { foreach (node_query() as $key=>$array) { $output .= "
  • $array[0]
  • \n"; } return "
      $output
    \n"; } function node_admin() { global $op, $id, $edit, $type; print "node listings | overview
    \n"; $id = check_input($edit[nid] ? $edit[nid] : $id); $type = ($type ? $type : 0); switch ($op) { case "Edit node": case "edit": print node_admin_edit($id); break; case "Delete node": print status(node_delete($id)); print node_overview(); break; case "listing": print node_listing(); break; case "Save node": print status(node_save($edit)); print node_admin_view($id); break; case "View node": case "view": print node_admin_view($id); break; default: print node_overview(node_query($type)); } } ?>