You are here

function guestbook_page in Guestbook 6

Same name and namespace in other branches
  1. 5.2 guestbook.module \guestbook_page()
  2. 5 guestbook.module \guestbook_page()
  3. 6.2 guestbook.module \guestbook_page()
  4. 7.2 guestbook.module \guestbook_page()

Output a guestbook page; menu callback.

1 string reference to 'guestbook_page'
guestbook_menu in ./guestbook.module
Implementation of hook_menu()

File

./guestbook.module, line 304

Code

function guestbook_page($account, $op = NULL, $op_id = NULL) {
  global $user;

  // Prepare site guestbook.
  if ($account == 0) {
    $account = new stdClass();
    $account->uid = 0;
    drupal_set_title(variable_get('guestbook_site_title', t('Site guestbook')));
  }
  if (!_guestbook_exists($account->uid)) {
    drupal_not_found();
    return;
  }

  // Set last visited time for own guestbook
  if ($account->uid > 0 && $account->uid == $user->uid) {
    user_save($user, array(
      'guestbook_visited' => time(),
    ));
  }

  // Delete or comment an entry
  $comment_entry = '';
  if (_guestbook_access('administer', $account->uid) && is_numeric($op_id)) {
    switch ($op) {
      case 'delete':
        return guestbook_delete_entry_confirm_page($account->uid, $op_id);
      case 'comment':
        $comment_entry = $op_id;
        break;
    }
  }

  // Fetch guestbook entries
  $limit = variable_get('guestbook_entries_per_page', 20);
  $result = pager_query("SELECT g.*, u1.name, u1.data, u1.picture, u2.name as commentby \n    FROM {guestbook} g \n    LEFT JOIN {users} u1 ON g.author = u1.uid \n    LEFT JOIN {users} u2 ON g.commentauthor = u2.uid \n    WHERE g.recipient = %d\n    ORDER BY g.created DESC", $limit, 0, "SELECT COUNT(*) FROM {guestbook} WHERE recipient = %d", $account->uid);
  $entries = array();
  while ($entry = db_fetch_array($result)) {
    $entries[] = $entry;
  }
  return theme('guestbook', $account->uid, $entries, $comment_entry, $limit);
}