Похоже, что эта ссылка содержит (почти) всю необходимую информацию.
«Старые» — это, по сути, «Следующая страница», поэтому вы переопределяете метод next_page
в своем средстве визуализации. «Самая старая» — «Последняя страница»; вам нужно будет добавить метод, а затем убедиться, что он включен в массив, возвращаемый вашим методом pagination
(здесь поможет метод total_pages
, встроенный в will_paginate).
Затем сделайте обратное для Newer/Newest.
Взгляните на link_renderer.rb и link_renderer_base.rb. У них есть методы, которые вы будете переопределять.
Я написал собственный рендерер will_paginate 3 для эмуляции пагинации «Дополнительно» в стиле GitHub/Twitter. Я прокомментировал код ниже. Это не приведет вас именно туда, куда вам нужно, но это начало.
module TwitterPagination
class LinkRenderer < WillPaginate::ViewHelpers::LinkRenderer
protected
# Tells WP how to render the "Next Page" link
def next_page
# The only difference from the default here is we renamed the link to "More"
# and added a custom class, twitter_pagination
previous_or_next_page(@collection.next_page, "More", 'twitter_pagination') if @collection.next_page
end
# Remove all links except our :next_page
def pagination
[ :next_page ]
end
end
end
Все, что мне нужно было знать для этого, можно выяснить, прочитав два исходных файла, на которые я ссылался выше.
Меня действительно поразило, как легко это было сделать; последний дизайн will_paginate великолепен в этой области.
person
Robert Speicher
schedule
09.10.2010