HTML, 1 => PHP, 2 => text); function page_view($node, $main = 0) { global $format, $theme; switch ($format[$node->format]) { case "PHP": $output = eval($node->body); break; case "text": $output = nl2br(htmlentities($node->body)); break; default: $output = check_output($node->body, 1); } $theme->box(check_output($node->title), $output); } function page_status() { return array(dumped, posted); } function page_form($edit = array()) { global $format, $REQUEST_URI; $form .= form_textfield(t("Subject"), "title", $edit[title], 50, 64); $form .= structure_form("page", $edit); $form .= form_textarea(t("Body"), "body", $edit[body], 50, 10); $form .= form_select(t("Type"), "format", $edit[format], $format); $form .= form_hidden("nid", $edit[nid]); $form .= form_submit(t("Submit")); return form($REQUEST_URI, $form); } function page_save($edit) { global $status; node_save(array_merge($edit, array(type => "page", status => $status[posted]))); } function page_query($type = "") { global $status; $queries = array(array("recent pages", "WHERE n.type = 'page' ORDER BY n.timestamp DESC"), array("posted pages", "WHERE n.type = 'page' AND n.status = '$status[posted]' ORDER BY n.timestamp DESC"), array("dumped pages", "WHERE n.type = 'page' AND n.status = '$status[dumped]' ORDER BY n.timestamp DESC")); return ($queries[$type] ? $queries[$type] : $queries); } function page_overview($query = array()) { return node_overview($query); } function page_admin() { global $id, $op, $edit, $type; print "add new page | page listing | overview
\n"; $type = ($type ? $type : 0); switch ($op) { case "add": print page_form(); break; case "edit": print page_form(node_get_array(nid, $id)); break; case "listing": print node_listing(page_query()); break; case t("Submit"): print status(page_save($edit)); // fall through: default: print page_overview(page_query($type)); } } ?>