You are here

function guestbook_list in Guestbook 5.2

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

Output a list of all guestbooks; menu callback.

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

File

./guestbook.module, line 388

Code

function guestbook_list() {
  $limit = 40;
  $guestbooks = array();
  $guestbook_mode = variable_get('guestbook_mode', GUESTBOOK_SITE_GUESTBOOK | GUESTBOOK_USER_GUESTBOOKS);
  $header = array(
    array(
      'data' => t('user'),
      'field' => 'u.name',
    ),
    array(
      'data' => t('entries'),
      'field' => 'num',
    ),
    array(
      'data' => t('last update'),
      'field' => 'created',
      'sort' => 'desc',
    ),
  );
  $result = pager_query("SELECT u.uid, u.name, u.data, MAX(g.created) as created, COUNT(g.recipient) as num \n    FROM {users} u \n    LEFT OUTER JOIN {guestbook} g ON u.uid = g.recipient \n    GROUP BY u.uid, u.name, u.data, g.recipient" . tablesort_sql($header), $limit, 0, "SELECT COUNT(*) FROM {users}");
  while ($guestbook = db_fetch_array($result)) {
    if ($guestbook['uid'] == 0 && user_access('access site guestbook') && $guestbook_mode & GUESTBOOK_SITE_GUESTBOOK) {

      // Site guestbook.
      $guestbooks[0] = $guestbook;
    }
    else {
      if ($guestbook['uid'] > 0 && user_access('access user guestbooks')) {

        // User guestbooks.
        $data = unserialize($guestbook['data']);
        if (empty($data['guestbook_status'])) {
          $guestbooks[$guestbook['uid']] = $guestbook;
        }
      }
    }
  }
  return theme('guestbook_list', $guestbooks, $header, $limit);
}