Заметил проблему, что когда кто-то открывает ноду сайта, например site.ru/node/111?page=120, она открывается без проблем даже в случае если нода содержит всего одну страницу, то есть даже когда пейджера как такового там вообще нет. Такая же ситуация наблюдается и в случае когда указать значение номера страницы (параметр "page"), превышающее номер последней станицы ноды. В результате, в индекс попадают страницы с идентичным содержимым, но с разными значениями параметров в адресах. Надеюсь понятно описал. Так вот, хотелось бы осуществлять проверку на корректность указанного значения параметра "page" в адресе страницы. И в случае если значение больше чем количество страниц ноды, то отправлять пользователя на страницу 404, то есть сообщать, что такая страница не существует. Также такое наблюдается и в views.
Подскажите, пожалуйста, как узнать последний номер страницы в пейждере. Зная его, можно буде сравнивать его значение с значением параметра "page" указанным в ссылке.
Надеюсь на Вашу помощь.
Комментарии
Есть вариант узнать с базы количество комментариев к определенной ноде и поделить его на значение переменной $comments_per_page, так я смогу узнать количество страниц, но этот способ подойдет только для нод. Знаю что должно быть более простое решение через pager, которое сможет работь и в нодах и в views. Вот в этом и надеюсь на Вашу помощь.
Страницы попадают в индекс, если есть ссылки на эти страницы. Другими словами, если у вас нигде не прописаны ссылки на страницы с ?page=999, то они и не попадут в индекс поисковиков.
Вы также можете прописать на любой странице ?asd=asd или что-то подобное и у вас страница отобразиться корректно. В данном случае ?page=999 ничем не отличается от ?asd=asd просто белеберда, которую Друпал любезно "пропускает мимо ушей".
Страницы каким-то образом попадают в индекс! У меня точно такая же проблема - подробно описал здесь - http://www.drupal.ru/node/126713