Доброго дня.
В ходе разработки модуля столкнулся с проблемой, что при выводе нескольких сообщений почему-то не срабатывает постраничное отображение (пейджер). Решал старым проверенным способом, а сейчас чего-то затупил.
Если кто знает, подскажите, в чем ошибка. Где я натупил?
Вот код функции:
function pm_messages_overview() {
global $user;
$output = '';
$form = pm_add_comment_form();
$header = array(
array('data' => t('Private messages:'))
);
$rows = array();
$sortby = variable_get('pm_ribbons_messages_sequence', 1);
if ($sortby == 0) {
$postfix = ' ASC';
} elseif ($sequence == 1) {
$postfix = ' DESC';
} else {
$postfix = '';
}
$messages = db_query("SELECT * FROM {pm_messages} WHERE rid=%d ORDER BY date_added".$postfix, arg(2));
$output .= t('Total messages:').' '.db_num_rows($messages);
$messages_per_user_page = variable_get('pm_messages_per_page', 15);
while ($message = db_fetch_object($messages)) {
db_query("UPDATE {pm_view_history} SET is_viewed=1 WHERE mid=%d AND uid=%d", $message->mid, $user->uid);
$rows[] = array(
pm_message_view($message->mid, $message->rid, $message->message, $message->date_added, $message->uid)
);
}
$output .= theme('table', $header, $rows);
$output .= theme('pager', NULL, $messages_per_user_page, 0);
$output .= drupal_get_form('pm_add_comment_form', array());
return $output;
}
global $user;
$output = '';
$form = pm_add_comment_form();
$header = array(
array('data' => t('Private messages:'))
);
$rows = array();
$sortby = variable_get('pm_ribbons_messages_sequence', 1);
if ($sortby == 0) {
$postfix = ' ASC';
} elseif ($sequence == 1) {
$postfix = ' DESC';
} else {
$postfix = '';
}
$messages = db_query("SELECT * FROM {pm_messages} WHERE rid=%d ORDER BY date_added".$postfix, arg(2));
$output .= t('Total messages:').' '.db_num_rows($messages);
$messages_per_user_page = variable_get('pm_messages_per_page', 15);
while ($message = db_fetch_object($messages)) {
db_query("UPDATE {pm_view_history} SET is_viewed=1 WHERE mid=%d AND uid=%d", $message->mid, $user->uid);
$rows[] = array(
pm_message_view($message->mid, $message->rid, $message->message, $message->date_added, $message->uid)
);
}
$output .= theme('table', $header, $rows);
$output .= theme('pager', NULL, $messages_per_user_page, 0);
$output .= drupal_get_form('pm_add_comment_form', array());
return $output;
}
Комментарии
Решено в такой версии:
global $user;
$output = '';
$form = pm_add_comment_form();
$messages_per_user_page = variable_get('pm_messages_per_page', 15);
$header = array(
array('data' => t('Private messages:'))
);
$rows = array();
$messages = pager_query(db_rewrite_sql("SELECT * FROM {pm_messages} WHERE rid=".arg(2)." ORDER BY date_added"), $messages_per_user_page);
$output .= t('Total messages:').' '.db_num_rows(db_query("SELECT * FROM {pm_messages} WHERE rid=%d", arg(2)));
while ($message = db_fetch_object($messages)) {
db_query("UPDATE {pm_view_history} SET is_viewed=1 WHERE mid=%d AND uid=%d", $message->mid, $user->uid);
$rows[] = array(
pm_message_view($message->mid, $message->rid, $message->message, $message->date_added, $message->uid)
);
}
$output .= theme('table', $header, $rows);
$output .= theme('pager', NULL, $messages_per_user_page);
$output .= drupal_get_form('pm_add_comment_form', array());
return $output;
}