Код выводит сообщение вида:
Количество комментариев
в очереди на одобрение: 21Показывать определенному пользователю:
<?php
global $user;
if ($user->uid == 1) {
$sql = 'SELECT c.nid, c.cid, c.timestamp, c.status, c.name, c.homepage FROM {comments} c WHERE c.status = 1';
$result = db_query($sql);
$num_comments = db_num_rows($result);
return "<div align='center'>
<p>Количество комментариев <br />в <a href='/admin/content/comment/list/approval'>очереди на одобрение</a>: <strong>$num_comments</strong></p></div>";}
?>Показывать определенным ролям:
<?php
global $user;
$output = '';
$approved_roles = array('Администратор', 'Редактор', 'Модератор');
if (is_array($user->roles)) {
if (count(array_intersect($user->roles, $approved_roles)) > 0) {
$sql = 'SELECT c.nid, c.cid, c.timestamp, c.status, c.name, c.homepage FROM {comments} c WHERE c.status = 1';
$result = db_query($sql);
$num_comments = db_num_rows($result);
$output .= "<div align='center'>
<p>Количество комментариев <br />в <a href='/admin/content/comment/list/approval'>очереди на одобрение</a>: <strong>$num_comments</strong></p></div>";
'content goes here';
}
}
return $output;
?>
Comments
Этот кусок сильно напрягает БД:
$sql = 'SELECT c.nid, c.cid, c.timestamp, c.status, c.name, c.homepage FROM {comments} c WHERE c.status = 1';
$result = db_query($sql);
$num_comments = db_num_rows($result);
Нам ни к чему тащить все комменты только ради того, чтобы сказать, _сколько_ мы их вытащили.
Быстрей для БД будет так:
$sql = 'SELECT count(*) as cnt FROM {comments} WHERE status = 1';
$num_comments = db_fetch_object(db_query($sql))->cnt;
здесь считаем записи средствами SQL, этот процесс отлично оптимизирован
Post new comment