Не срабатывает пейджер

Главные вкладки

Аватар пользователя Xandr Morris@drupal.org Xandr Morris@dr... 7 июля 2009 в 17:59

Доброго дня.
В ходе разработки модуля столкнулся с проблемой, что при выводе нескольких сообщений почему-то не срабатывает постраничное отображение (пейджер). Решал старым проверенным способом, а сейчас чего-то затупил.
Если кто знает, подскажите, в чем ошибка. Где я натупил?

Вот код функции:

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;
}

Комментарии

Аватар пользователя Xandr Morris@drupal.org Xandr Morris@dr... 7 июля 2009 в 18:37

Решено в такой версии:

function pm_messages_overview() {
  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;
}