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

С сегодняшнего дня за развитие и поддержку компонента отвечаю я. Поэтому я планирую реализовать все те наработки, о которых писал и говорил. Вот планируемые работы на ближайшую версию —
- Закрыть вопросы безопасности насколько возможно. У сниппетов есть небезопасный параметр «elementsPath», который позволяет контент-менеджеру обходить соответствующую системную настройку. Я считаю, такое разрешать нельзя. Но его удаление влияет на обратную совместимость. Пока не придумал, что с этим делать.
- Оптимизировать класс pdoFetch для работы с запросами. Особенно актуально для больших сайтов.
- Добавить сниппетам возможность возвращать необработанный массив данных. Это востребовано при использовании Fenom. Сейчас есть возможность получить такой массив через кодировку в json и обратно, но это всё-таки оверхед.
Остаются ещё подвешенные вопросы с кэшированием файловых элементов и разными вызовами чанков. Тут придётся чесать голову двумя руками.
Ну и напоследок. Проект переехал на мой аккаунт. Issues там открыты. Так что пишите туда об ошибках и свои предложения.
П.С. Забыл написать про расширение Fenom плагинами, добавляющими функциональные возможности как у Smarty. Хотя я всё-таки из этих двух шаблонизаторов отдаю предпочтение Smarty.
Комментарии: 32
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
@Сергей Шлоков, у меня нет возможности отправить на поддержку через кнопку выше. Я могу отправить тебе на PayPal?
Сознаюсь честно, использовал данную опцию в некоторых проектах, так как было удобно не строчить долгий путь к папке
В общем, задача — чтобы pdoTools всегда использовал указанный в системной настройке парсер, который может быть pdoParser, SmartyParser (есть в ZoomX) или TwigParser (если такой будет).
А еще, не мешало бы переписать скрипты на ванильный js.
Видишь как сложилось, ты хотел писать замену pdoTools, а получилось, что сам пакет тебе передали на попечение.
Жду с нетерпением возможности использовать smarty из твоего ZOOMX в pdoTools, теперь не надо будет использовать 2 шаблонизатора на сайте)
По поводу безопасности, читал и в телеге и в твоем блоге, может тут пойти по такому же принципу как в последней обнове движка сделали, для статичных элементов добавили настройки, ограничивающие куда можно класть статические элементы. Можно даже под эти настройки завязаться, так как один фиг все шаблоны где-то должны в одном месте лежать. То есть ограничить какой-нить одной папкой, чтобы ни до чего другого было не дотянуться.
Замена планировалась на основе modHelpers. Осталось написать замену сниппетам. Но я хотел заменить их на сервисы. Чтоб как у взрослых. Чем меньше MODX специфичных вещей, тем легче перемещаться между стеками. И легче заходить в MODX из тех же фреймворков.
Статические элементы и файловые элементы — семантически разные вещи. Последние не имеют дубля в БД. Лучше их не путать. Дополнительные настройки только запутают людей. В pdoTools есть системная настройка «pdotools_elements_path». Её определяет человек с правами на эту операцию. Если нужно переопределять папку с шаблонами согласно какой-то логике, контент-менеджер просит этого человека и тот пишет плагин, в котором переписывает настройку согласно задаче. Всё просто, логично и под контролем. Ну не должен контент-менеджер иметь права гулять по всей файловой системе.
Ещё, если это возможно, давить параметр для обёртки каждого результата pdoresources. Сейчас можно обернуть только весь вывод, но не каждый результат.