uid >0) { $items[] = array('path' => 'guestbook/' . $user->uid, 'title' => t('my guestbook') . $unread, 'access' => user_access('access guestbooks'), 'type' => MENU_DYNAMIC_ITEM, 'callback' => '_guestbook_page'); } $items[] = array('path' => 'guestbook' , 'title' => '', 'access' => user_access('access guestbooks'), 'type' => MENU_HIDDEN_ITEM, 'callback' => '_guestbook_page'); } return $items; } /** * Implementation of hook_user() */ function guestbook_user($type, &$edit, &$user) { switch ($type) { case "view": if (user_access("access guestbooks", $user)) { $title = t("Read %username's guestbook.", array("%username" => $user->name)); $link = l(t("view recent guestbook entries"), "guestbook/$user->uid", array("title" => $title)); return array(t('History') => form_item(t("Guestbook"), $link)); } break; } } /** * Implementation of hook_perm() */ function guestbook_perm() { return array('access guestbooks', 'administer all guestbooks'); } /** * Implementation of hook_help() */ function guestbook_help($section) { switch ($section) { case 'admin/modules#description': return t('Adds individual user guestbooks and a site guestbook.'); } } /** * The guestbook page selector */ function _guestbook_page() { $uid = arg(1); if (is_numeric($uid)) _guestbook_page_user($uid); else _guestbook_list(); } /** * Shows a user or site guestbook */ function _guestbook_page_user($uid, $limit = 15) { global $user; $output = ""; // // Set book owner ($account with name $bookowner) // if ($uid == 0 ) { $bookowner = "" . variable_get('site_name', '') . ""; } else { $account = user_load(array((is_numeric($uid) ? "uid" : "name") => $uid, "status" => 1)); $bookowner= "uid\">$account->name"; } // // Set last visited time for own guestbook // if ($user->uid == $account->uid) { user_save( $user, array('guestbook_visited' => time()) ); } // // Add entry, or delete/update a comment // switch ($_POST["guestbook"]) { case "comment": if (array_key_exists('guestbook_comment', $_POST) && $user->uid == $uid) { $comment = addslashes(strip_tags($_POST["guestbook_comment"])); $entryid = intval($_POST["guestbook_entryid"]); $result = db_query("UPDATE {guestbook} SET comment = '" . $comment . "' WHERE id = $entryid"); } break; case "newentry": $message = $_POST["guestbook_newentry"]; if ( $message != "") { $message = strip_tags($message); // Make sure this isn't a dupe $result = db_query("SELECT message FROM {guestbook} WHERE recipient = %d ORDER BY id DESC LIMIT 1", $uid); $entry = db_fetch_array($result); if ($entry["message"] == $message) break; // Get new id $result = db_query("SELECT MAX(id)+1 AS id FROM {guestbook}"); $entry = db_fetch_array($result); $entryid = $entry["id"]; // Insert new message $anonname = strip_tags($_POST["guestbook_anonname"]); $email = strip_tags($_POST["guestbook_email"]); $website = strip_tags($_POST["guestbook_website"]); if ($user->uid == 0 && $anonname != "") { $result = db_query("INSERT INTO {guestbook} (id,anonname,email,website,author,recipient,message,created) VALUES('%d', '%s', '%s', '%s', '%d', '%d', '%s', '%d')", $entryid, $anonname, $email, $website, $user->uid, $uid, $message, time()); } else if ( $user->uid != $uid) { $result = db_query("INSERT INTO {guestbook} (id,author,email,website,recipient,message,created) VALUES('%d', '%s', '%s', '%d', '%d', '%s', '%d')", $entryid, $email, $website, $user->uid, $uid, $message, time()); } } break; } // // Delete a comment // if ($_GET["guestbook_deleteentry"] != "" && ( user_access("administer all guestbooks") || $uid == $user->uid ) && $user->uid > 0) { $result = db_query("DELETE FROM {guestbook} WHERE id = %d", $_GET["guestbook_deleteentry"]); } // // Output textarea for guestbook entry // if (( $user->uid != $uid && $user->uid > 0 ) || ( $user->uid == 0 && $uid == 0) ) { $output .= "