Как я внедрял чаты в задачи на сайте MODX-Клуба
Осторожно, реклама!
Всем привет!
Я ранее уже писал, что на сайте Клуба внедрял Чаты и Управление задачами. Чаты реализованы с помощью компонента @prisma-cms/society, а Задачи с помощью @prisma-cms/components. То есть это такие отдельные, как бы не связанные друг с другом компоненты. А вот сегодня мне захотелось сделать так, чтобы в любой отдельной задаче можно было создать свой самостоятельный чат (очень удобно, когда в проекте много задач и нельзя просто так взять и все обсудить в одном чате). И вот этот процесс сегодня по мере внедрения я описывал в статье. Получилась очень подробная и наглядная статья. Думаю, что даже при условии того, что это не на MODX написано, все равно может быть интересно почитать (просто для расширения кругозора). Если интересно, вот она: modxclub.ru/topics/vnedryaem-chaty-v-zadachi.html
Всем привет!
Я ранее уже писал, что на сайте Клуба внедрял Чаты и Управление задачами. Чаты реализованы с помощью компонента @prisma-cms/society, а Задачи с помощью @prisma-cms/components. То есть это такие отдельные, как бы не связанные друг с другом компоненты. А вот сегодня мне захотелось сделать так, чтобы в любой отдельной задаче можно было создать свой самостоятельный чат (очень удобно, когда в проекте много задач и нельзя просто так взять и все обсудить в одном чате). И вот этот процесс сегодня по мере внедрения я описывал в статье. Получилась очень подробная и наглядная статья. Думаю, что даже при условии того, что это не на MODX написано, все равно может быть интересно почитать (просто для расширения кругозора). Если интересно, вот она: modxclub.ru/topics/vnedryaem-chaty-v-zadachi.html
Комментарии: 26
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
С тем же успехом можно начать ссылки про Bitrix или Laravel таскать.
Fi1osofКто-то вод сторонние сервисы подключает типа Discuss. Ты же не против подключения Disqus? Тут вот есть заметки за него: modx.pro/search?query=disqus А это 99% сторонний сервис с хранением контента на стороне и написанном не ясно на чем. Вот и здесь вполне можно думать чтобы такое полезное сделать.
Ты же пиаришь свой сайт и свои разработки, не связанные с MODX. Тебе нужны посетители, вот и пишешь здесь.
Давай ты про Prisma-CMS будешь писать, например, на Хабре? А пока от меня лично минус, дальше пусть сообщество голосует.
Fi1osofFi1osofrest api на modx с готовой базой запросов уже есть?
Fi1osofТогда еще основной бэк modxclub.ru был на MODX, но фронт уже на JS. Между ними как раз и был GraphQL-сервер на призме. Часть запросов слалось на MODX-коннекторы, а часть запросов — прямая работа с БД через ORM knex.
Fi1osofdocs.modx.com/xpdo/2.x/class-reference/xpdo/xpdo.getobjectgraph
Все ровно необходимость в описании всего этого требуется без сомнений)
синтаксис короче без сомнений.
на modx это аналогично составляется через sheme.
Блин ну реально можно также данные выдергивать в одной строке
Отличие только в синтаксисе.
Глубоко лазил тоже было интересно что будет.
По сути преимущество в том что уже все загружено до того как это понадобилось всего лишь по одному слову.
Но это же напрягат весь сервер, тянутся все подряд данные. Что соответсвенно на память влияют, я тоже за то чтобы все сервера так работали)))) Но увы не все сервера так могу.
Fi1osofНа стороне сервера при его обработке GraphQL выполнит запрос на получение топиков, а потом, пробегаясь по каждому результату, будет получать авторов. (Это базовая процедура и конечно же может сильно отличаться в зависимости от подхода конечного разработчика, но в большинстве случаев будет работать именно так). Но если мы пошлем туда же этот же запрос, только исключим из него авторов, то есть вот такой запрос:
то и получать и отдавать сервер будет только топики. А вот авторов он не будет получать. То есть нет лишней нагрузки.
В случае же с приведенным примером на MODX Graph, серверный запрос всегда будет получать все описанные в исходном запросе данные. И всегда отдавать их все. То есть если и использовать с этим GraphQL, то в лучшем случае мы получим меньше данных в запросе (сэкономим трафик), но нагрузка от этого сильно не упадет. И второй момент: мы не сможем получить больше, то есть запрос полный описан уже, и если мы туда что-то забыли прописать на серверной части, то больше запросить и не сможем. В полноценной же реализации можно получать результаты с очень большой вложенностью.
Fi1osofFi1osofFi1osofПросто суть в чем у меня допустим есть конфиг sphinxsearch который индексирует ресурсы. Грубо говоря необходимо установить его на сервер, отдать конфиг с настройками и установить компонент в modx, он уже будет работать.
Такое возможно сейчас с GraphQL? Просто можно и лар и python и С+ встроить в modx, но оно того стоит?
Fi1osofА вот пример запроса с использованием GraphQL: modxclub.ru/topics?filters=%7B%22CreatedBy%22%3A%7B%22username_not%22%3A%22Fi1osof%22%7D%2C%22Comments_every%22%3A%7B%22CreatedBy%22%3A%7B%22username_not%22%3A%22Fi1osof%22%7D%7D%2C%22Comments_some%22%3A%7B%7D%2C%22Blog%22%3A%7B%22name%22%3A%22%D0%BF%D0%B5%D1%81%D0%BE%D1%87%D0%BD%D0%B8%D1%86%D0%B0%22%7D%2C%22Tags_some%22%3A%7B%22Tag%22%3A%7B%22name_contains%22%3A%22pdo%22%7D%7D%2C%22contentText_contains%22%3A%22pdoTools%22%7D
Расшифровка: «Получить все топики, созданные не мной, в блоге Песочница, с тегом pdo, в которых есть хотя бы один комментарий и все комментарии написаны не мной». И это далеко не последний уровень вложенности запросов. Покажите на MODX хоть один проект с подобными фильтрами.
Это как я понимаю фронтенд индивидуально написан?
Fi1osofКак это работает, подробно описано здесь: modxclub.ru/topics/modx-klub-2.14.0-filtry-by-@prisma-cms/filters.html (ссылку копируйте и вставляйте в браузер, она тут баженно обрабатывается)
Fi1osof