Обновление PdoPage

Ранее описал как убрать зависимость от jQuery в PdoPage
Затем залез в issues и увидел там давольно интересное предложение от @Руслан Алеев и описание ошибок с которыми тоже сталкивался не раз
Самая бесячая для меня
PHP warning: Undefined variable $showLog
решение которой начинается сразу после установки

Поэтому решил немного исправить ошибки и добавить новые фишки

Скажу сразу что я не гуру кода, часть делал через нейронку

Тестил на php начиная с 7.4 до 8.4
MODX 3.1.2
То что «вроде» получилось сделать PR кинул
https://github.com/vitos88/pdoTools3.0.3

  • убрал зависимость от jQuery (#315) файл pdopage.js и pdopage.min.js
  • убрал ошибку Undefined variable $showLog (#351) сниппет pdoPage
  • исправил &outputSeparator при включеном
    &ajaxMode=`button`
    (#354) сниппет pdoPage
  • убрал ошибку "[] operator not supported for strings in pdoCrumbs" (#367) сниппет pdoCrumbs
  • По умолчанию &sortby=`pagetitle`, но если другой класс будет то где нет pagetitle логика ломалась и нужно было дабавлять свое поле в sortby
    Поменял логику в 'core/components/pdotools/src/Fetch.php'
    Теперь если publishedon нет у обьекта будет приотитет такой:
    publishedon, createdon, menuindex, pagetitle, username, id
    вроде везде будет, id то точно (#368)
  • исправил (#370)
    исправил 'core/components/pdotools/src/Support/Paginator.php'
  • добавлен &limitOnPage в PdoPage (#374) сниппет pdoPage
    Теперь если в PdoPage задан limitOnPage он имеет высокий приоритет и limit игнорируется полностью
    limit из post/get средний приоритет
    если оставить как обычно limit это будет самый низкий преоритет
У меня не получилось повторить ошибки из issues
#366
#369
#381

Не получилось исправить
#372
#375
ВитОс
05 октября 2025, 23:37
modx.pro
520
+7

Комментарии: 8

Сергей Шлоков
06 октября 2025, 08:12
+3
Минус ставить не буду (не сторонник этого), просто скажу, что это полный треш! Даже на этапе оформления уже понятно, что код смотреть не нужно.

Небольшой дружеский совет. Желание внести свой вклад в развитие продукта очень похвально. Это уже половина успеха. Но перед тем, как сразу браться за большое и важное дополнение, не имея ни опыта, полного понимания продукта, потренируйся на чём-то простом. И первое, что стоило бы прокачать — навык владения русским языком. Просто кровь из глаз. Раньше раздражало, когда запятые поставить не могли. Тут уже следующий уровень деградации — даже точку в конце предложения поставить трудно. Сторонние наблюдатели могут подумать, что в программисты идут одни дебилы. Что совершенно не так!
    Дима Касаткин
    06 октября 2025, 15:53
    +3
    Человек похоже не ставил целей потренироваться в контрибьютинге, а хотел пофиксить моменты, которые ему не давали покоя. Чего набрасываться-то?! Тем более, что он извинился заранее за хреновый код…

    @ВитОс понятное дело, что в первозданном виде изменения в ряд ли попадут в общественную версию, но всё равно спасибо, что решился не только втихаря поправить на своём сайте и забить, а хотя бы сделал попытку привнести вклад в общественно полезный компонент!

    Тем, кто пишет красивый заказной код, пригодный для вливания сразу в продакшен-версию, зачастую не хватает времени и мотивации, ведь красивописание — очень утомительно, это факт. Но, быть может, с твоей подачи кто-то ещё подхватит флаг и возьмется, например, оформить PR как надо. И таким образом продвинется процесс закрытия багов и улучшений компонента!
      ВитОс
      06 октября 2025, 16:39
      +2
      спасибо. я и хотел просто поделиться. Понятное дело что попадет в общую версию, просто когда ищешь как решить одну и туже проблему по сто раз уходит много времени, вот и решил тут поделиться
        Сергей Шлоков
        06 октября 2025, 18:18
        +1
        Это наиважнейший компонент MODX. Гораздо важнее не просто что-то поправить, а выпустить рабочую версию. Если ты посмотришь старые посты, где Василий выпускал новые версии, то увидишь, что в комментариях люди писали о багах, которые он оперативно фиксил. И это человек, у которого в голове каждая переменная и запятая pdoTools. Перед выпуском он тестировал версию. И то что-то ломалось.
        Потом это подхватил я, как перед выпуском также тестировал очень внимательно. И опять же где-то пропускал баги. Вот народ мне насовывал в панамку.

        Я в прошлом году начал делать обновления, о которых писал у себя в блоге. Только, чтобы всё это протестить, нужно времени гораздо больше. На этом и застрял. Нельзя просто выкатить новый функционал без тестирования.

        Даже малейшее изменение нужно тестировать глубоко и долго. А тут такая куча мала, что никто даже не возьмется это делать. Нужны небольшие PR с подробным описанием, а один PR со всевозможными фиксами, форматами и без описания.
          Дима Касаткин
          06 октября 2025, 21:01
          0
          Тут согласен без оговорок. Но контексте топика — рвение и инициативу предпочитаю поощрять, или хотя бы не мешать ;)
      vectorserver
      07 октября 2025, 16:04
      0
      Согласен с первым комментарием, деградация написания 80lvl.
        Александр Туниеков
        14 октября 2025, 18:11
        0
        Полез смотреть код и похоже @ВитОс его откатил :-(. Пустые коммиты только вижу.
          ВитОс
          14 октября 2025, 23:12
          0
          удалил pr будет время создам заново, как нужно, по одному, а не пачкой
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          8