function modr8_block_view in modr8 7
Implements hook_block_view().
File
- ./
modr8.module, line 318 - Easy dedicated content moderation
Code
function modr8_block_view($delta) {
if (TRUE) {
if ($delta == 'modr8-moderators') {
$block = array();
$cutoff = strtotime('now -6 months');
$qry = db_select('modr8_log', 'ml')
->condition('ml.action', 'Response', '<>')
->condition('ml.timestamp', $cutoff, '>');
$qry
->join('users', 'u', 'u.uid = ml.uid');
$qry
->fields('u');
$qry
->condition('u.status', 1)
->addExpression('COUNT(ml.modid)', 'number');
$accounts = $qry
->execute()
->fetchAll();
$header = array(
t('User'),
t('Number of actions'),
);
$rows = array();
foreach ($accounts as $key => $account) {
$rows[] = array(
theme('username', array(
'account' => $account,
)),
$account->number,
);
}
if ($rows) {
$block['content'] = t('Last 6 months:') . '<br />' . theme('table', array(
'header' => $header,
'rows' => $rows,
));
$block['subject'] = t('Top moderators');
}
return $block;
}
elseif (user_access('moderate content')) {
$block['subject'] = t('Moderation queue');
$is_published = array(
0,
1,
);
if (!user_access('administer nodes')) {
// Users who don't have the 'administer nodes' permission can only see published nodes.
$is_published = 1;
}
$qry = db_select('node', 'n')
->condition('n.moderate', 1)
->condition('n.status', $is_published)
->addTag('node_access')
->addMetaData('base_table', 'node');
$count = $qry
->countQuery()
->execute()
->fetchField();
$content = '<p>' . l(t('@items in moderation', array(
'@items' => format_plural($count, '1 post', '@count posts'),
)), 'admin/content/modr8') . '</p>';
if ($count) {
$qry = db_select('node', 'n')
->fields('n', array(
'nid',
'title',
))
->condition('n.moderate', 1)
->condition('n.status', $is_published)
->extend('PagerDefault')
->limit(6)
->addTag('node_access')
->addMetaData('base_table', 'node')
->orderBy('n.changed', 'DESC');
$result = $qry
->execute()
->fetchAll();
if (!empty($result)) {
$modr8_nodes = node_title_list($result, t('Recent additions:'));
$content .= theme('item_list', $modr8_nodes);
}
}
$block['content'] = $content;
return $block;
}
}
}