The page module is used to create a static page. Unlike a story, a static page is a persistent web page on your site which usually shortcuts the typical lifecycle of user generated content (i.e. submit -> moderate -> post -> comment). A static page is usually linked from the main navigation bar, using whatever text the author wishes. To create a static page without this navigation link, simply skip the link text field.

"; $output .= "

Site pages, unlike many other forms of Drupal content, may be made of PHP code in addition to HTML and text. All Drupal objects and functions are available to a site administrator.

"; break; case 'admin/system/modules': $output = "Enables the creation of a static pages that can be added to the navigation system."; break; } return t($output); } function page_system($field) { $output = ""; if ($field == "description") {$output = page_help("admin/system/modules"); }; return $output; } function page_perm() { return array("maintain static pages"); } function page_node($field) { $info["name"] = t("static page"); $info["description"] = t("If you just want to add a page with a link in the menu to your site, this would be the best choice. Unlike a story, a static page by-passes the submission queue."); return $info[$field]; } function page_access($op, $node) { if ($op == "view") { return $node->status; } if ($op == "create") { return user_access("maintain static pages"); } if ($op == "update") { return user_access("maintain static pages"); } if ($op == "delete") { return user_access("maintain static pages"); } } function page_save($op, $node) { if ($op == "approve") { return array("status" => 1); } if ($op == "decline") { return array("status" => 0); } } function page_insert($node) { db_query("INSERT INTO {page} (nid, format, link, description) VALUES (%d, %d, '%s', '%s')", $node->nid, $node->format, $node->link, $node->description); } function page_update($node) { db_query("UPDATE {page} SET format = %d, link = '%s', description = '%s' WHERE nid = %d", $node->format, $node->link, $node->description, $node->nid); } function page_delete(&$node) { db_query("DELETE FROM {page} WHERE nid = %d", $node->nid); } function page_load($node) { $page = db_fetch_object(db_query("SELECT format, link, description FROM {page} WHERE nid = %d", $node->nid)); return $page; } function page_link($type) { $links = array(); if ($type == "page" && user_access("access content")) { $result = db_query("SELECT n.nid, n.title, p.link, p.description FROM {page} p INNER JOIN {node} n ON p.nid = n.nid WHERE n.status = '1' AND p.link != '' ORDER BY p.link"); while ($page = db_fetch_object($result)) { $links[] = l($page->link, "node/view/$page->nid", array("title" => $page->description)); } } if ($type == "system") { if (user_access("maintain static pages")) { menu("node/add/page", t("static page"), "page_page", NULL, 0); } } return $links; } function page_content($node) { /* ** Extract the page body. If body is dynamic (using PHP code), the body ** will be generated. */ if ($node->format == 0) { // HTML type $node->teaser = check_output($node->teaser); $node->body = check_output($node->body); } else { // PHP type ob_start(); eval($node->body); $node->teaser = $node->body = ob_get_contents(); ob_end_clean(); } return $node; } function page_view($node, $main) { // prepair the node content $node = page_content($node); // print the node theme("node", $node, $main); } function page_form(&$node, &$help, &$error) { if (function_exists("taxonomy_node_form")) { $output .= implode("", taxonomy_node_form("page", $node)); } $output .= form_textarea(t("Body"), "body", $node->body, 60, 20); $output .= form_textfield(t("Link name"), "link", $node->link, 60, 64, t("To make the page show up in the navigation links, enter the name of the link, otherwise leave blank.")); $output .= form_textfield(t("Link description"), "description", $node->description, 60, 64, t("The description displayed when hovering over the page's link. Leave blank when you don't want a description.")); $output .= form_select(t("Type"), "format", $node->format, array(0 => "HTML", 1 => "PHP")); return $output; } function page_validate(&$node) { if ($node->format && user_access("create php content")) { // Do not filter PHP code, do not auto-extract a teaser $node->teaser = $node->body; } else { $node->format = 0; } } ?>