function guestbook_list in Guestbook 7.2
Same name and namespace in other branches
- 5.2 guestbook.module \guestbook_list()
- 5 guestbook.module \guestbook_list()
- 6.2 guestbook.module \guestbook_list()
- 6 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 443
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',
),
);
$query = db_select('users', 'u', array(
'fetch' => PDO::FETCH_ASSOC,
))
->extend('TableSort')
->extend('PagerDefault');
$query
->leftJoin('guestbook', 'g', 'u.uid = g.recipient');
$query
->fields('u', array(
'uid',
'name',
'data',
));
$query
->addExpression('MAX(g.created)', 'created');
$query
->addExpression('COUNT(g.recipient)', 'num');
$query
->groupBy('u.uid');
$query
->groupBy('u.name');
$query
->groupBy('u.data');
$query
->groupBy('g.recipient');
$query
->orderByHeader($header);
$query
->limit($limit);
foreach ($query
->execute() as $guestbook) {
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;
}
}
}
}
$build = array(
'#theme' => 'guestbook_list',
'#guestbooks' => $guestbooks,
'#header' => $header,
'#limit' => $limit,
);
return $build;
}