Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 8 Ответов
  • 2079 Просмотров
*

dmitran

  • Новичок
  • 6
  • 0 / 0
Ошибки в пагинации
« : 27.11.2024, 12:52:42 »
В случаях, когда у пользователя много объявлений у меня некорректно работает пагинация на странице автора объявлений http://localhost/component/djclassifieds/profile/55 : в ссылках на следующие страницы списка объявлений отсутствует id автора и получается вместо http://localhost/profile/,55?start=12 некорректная ссылка http://localhost/profile?layout=blog&start=12, при переходе на которую либо просит войти, либо, если вошел, открывается мой собственный профиль, а не профиль автора с ID=55.
Версия компонента 3.10.1
Joomla 5.2.1.
Может какой пункт меню надо создать или это глюк Joomla/компонента?
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
Re: Ошибки в пагинации
« Ответ #1 : 27.11.2024, 14:22:26 »
Каким параметром передается ИД автора (в неотсефенной ссылке). Посмотреть можно, если отключить чпу.

Есть вероятность, что у вас проявилась вот эта проблема:
Спойлер
[свернуть]
« Последнее редактирование: 27.11.2024, 14:25:33 от sivers »
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

dmitran

  • Новичок
  • 6
  • 0 / 0
Re: Ошибки в пагинации
« Ответ #2 : 27.11.2024, 23:04:48 »
Вошел на страницу пользователя: https://localhost/?option=com_djclassifieds&view=profile&Itemid=127&uid=55:nina
Ссылка на следующую страницу в пагинации: https://localhost/index.php?option=com_djclassifieds&view=profile&Itemid=127&limitstart=18 , то есть, ID пользователя отсутствует.
Спасибо за ссылку, теперь понятно.
Наверное, мне проще будет развернуть на более ранней версии Joomla, чтобы не творить то, чего не умею )
Остается надеяться, что разработчик выпустит новую версию с исправлением ситуации.
DJ-Catalog для пятерки уже, судя по инфо на сайте, корректно должен работать
*

dmitran

  • Новичок
  • 6
  • 0 / 0
Re: Ошибки в пагинации
« Ответ #3 : 28.11.2024, 10:20:45 »
В файл localhost\libraries\src\Pagination\Pagination.php
добавил строчку
     * @since  5.2.0
     */
    protected $paramsFromRequest = [
        'format'        => 'CMD',
        'option'        => 'CMD',
        'controller'    => 'CMD',
        'view'          => 'CMD',
        'layout'        => 'STRING',
        'task'          => 'CMD',
        'template'      => 'CMD',
        'templateStyle' => 'INT',
        'tmpl'          => 'CMD',
        'tpl'           => 'CMD',
        'id'            => 'STRING',
        'Itemid'        => 'INT',
   'uid'            => 'INT',
    ];


теперь работает
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
Re: Ошибки в пагинации
« Ответ #4 : 28.11.2024, 11:37:25 »
Следующее обновление Joomla затрет эту правку. Правильнее было бы добавить строчку во вьюху проблемного компонента.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

dmitran

  • Новичок
  • 6
  • 0 / 0
Re: Ошибки в пагинации
« Ответ #5 : 28.11.2024, 13:13:32 »
Да, Вы правы. Так и сделаю. Буду искать, как правильно оформить строку в файлах view
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
Re: Ошибки в пагинации
« Ответ #6 : 28.11.2024, 15:08:28 »
Найдите где создается объект пагинации. Что-то вроде такого:
Код
$this->pagination = new Pagination($total, $limitstart, $limit);
После этой строки допишите:
Код
$this->pagination->setAdditionalUrlParam('uid', $uidValue);
$uidValue - это значение параметра uid, его можно прочитать через $app->input или через $this->state во вьюхе - там поищите его значение.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

dmitran

  • Новичок
  • 6
  • 0 / 0
Re: Ошибки в пагинации
« Ответ #7 : 02.12.2024, 13:21:36 »
Большое спасибо!
Судя по
Код
$uid = $app->input->getInt('uid', 0);
параметром $uidValue надо указывать $uid , но при добавлении строки
Код
$this->pagination->setAdditionalUrlParam('uid', $user->id);
или
Код
$this->pagination->setAdditionalUrlParam('uid', $uid);
при попытке посмотреть страницу профиля автора вылетает ошибка "ERROR 0 - Call to a member function setAdditionalUrlParam() on null in..."

Ради эксперимента добавил строку
Код
echo $uid;
на странице отобразился тот самый id пользователя
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
Re: Ошибки в пагинации
« Ответ #8 : 02.12.2024, 13:24:30 »
Похоже, что в месте вызова у вас $this->pagination не инициализирован. можно попробовать добавление этой строки не во вьюхе, а в макете перед выводом пагинации непосредственно
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться