pdoTools. Планы на развитие


С сегодняшнего дня за развитие и поддержку компонента отвечаю я. Поэтому я планирую реализовать все те наработки, о которых писал и говорил. Вот планируемые работы на ближайшую версию —
  • Закрыть вопросы безопасности насколько возможно.
  • У сниппетов есть небезопасный параметр «elementsPath», который позволяет контент-менеджеру обходить соответствующую системную настройку. Я считаю, такое разрешать нельзя. Но его удаление влияет на обратную совместимость. Пока не придумал, что с этим делать.
  • Оптимизировать класс pdoFetch для работы с запросами. Особенно актуально для больших сайтов.
  • Добавить сниппетам возможность возвращать необработанный массив данных.
  • Это востребовано при использовании Fenom. Сейчас есть возможность получить такой массив через кодировку в json и обратно, но это всё-таки оверхед.
Ещё нужно провести ревизию всех модификаторов. Современные требования разработки не допускают использования логики приложения в представлении. Соответственно в эти требования не вписывается модификатор setOption, позволяющие менять конфиг приложения прямо на странице.

Остаются ещё подвешенные вопросы с кэшированием файловых элементов и разными вызовами чанков. Тут придётся чесать голову двумя руками.

Ну и напоследок. Проект переехал на мой аккаунт. Issues там открыты. Так что пишите туда об ошибках и свои предложения.

П.С. Забыл написать про расширение Fenom плагинами, добавляющими функциональные возможности как у Smarty. Хотя я всё-таки из этих двух шаблонизаторов отдаю предпочтение Smarty.
Сергей Шлоков
17 августа 2021, 10:59
modx.pro
1 986
+37
Поблагодарить автора Отправить деньги

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

Баха Волков
17 августа 2021, 11:05
+2
Добавить сниппетам возможность возвращать необработанный массив данных.
Это востребовано при использовании Fenom. Сейчас есть возможность получить такой массив через кодировку в json и обратно, но это всё-таки оверхед.
Я тут похлопаю
    Anton
    27 августа 2021, 13:44
    0
    Тоже буду очень рад такому функционалу!
    @Сергей Шлоков, у меня нет возможности отправить на поддержку через кнопку выше. Я могу отправить тебе на PayPal?
      Сергей Шлоков
      29 августа 2021, 14:33
      0
      Если есть желание поддержать проект, то почему нет?
        Anton
        30 августа 2021, 12:05
        0
        Есть желание поддержать именно проект :) Давай email или ссылку на оплату для PP. Куда слать?
    Баха Волков
    17 августа 2021, 11:07
    +4
    Ура, уважаемый Сергей теперь вместо того, чтобы просто бомбить, будет бомбить и делать)
      Yurij Finiv
      17 августа 2021, 11:46
      0
      Отличная новость.
      У сниппетов есть небезопасный параметр «elementsPath», который позволяет контент-менеджеру обходить соответствующую системную настройку.
      Сознаюсь честно, использовал данную опцию в некоторых проектах, так как было удобно не строчить долгий путь к папке
        Сергей Шлоков
        17 августа 2021, 12:14
        0
        Может я чего-то не понимаю, но получается совсем не короче. Этот путь из названия перемещается в параметр. Т.е. ещё нужно писать отдельный параметр. Что явно выглядит длиннее.
        Алексей Соин
        17 августа 2021, 14:19
        0
        Хотя я всё-таки из этих двух шаблонизаторов отдаю предпочтение Smarty.
        А в связи с тем что fenom не обновляется уже больше года и по возможностям уступает другим шаблонизаторам, планируется ли в pdoTools добавить поддержку тогоже Smarty(Twig)? Ну или использовать по умолчанию не феном в pdotools для modx 3(если он когдато выйдет?).
          Сергей Шлоков
          17 августа 2021, 16:42
          +2
          Да, планирую. Если парсер для страниц можно указать любой (в системной настройке) и отказаться от pdoParser'а, то чанки парсятся жестко только феномом на глядя на то, какой парсер указан в настройке. В принципе можно отключить феном для чанков (отдельной настройкой), то там другая засада — текущий парсер включится только если есть скобки [[. Т.е. ни смарти ни твиговские теги не распарсятся. Как-то так, если я ничего не путаю.

          В общем, задача — чтобы pdoTools всегда использовал указанный в системной настройке парсер, который может быть pdoParser, SmartyParser (есть в ZoomX) или TwigParser (если такой будет).
          Aleksandr Huz
          17 августа 2021, 14:45
          +2
          Думаю, что для развития pdoTools нужно создать сбор, так как без поддержки энтузиазм долго не живет.
          А еще, не мешало бы переписать скрипты на ванильный js.
            Сергей Шлоков
            17 августа 2021, 16:47
            +1
            Ну можно поступить проще — нажать сверху кнопочку «Поблагодарить автора» и угостить его хорошим кофе ;)
              Aleksandr Huz
              17 августа 2021, 17:05
              +2
              Переслал на хорошее кофе с булочкой))
                Сергей Шлоков
                17 августа 2021, 17:33
                +2
                Прилетело. Спасибо за хороший кофе, но булочку заменю на хороший сыр. ))
              Max
              Max
              18 августа 2021, 11:20
              +1
              Заслал на кофе, бро))
                Сергей Шлоков
                18 августа 2021, 12:06
                0
                Упало. Спрячу на черный день )) Спасибо!
            Александр Туниеков
            17 августа 2021, 19:37
            +1
            Отправил соточку :). С наумкиным не сложилось PR отправлять. Ошибки в pdoTools такие: кавычки неправильно ставит собака. Часто подсчет строк в кавычках, на функциях и where может неправильно кавычки поставит. Как вспомню где именно так отправлю Issues. В моей версии pdoTools они поправлены. Хотя и костылями.
              Сергей Шлоков
              18 августа 2021, 07:32
              0
              Спасибо! С таким не сталкивался. Может это проделки xPDO? Вспомнишь, пиши.
              Сергей Шлоков
              17 августа 2021, 19:46
              +3
              Вопросы безопасности закрою в самом ближайшем будущем. Для понимания, я нашел сайт, на котором смог вывести полный список пользователей. Заходить в админку не стал, просто написал админу сайта. А дальше запускается робот и собирает список для взлома. А подписчикам моего телеграм-канала я показывал, что контент-менеджер (человек с доступом только к ресурсам) может вывести любой файл на страницу и как пример вывел файл config.inc.php. Тоже самое можно сделать снаружи на плохо защищённых сайтах как в первом примере. Так что вопрос серьезный.
                Семён Кудрявцев
                17 августа 2021, 21:00
                0
                Сергей, поздравляю! Хорошая новость.
                Видишь как сложилось, ты хотел писать замену pdoTools, а получилось, что сам пакет тебе передали на попечение.
                Жду с нетерпением возможности использовать smarty из твоего ZOOMX в pdoTools, теперь не надо будет использовать 2 шаблонизатора на сайте)
                По поводу безопасности, читал и в телеге и в твоем блоге, может тут пойти по такому же принципу как в последней обнове движка сделали, для статичных элементов добавили настройки, ограничивающие куда можно класть статические элементы. Можно даже под эти настройки завязаться, так как один фиг все шаблоны где-то должны в одном месте лежать. То есть ограничить какой-нить одной папкой, чтобы ни до чего другого было не дотянуться.
                  Сергей Шлоков
                  18 августа 2021, 08:09
                  +2
                  Спасибо за поздравление с тем, что я буду больше бесплатно работать. )))
                  Замена планировалась на основе modHelpers. Осталось написать замену сниппетам. Но я хотел заменить их на сервисы. Чтоб как у взрослых. Чем меньше MODX специфичных вещей, тем легче перемещаться между стеками. И легче заходить в MODX из тех же фреймворков.

                  Можно даже под эти настройки завязаться, так как один фиг все шаблоны где-то должны в одном месте лежать.
                  Статические элементы и файловые элементы — семантически разные вещи. Последние не имеют дубля в БД. Лучше их не путать. Дополнительные настройки только запутают людей. В pdoTools есть системная настройка «pdotools_elements_path». Её определяет человек с правами на эту операцию. Если нужно переопределять папку с шаблонами согласно какой-то логике, контент-менеджер просит этого человека и тот пишет плагин, в котором переписывает настройку согласно задаче. Всё просто, логично и под контролем. Ну не должен контент-менеджер иметь права гулять по всей файловой системе.
                  Misha Bulic
                  18 августа 2021, 18:07
                  0
                  Поправьте ссылку в пагинации /?page=1, чтобы она вела на первую страницу без пагинации. Сеошники задолбали с этим.
                  Alexey
                  18 августа 2021, 18:28
                  0
                  Очень круто! Отправил свои пять рублей))
                  Альберт Арсланов
                  19 августа 2021, 10:02
                  0
                  Хорошая новость. Поддержал историю с донатами
                  Futuris
                  20 августа 2021, 10:29
                  +1
                  Внес свою лепту) Спасибо за ваш труд!
                  TITAN-UZ
                  30 августа 2021, 12:18
                  0
                  Сергей пожалуйста добавте это функцию на все сниппеты

                  &direction	ltr
                  Направление навигации: слева направо «ltr» или справа налево «rtl», например для Арабского языка.
                    Misha Bulic
                    10 сентября 2021, 09:24
                    0
                    Можно ли добавить поддержку параметра return для pdoNeighbors. В самом сниппете не очень удобно выводить результаты, а если получить только id и выводить уже привычными способами будет гораздо удобнее.

                    Ещё, если это возможно, давить параметр для обёртки каждого результата pdoresources. Сейчас можно обернуть только весь вывод, но не каждый результат.
                      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                      32