Форум русской поддержки Joomla!® CMS
23.07.2017, 22:47:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Не корректная пагинация

 (Прочитано 442 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Hatter
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 33


« : 23.12.2016, 00:32:33 »

Заметил на своих сайтах следующую проблему.
В разделе блога при переходе на вторую страницу в url номер страницы другой.
На одном сайте на второй странице url имеет значение start=9 на другом сайте start=4
Не могу понять в чем дело. Joomla 3. Каких либо специальных плагинов не использую.
Кто ни будь сталкивался с таким?
Записан
Филипп Сорокин
Практически профи
*******

Репутация: +138/-4
Offline Offline

Пол: Мужской
Сообщений: 1794


« Ответ #1 : 23.12.2016, 09:17:18 »

Параметр start -- это не номер страницы, а лимит. Например, у вас в категории 100 материалов, вы настроили, чтобы выводилось максимально 10 материалов на странице. При переходе на вторую страницу, параметр start равен 20, если же вы наберёте в адресной строке start=21, то отсчёт начнётся с 21 материала, и на странице будет 10 материалов, то есть с 21-го по 31-й.
Записан
Septdir
Практически профи
*******

Репутация: +97/-3
Offline Offline

Пол: Мужской
Сообщений: 1969


Skype: septdir


« Ответ #2 : 23.12.2016, 12:48:13 »

Параметр start -- это не номер страницы, а лимит. Например, у вас в категории 100 материалов, вы настроили, чтобы выводилось максимально 10 материалов на странице. При переходе на вторую страницу, параметр start равен 20, если же вы наберёте в адресной строке start=21, то отсчёт начнётся с 21 материала, и на странице будет 10 материалов, то есть с 21-го по 31-й.
Только не лимит а оффсет (сдвиг), хоть он и пишеться в запросе в лимите, но людям так понятнее будет
Записан
Филипп Сорокин
Практически профи
*******

Репутация: +138/-4
Offline Offline

Пол: Мужской
Сообщений: 1794


« Ответ #3 : 23.12.2016, 16:58:29 »

Тогда уже сдвиг, а не оффсет))
Записан
dmitry_stas
Профи
********

Репутация: +923/-6
Offline Offline

Сообщений: 9724



« Ответ #4 : 23.12.2016, 17:37:18 »

Заметил на своих сайтах следующую проблему.
сам по себе разный url как правило не является проблемой. у вас именно проблема с тем, что URL разный? в чем она заключается?
Записан
Hatter
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 33


« Ответ #5 : 23.12.2016, 18:40:57 »

Я хочу, что бы у меня в title отображался корректный номер страницы.
Если точнее, то я поставил плагин Joomir Seo Pagination, что бы у меня на всех страницах пагинации прописывались номера страниц, дабы избежать дублей по title.
Настроил, что бы было красиво "Заголовок | Страница № N".
А в итоге получается так, что при переходе на вторую страницу title становится "Заголовок | Страница № 9".
Дело только в эстетике! В идеале конечно, что бы было: адрес-сайта/?page=2 и title  "Заголовок | Страница № 2" и так далее.
Есть ли возможность это как то сделать? Не обязательно менять start на page, но вот корректное формирование номера страницы в заголовке я бы хотел.
Записан
Филипп Сорокин
Практически профи
*******

Репутация: +138/-4
Offline Offline

Пол: Мужской
Сообщений: 1794


« Ответ #6 : 23.12.2016, 18:50:35 »

Может, моя разработка вас заинтересует?
Записан
dmitry_stas
Профи
********

Репутация: +923/-6
Offline Offline

Сообщений: 9724



« Ответ #7 : 23.12.2016, 18:53:47 »

Не обязательно менять start на page, но вот корректное формирование номера страницы в заголовке я бы хотел.
вероятно нужно обратится к разработчику этого плагина. потому что если вы переходите на ?start=9, а у вас при этом Страница № 9 в заголовке - то это явно ошибка в плагине.
Записан
RTEagle
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 116



« Ответ #8 : 18.04.2017, 17:46:24 »

Вот код моей пагинации. Как сделать, чтобы ?start= прописывался не в зависимости от лимита, а по порядку ?start=2 ?start=3 ?start=4 и т.д.
Должна быть такая тема на форуме, но не нашёл.

Показать текстовый блок
Записан
dmitry_stas
Профи
********

Репутация: +923/-6
Offline Offline

Сообщений: 9724



« Ответ #9 : 18.04.2017, 18:03:17 »

легко - не сделать. потому что еще раз: start - это не номер страницы. это смещение относительно начала. т.е. иными словами сколько надо пропустить материалов сначала. есть еще limit - это сколько материалов надо выводить на странице. а чтобы сделать как вы хотите - нужно менять логику, заложенную разработчиками. это возможно, но до сих пор у меня не получилось сделать это универсально, только под конкретные условия. и это не 2 строки, чтобы просто сказать где что взять и на что поменять.
Записан
Septdir
Практически профи
*******

Репутация: +97/-3
Offline Offline

Пол: Мужской
Сообщений: 1969


Skype: septdir


« Ответ #10 : 18.04.2017, 19:09:58 »

RTEagle, а толку от такой пагинации? она сслки то конечно сделает, то сам запрос то не верный будет. тут модель каждого конкретного компонента правиться надо.
Записан
dmitry_stas
Профи
********

Репутация: +923/-6
Offline Offline

Сообщений: 9724



« Ответ #11 : 18.04.2017, 19:32:40 »

тут модель каждого конкретного компонента правиться надо.
строго говоря нет, потому что можно установить переменные ($app->input->set(...)) до того, как запрос попадет в модель. но тем не менее все равно остается еще много вопросов для универсального решения.
Записан
Филипп Сорокин
Практически профи
*******

Репутация: +138/-4
Offline Offline

Пол: Мужской
Сообщений: 1794


« Ответ #12 : 18.04.2017, 19:44:09 »

строго говоря нет, потому что можно установить переменные ($app->input->set(...)) до того, как запрос попадет в модель. но тем не менее все равно остается еще много вопросов для универсального решения.

Ни модель, ни установка глобальных переменных здесь не катит -- Joomla! будет формировать ссылки, например, в "модуле" пагинации старые -- ничего не изменится. Для трансформации урлов необходимо переопределять роутер. Опять я скромно рекламирую моё расширение, в котором данный функционал присутствует: SEF Wizard
Записан
dmitry_stas
Профи
********

Репутация: +923/-6
Offline Offline

Сообщений: 9724



« Ответ #13 : 18.04.2017, 21:05:44 »

ну строго говоря если для пагинации не используется SEF ссылка (/category/page-2.html), а используется строка запроса (/category.html?page=2), то можно обойтись без правки роутера каждого компонента. а если используется полная SEF ссылка, то наверняка тоже можно обойтись без правки роутера, но это нельзя будет сделать универсально. все можно сделать только плагином. это само собой не будет прям таки оптимально, и будет дополнительная обработка, и нагрузка, и запросы. но чисто технически - можно. но лучше конечно это делать под конкретные условия. а лучше честно говоря вообще ничего не трогать Azn не представляю, чем не устраивают стандартные url пагинации Azn
Записан
Филипп Сорокин
Практически профи
*******

Репутация: +138/-4
Offline Offline

Пол: Мужской
Сообщений: 1794


« Ответ #14 : 18.04.2017, 21:43:03 »

Без правки роутера не обойтись, да и зачем, если это единственное прямое решение? Две функции: attachParseRule и attachBuildRule, которые были специально введены для таких целей. Все извне, без правки ядра.

А без переопределения роутера у вас ссылки так и останутся в прежнем виде, даже если страница будет открываться по новому адресу.
Записан
dmitry_stas
Профи
********

Репутация: +923/-6
Offline Offline

Сообщений: 9724



« Ответ #15 : 18.04.2017, 22:46:24 »

сложности перевода Azn я вообще то под правкой роутера понимал именно редактирование файла, а не attachParseRule и attachBuildRule Azn
Записан
Septdir
Практически профи
*******

Репутация: +97/-3
Offline Offline

Пол: Мужской
Сообщений: 1969


Skype: septdir


« Ответ #16 : 19.04.2017, 13:30:44 »

Пагинацию можно и в моделе прописать свою пагинацию, так что сделать в своем компоненте не особая проблема. Но суть не в этом. Думаю dmitry_stas, выразился наиболее верно, сделать то можно, но универсально не получиться.
Записан
Филипп Сорокин
Практически профи
*******

Репутация: +138/-4
Offline Offline

Пол: Мужской
Сообщений: 1794


« Ответ #17 : 19.04.2017, 15:42:06 »

Цитировать
Пагинацию можно и в моделе прописать свою пагинацию
Хакнуть компонент? А зачем, чтобы при обновлении опять хакать? Или же сделать свой компонент на основе уже имеющегося?

Цитировать
сделать то можно, но универсально не получиться.
Ну да, для каждого компонента своя логика маршрутизации.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet