Здравствуйте!
Есть сайт на Друпале, с несколькими тысячами нод.
Все замечательно, только удручает одна вещь: порядок сортировки (разбивки) на страницы, т.е. как это выглядит:
1, 2 , 4 , 5 >>следующая.
Т.е. новые страницы имеют наименьший номер в разбивке, что достаточно глупо, поскольку поисковикам приходится переиндексировать все главные страницы, после добавления только 1 статьи.
Вопрос такой: может кто-то патчил как-то pager.inc или использовал какой-либо модуль, чтобы нумерация шла в обратном порядке?
Заранее спасибо!
Комментарии
Вы хотите, чтобы новые ноды помещались на последние страницы? А как юзеры их будут искать??
Если используется views, то просто надо поменять порядок сортировки на обратный...
я хочу, чтобы на первой странице была нумерация вида: 98,97, 96, 95
например, как на http://www.habrahabr.ru/
98 - это страница с самыми новыми материалами? А смысл? Всё равно при добавлении новой ноды все страницы поменяются, сдвиг всё равно произойдет везде...
да, 98 - это страница с самыми новыми..
сдвиг произойдет только в границах 98-й страницы, все остальные (те, что меньше 98 - 97, 96, 95 и т.д. останутся неизменными).
А вот по-дефолту у Друпала ситуация как раз такая, что добавление одной статьи ведет к сдвигу всех страниц.
А куда денется последняя нода 98-ой страницы при добавлении новой ноды? На 97? Вот и сдвиг...
ок, ближе к телу
есть ли у кого варианты, как можно сделать нумерацию страниц как на http://www.habrahabr.ru ?
Вроде все циферки в pager-е выводятся функцией theme_pager_list. Значит в теме надо перекрыть эту функцию и там где выводится циферка с номером страницы — пофиксить: выводить не просто $i, а $quantity - $i +1. Остальное просто copy&paste из функции theme_pager_list.
ЗЫ: Но поисковики имхо тут всё-таки не причем)
ну, название функций мы то знаем, может у кого-то есть готовое решение?
не верю, что с такой проблемой никто не сталкивался.
r25, не удалось решить вопрос?
Тема актуальная, между прочим.
Еще хочеться заметить, что просто вывод страниц в обратном порядке это еще не все.
View должен именно так разбить на страницы, чтобы на странице с самым большим номером оказался самый свежий материал.
Решение пока не нашел тоже.
Если кто в курсе как это делаеться, киньте ссылку или напишите пожалуйста.
Я нашел исчерпывающее решение проблемы поисковой оптимизации при реверсивной пагинации в этой статье http://help.blox.ru/latest/?part_backward . Правда, там оно применяется для другой CMS, но перенести на Drupal не составит труда.
Я иногда очень сильно ленюсь писать модули - хотя оно и лучше - и вот простое решение в блок впихиваем это включаем в блоке фул хтмл, кстате css можете убрать некоторый код js тоже - он просто красивости вставляет, мои теги типо view-id-anekdots меняете на свои. Во вьювс меняете направление сортировки на обратную и получаете примерно как на http://imix.by/anekdots Кстате работает в любом друпале и думаю что в не друпале тоже.
.view-id-anekdots.view-display-id-page_1 .pager-next a, .view-id-anekdots.view-display-id-page_1 .pager-previous a{
font-size:large;
}
.view-id-anekdots.view-display-id-page_1 .item-list .pager li.pager-item{
border: 1px solid #e6e6e6;
border-radius: 7px;
}
.view-id-anekdots.view-display-id-page_1 .pager-current {
font-size: larger;
font-style: italic;
font-weight: 600;
color:white;
background-color: #64a281;
border: 1px solid #e6e6e6;
pointer-events: none;
border-radius: 7px;
}
</style>
<script>
if(window.location.search==''){
//отключаем показ содержимого
$('body').css('display','none');
//редерект на последнюю страницу
jQuery(function(){
if(document.location.href)
document.location.href=$('.view-id-anekdots.view-display-id-page_1').find('.pager-last.last a').attr('href');
});
}else{
jQuery(function(){
//переворачиваем пагинатор
var ul1=jQuery('.view-id-anekdots.view-display-id-page_1').find('ul.pager');
ul1.find('li').each(function(id,el){ul1.prepend($(el));});
//меняем текс в пагинаторе
jQuery('.view-id-anekdots.view-display-id-page_1 .pager-last a').text(" « ");
jQuery('.view-id-anekdots.view-display-id-page_1 .pager-next a').text(" ← ");
jQuery('.view-id-anekdots.view-display-id-page_1 .pager-previous a').text(" → ");
var linf=jQuery('.view-id-anekdots.view-display-id-page_1 .pager-first a');
linf.text(" » ");
//меняем первую ссылку в пагинаторе
linf.attr('href',linf.attr('href')+'?page=0');
})
}
</script>