Comments 55
Спасибо!
Хотел реализовать что-то похожее, да все руки не доходили.
Хотел реализовать что-то похожее, да все руки не доходили.
Версию Друпала бы указали что ли :)
Кому на XSLT очень похожее решение надо? Сам XSL.
Кажется я не туда пишу. :) Это же друпаловкий журнал…
Не в тему но кто-то знает примерные сроки семерки?
Во-первых, ссылка на последнюю страницу стала бы более информативна и занимала бы меньше места, если её заменить на номер последней страницы [28].
А зачем вам делать ссылку на последнюю страницу меньше?
Есть такой закон Фитса, он говорит о том, что чем больше и ближе цель, тем быстрее и проще по ней кликнуть мышкой.
Т.е. то, что в Друпале самые часто нажимаемые кнопки постраничной навигации сделали больще — забота о пользователях.
А зачем вам делать ссылку на последнюю страницу меньше?
Есть такой закон Фитса, он говорит о том, что чем больше и ближе цель, тем быстрее и проще по ней кликнуть мышкой.
Т.е. то, что в Друпале самые часто нажимаемые кнопки постраничной навигации сделали больще — забота о пользователях.
Возможно, вы правы, предполагая, что ссылки «На первую» и «На последнюю» страницы являются частонажимаемыми. Хотя, если бы вы привели heatmap, это бы добавило веса вашим словам.
Лично для меня гораздо важнее видеть, сколько страниц всего мне предстоит пролистать. Ну а любовь к компактности — это уже исключительно лично ;)
Лично для меня гораздо важнее видеть, сколько страниц всего мне предстоит пролистать. Ну а любовь к компактности — это уже исключительно лично ;)
Есть тут небольшой минус — если страниц будет очень много (порядка сотен), то надо будет очень много кликать до страницы находящейся где-нибудь в середине списка.
Мне кажется имеет смысл добавить крошечную формочку, где пользователь мог бы ввести номер страницы и нажав на кнопку попадал бы прямиком туда. Форму можно сделать выпадающей.
Знаю, что идея не нова, но порой этого часто не хватает
Мне кажется имеет смысл добавить крошечную формочку, где пользователь мог бы ввести номер страницы и нажав на кнопку попадал бы прямиком туда. Форму можно сделать выпадающей.
Знаю, что идея не нова, но порой этого часто не хватает
Для того, о чем вы говорите есть специальный модуль. Называется как-то вроде goto или типа того. На drupal.ru как-то проскакивал анонс модуля на главной.
Если вам зачем-то понадобилось попасть на 30-ю страницу из 200 — значит с юзабилити уже проблема. Быстрый переход её не решит, а лишь облегчит мучения ;-)
Спорно. Порой на крупных ресурсах скапливается достаточно много информации (та же лента.ру или наш любимый Хабр) и тут уж никак не избавится от сотен (а порой и тысяч) страниц.
Ну, во первых, я бы не стал так категорично утверждать что «никак».
А во вторых, зачем может понадобиться переход именно не 30-ю страницу? На вас снизошло озарение и вы поняли что нужный материал именно на 30-й, а не на 29-й и не на 31-й странице? :)
А во вторых, зачем может понадобиться переход именно не 30-ю страницу? На вас снизошло озарение и вы поняли что нужный материал именно на 30-й, а не на 29-й и не на 31-й странице? :)
Я, например, дальше 4 страницы на хабре не захожу… И то уже 10*4 = 40 топиков очень сильно загружают голову. Ведь человека в основном интересует не все подряд, а какая-то определенная тема (наука, спорт, программирование, ...). ИМХО
Полностью с вами согласен. Но это уже отдельная история )
Ну здесь тоже есть проблема. На первой (последней, в вашем примере 22й) странице ведь всегда должно быть 10 записей? Тогда все остальные будут скакать со страницы на страницу. Так что это не является решением проблемы.
Например было 15 записей, записи с 5-15 были на странице №2. Стало 20 записей, на странице №2 теперь записи 10-20, а 5-15 перекочевали на страницу №1. Потом стало 25 и они обратно перелезли на страницу №2.
Как от этого избавиться, может кто знает?)
Например было 15 записей, записи с 5-15 были на странице №2. Стало 20 записей, на странице №2 теперь записи 10-20, а 5-15 перекочевали на страницу №1. Потом стало 25 и они обратно перелезли на страницу №2.
Как от этого избавиться, может кто знает?)
О, я как раз тоже только что кастомизировал пейджер друпала. Правда я делал из него то, что нарисовал мне дизайнер. Из принципиальных отличий там была ссылка «показать все», а реализована это ссылка через дополнительный display для view, в котором неограниченно кол-во объектов на страницу.
Мне кажется это вопрос юзабилити — _зачем_ пользователь пролистывает 20 страниц?
Можно ли достичь той же цели, вообще не пролистывая страницы?
Можно ли достичь той же цели, вообще не пролистывая страницы?
матерь божья!!! афигеть сколько коду нада исписать чтобы сделать такую простоую весчь в такой простой ЦМС — абалдеть я стал ненавить друмал еще больше!
Половина листинга — комментарии, половина — js код для удобной навигации с клавиатуры. Осталось всего ничего. Можете снова любить друпал :)
Привидите пример, пожалуйста, как это реализовано в других системах. Тогда можно будет говорить о простоте. Если разобратся, не так уж все и просто в этой «весчи»…
ну как я это пишу в своих системах, где используются Quicky (он аналог Смарти)
{include file=«components/paging.tpl» count=$totalCount pageNum=$page}
шаблон параметризуем:
{*
параметры:
count — общее число записей
pageSize — размер страницы
pageNum — текущая страница
url — адрес,
если адрес содержит %d то туда подставляется номер страницы, иначе используется параметр page
param — параметр страницы (по дефолту «page»)
show — количество показываемых страниц в навигаторе, по умолчанию 9
scroll_postfix — параметр id элемента к которому прокрутить страницу
*}
я что хочу сказать главным образом — что задача вывода целиком решается а рамках шаблонизатора и меня удивило что тут есть php код в чистом виде
{include file=«components/paging.tpl» count=$totalCount pageNum=$page}
шаблон параметризуем:
{*
параметры:
count — общее число записей
pageSize — размер страницы
pageNum — текущая страница
url — адрес,
если адрес содержит %d то туда подставляется номер страницы, иначе используется параметр page
param — параметр страницы (по дефолту «page»)
show — количество показываемых страниц в навигаторе, по умолчанию 9
scroll_postfix — параметр id элемента к которому прокрутить страницу
*}
я что хочу сказать главным образом — что задача вывода целиком решается а рамках шаблонизатора и меня удивило что тут есть php код в чистом виде
убедили! но не минусами
хотя вообще мне вот еще что не очень понятно — почему пайджингом занимается не только шаблон но и PHP код, ведь шаблону нужно дать номер текущей страницы, сколько всего постов и сколько постов на странице а остальное он должен считать сам. или theme_pager() это какой-то метод его внутреннего своего шаблонизатора? тоесть там шаблоны на PHP пишутся? а как разделяются области видимости переменных?
Drupal генерирует HTML-код стандарнтых элементов интерфейса в т.н. функциях темизации. Полный список можете найти здесь. Шаблоны — это немного другое. Шаблон можно определить для страницы, для блока, для куска страницы. А относительно мелкие атомарные элементы генерируются функциями theme_…
И да, по умолчанию Drupal использует собственный движок шаблонов PHP Template. Хотя можно прицепить любой другой, Smarty тот же, например.
И да, по умолчанию Drupal использует собственный движок шаблонов PHP Template. Хотя можно прицепить любой другой, Smarty тот же, например.
хорошая статья, если бы увидел ее пару месяцев назад то реализовал бы =)
у себя проблему решил наглым читом:
заменил перевод «первая» «предыдущая» «следующая» «последняя» на ‹‹‹ « » ›››
у себя проблему решил наглым читом:
заменил перевод «первая» «предыдущая» «следующая» «последняя» на ‹‹‹ « » ›››
Вообще-то когда мы на второй странице то ссылок на первую 3 — 1, предыдущая, первая. А так мне ваш вариант решения нравится. Красивая ленейка получилась. Для большой линейки неплохо бы еще промежуточные точки включать т.е. находясь на 150 странице из 300, что бы были ссылки не только на 1 и 300, но и на 100 и 200 например.
Попасть на определенную страницу (или «в середину»), можно, узнав общее их число и набирая номер страницы в строке браузера, ибо друпал тут не мудрствует лукаво и предоставляет сервис вида /some-page-url?page=23
Попасть на определенную страницу (или «в середину»), можно, узнав общее их число и набирая номер страницы в строке браузера, ибо друпал тут не мудрствует лукаво и предоставляет сервис вида /some-page-url?page=23
может быть вы знаете нормальный pager для Drupal 6, а то ссылки вида ?page=0,1 смотрятся очень коряво
я пытался как-то исправить данный недочет, но моих знаний не хватает — слишком много изменений нужно вносить в сам движок
PS: нужны ссылки вида /uri/page/2, ну или хотя бы ?page=2, а то запятая только все портит
я пытался как-то исправить данный недочет, но моих знаний не хватает — слишком много изменений нужно вносить в сам движок
PS: нужны ссылки вида /uri/page/2, ну или хотя бы ?page=2, а то запятая только все портит
забыл сказать, я имел в виду модуль pager, который разбивает большую страницу (этот модуль можно найти на drupal.org)
может быть вы знаете решение, как убрать там запятую из урла?
может быть вы знаете решение, как убрать там запятую из урла?
вы бы хоть указали, у кого js брали ;)
Я никого не хочу обидеть, но это ужасно! Неужели так еще пишут код? Я конечно не видел кода друпала, но если он такой, то даже смотреть не хочу. MVC? Отделение бизнес логики от представления? JS в переменной!!! Мне очень грустно товарищи, на дворе уже почти 2010, а пишут всё так же…
Я бы выделил цифры под активной страницей более ярче, черный цвет был бы в самый раз!
Могли бы пояснить, что именно и как ломается?
А насчет non-intrusive js, если вы знаете, как сделать перелистывание страниц клавишами при отключенном js — чего же вы ждете? Поделитесь с нами!
Этот кусок JS в моем проекте вынесен в общую библиотеку. Кому это нужно — без труда проделает это самостоятельно
А насчет non-intrusive js, если вы знаете, как сделать перелистывание страниц клавишами при отключенном js — чего же вы ждете? Поделитесь с нами!
Этот кусок JS в моем проекте вынесен в общую библиотеку. Кому это нужно — без труда проделает это самостоятельно
может мне кто-то объяснить, зачем надо посылать пользователя на самую последнюю страницу?
тоесть зачем там ссылка на 36 страницу?
тоесть зачем там ссылка на 36 страницу?
Вопрос по юзабилити.
А как переходить, например, со страницы 32 на страницу 15?
А как переходить, например, со страницы 32 на страницу 15?
Не буду спорить по поводу того, как должны выглядеть ссылки в пейджере. Хочу только спросить, а drupal_add_js использовать религия не позволяет? Ведь потом люди по таким примерам будут учиться писать под друпал…
Спасибо, давно уже искал что-то подобное.
По мне так Drupal.behaviors вместо этого что здесь написано намного удобнее.
По поводу юзабилити пейджера хочу добавить то, что правильнее было бы сделать обратный порядок, чтобы ноды не скакали с 1й страницы на 2ю и так далее. Чтобы они оставались на определённых страницах, потому что люди с поисковиков переходят по ссылкам на страницы пейджера и найти там то, что хотели не могут — это не есть хорошо.
Я пробовал развернуть пейджер, но проблема в том, что тогда первая страница не всегда заполнена — не всегда там будет все 10 анонсов.
За решение — спасибо. Буду использовать на своих сайтах.
Я пробовал развернуть пейджер, но проблема в том, что тогда первая страница не всегда заполнена — не всегда там будет все 10 анонсов.
За решение — спасибо. Буду использовать на своих сайтах.
Поправить бы ещё врождённый косяк с нумерацией страниц когда 2 — page1 :(
Sign up to leave a comment.
Небольшой апгрейд постраничной навигации Drupal-a