
Василий Наумкин
С нами с 08 декабря 2012; Место в рейтинге пользователей: #1Удаление черновиков на modx.pro
Выкроил время и немного обновил наше любимое сообщество по просьбам общественности.
Теперь, наконец-то, можно удалять свои черновики! Заодно еще поправил форму создания тикета, чтобы все кнопки правильно отключались при отправке запроса на сервер.
Ура, товарищи!
Теперь, наконец-то, можно удалять свои черновики! Заодно еще поправил форму создания тикета, чтобы все кнопки правильно отключались при отправке запроса на сервер.
Ура, товарищи!
Сайт modxclub.ru закрылся
Вслед за modx-cms.ru закрылся и modxclub.ru:
Всем привет!Источник
Не знаю будет ли для кого эта новость печальна или нет (хотя судя по активности в последнее время, скорее всего нет), но больше MODX-Клуба нет. Надо отдать должное, MODX долго присутствовал в моей жизни, но, к сожалению, он сильно отстал от современных технологий (мое скромное мнение). Я для себя дальнейший путь выбрал — javascript, и написанный мною на нем движок prisma-cms. Теперь сайт окончательно переезжает на prisma-cms.com. Статьи по MODX останутся на прежнем месте и общаться по MODX конечно же совсем не возбраняется. Но лучше про js/react/graphql и т.п.
[jwtSession] Moving session cookies to your browser
Hello friends!
Did you wonder how sessions work in MODX? Every time someone visits the site, PHP generates a unique id for it and stores it in a PHPSESSID cookie. At the same time, an modSession record is created in the database with this id and the contents of the current session.
Each time a request is submitted, a cookie with id is sent to the site, and MODX makes a request to the database, loads the session, and then saves the changes to it. At least 2 queries to the database every time.
What does JWT offer us? Abandon all these actions on the server, and give everything you need right away in one token. It can be stored in cookies or in the browser’s local storage. And then, upon request, a user session will be created from it. Accordingly, we throw out work with the database and do not store user sessions on the server at all.
Of course, the question immediately arises — what will happen if the user fakes such a session? JWT standard will not allow it. Tokens can be read, but not changed, because they are all signed by a reliable algorithm with a key on a server that the user does not know. This is a theory, and now we proceed to practice in MODX.
Did you wonder how sessions work in MODX? Every time someone visits the site, PHP generates a unique id for it and stores it in a PHPSESSID cookie. At the same time, an modSession record is created in the database with this id and the contents of the current session.
Each time a request is submitted, a cookie with id is sent to the site, and MODX makes a request to the database, loads the session, and then saves the changes to it. At least 2 queries to the database every time.
What does JWT offer us? Abandon all these actions on the server, and give everything you need right away in one token. It can be stored in cookies or in the browser’s local storage. And then, upon request, a user session will be created from it. Accordingly, we throw out work with the database and do not store user sessions on the server at all.
Of course, the question immediately arises — what will happen if the user fakes such a session? JWT standard will not allow it. Tokens can be read, but not changed, because they are all signed by a reliable algorithm with a key on a server that the user does not know. This is a theory, and now we proceed to practice in MODX.
[jwtSession] Перенос сессии в куки браузера
Привет, друзья!
Вы задумывались, как работают сессии в MODX? Каждый раз, когда кто-то заходит на сайт, PHP генерирует ему уникальный id и сохраняет его в куку PHPSESSID. При этом в базе данных создаётся запись modSession с этим id и содержимым текущей сессии.
При каждом запросе на сайт передаётся кука с id, MODX делает запрос в БД, загружает сессию, а потом сохраняет в неё изменения. Минимум 2 запроса в БД каждый раз.
Что же нам предлагает JWT? Отказаться от всех этих действий на сервере, и выдавать всё нужное сразу в одном токене. Он может храниться в кукисах или в локальном хранилище браузера. Ну а дальше, при запросе, из него будет создана сессия пользователя. Соответственно, мы выкидываем работу с БД и не храним пользовательские сессии на сервере вовсе.
Конечно, сразу же встаёт вопрос — а что будет, если пользователь такую сессию подделает? Стандарт JWT ему этого не позволит. Токены можно прочитать, но не изменить, потому что они все подписаны надёжным алгоритмом с ключом на сервере, который пользователь не знает. Это теория, а теперь переходим к практике в MODX.
Вы задумывались, как работают сессии в MODX? Каждый раз, когда кто-то заходит на сайт, PHP генерирует ему уникальный id и сохраняет его в куку PHPSESSID. При этом в базе данных создаётся запись modSession с этим id и содержимым текущей сессии.
При каждом запросе на сайт передаётся кука с id, MODX делает запрос в БД, загружает сессию, а потом сохраняет в неё изменения. Минимум 2 запроса в БД каждый раз.
Что же нам предлагает JWT? Отказаться от всех этих действий на сервере, и выдавать всё нужное сразу в одном токене. Он может храниться в кукисах или в локальном хранилище браузера. Ну а дальше, при запросе, из него будет создана сессия пользователя. Соответственно, мы выкидываем работу с БД и не храним пользовательские сессии на сервере вовсе.
Конечно, сразу же встаёт вопрос — а что будет, если пользователь такую сессию подделает? Стандарт JWT ему этого не позволит. Токены можно прочитать, но не изменить, потому что они все подписаны надёжным алгоритмом с ключом на сервере, который пользователь не знает. Это теория, а теперь переходим к практике в MODX.
[Jevix] Версия 1.3
Еще одно дополнение, которое давно не обновлялось.
Но тут случилось сразу 2 события:
— @Евгений Борисов собрал все фиксы в одном репозитории и опубликовал Jevix на packagist. Так что теперь его можно использовать в любых проектах через Composer.
— и @Fi1osof заметил недоработку с формированием ссылок со знаком @
Но тут случилось сразу 2 события:
— @Евгений Борисов собрал все фиксы в одном репозитории и опубликовал Jevix на packagist. Так что теперь его можно использовать в любых проектах через Composer.
— и @Fi1osof заметил недоработку с формированием ссылок со знаком @
[Theme.Bootstrap] Новая версия с Bootstrap 4
Привет, друзья!
Наконец-то у меня дошли руки до обновления Theme.Bootstrap, который не менялся аж с 2017 года. Причина проста — если переводить его на Bootstrap 4, то нужно менять и стандартные чанки у кучи дополнений, а это долго.
В итоге, вместе с Theme.Bootstrap были обновлены и:
Наконец-то у меня дошли руки до обновления Theme.Bootstrap, который не менялся аж с 2017 года. Причина проста — если переводить его на Bootstrap 4, то нужно менять и стандартные чанки у кучи дополнений, а это долго.
В итоге, вместе с Theme.Bootstrap были обновлены и:
- pdoTools
- miniShop2 (помимо чанков вошли еще несколько правок, см. changelog)
- mSearch2 (а здесь чанки даже на Fenom переписаны, ура!)
- Office
Чистка пользователей сообщества
Вслед за упоминанием пользователей пришлось и почистить наши username, потому что там столько всякий дичи, еще со времён bezumkin.ru!
Первым делом я отключил все аккаунты, которые не заходили сюда больше года. Из 7+ тысяч пользователй осталось всего 2+. А затем уточнил правила для username пользователей:
Первым делом я отключил все аккаунты, которые не заходили сюда больше года. Из 7+ тысяч пользователй осталось всего 2+. А затем уточнил правила для username пользователей:
- Логин должен быть от 2 и до 50 символов
- Содержать английский алфавит, цифры, точку, тире и подчёркивание.
- Должен начинаться и заканчиваться цифрой или буквой
- Цифры, точки и подчеркивания не могут повторяться подряд
Упоминание пользователей
Привет друзья!
Рад анонсировать новую функцию в нашем сообществе, которая давно стала привычной на всех крупных сервисах — это возможность упомянуть пользователя, чтобы ему пришло уведомление, а само упоминание стало ссылкой на его профиль.
Работает как обычно, просто начните набирать @ и вам вылезет автоподсказка. Продолжайте набирать имя, и найдёте нужного пользователя.
Примерно так:
Рад анонсировать новую функцию в нашем сообществе, которая давно стала привычной на всех крупных сервисах — это возможность упомянуть пользователя, чтобы ему пришло уведомление, а само упоминание стало ссылкой на его профиль.
Работает как обычно, просто начните набирать @ и вам вылезет автоподсказка. Продолжайте набирать имя, и найдёте нужного пользователя.
Примерно так:

[mSearch2] Версия 1.13 с поддержкой плагинов ms2
Представляю вам новую версию самого популярного дополнения в modstore.pro, которая улучшает работу фильтра с дополнениями для скидок.
Как известно, mFilter2 работает напрямую с базой данных, чтобы выбирать все данные для построения фильтров максимально быстро. И если эти данные чем-то меняются перед выводом, например дополнением msDiscount, то в фильтре цены будут одни значения, а при выводе товаров — другие.
Раньше мы просто расширяли фильтр и добавляли поддержку плагинов при выборке, но в новой версии это сделано из коробки.
Как известно, mFilter2 работает напрямую с базой данных, чтобы выбирать все данные для построения фильтров максимально быстро. И если эти данные чем-то меняются перед выводом, например дополнением msDiscount, то в фильтре цены будут одни значения, а при выводе товаров — другие.
Раньше мы просто расширяли фильтр и добавляли поддержку плагинов при выборке, но в новой версии это сделано из коробки.
Thanks to the author
Hello, my friends!
Yesterday, the Habr announced thanks to Habr's authors, and I thought — why are we worse?
From today, you can specify details for payment services in your settings, and immediately after that you will have a button in your profile and in topics, next to the name. So far, I added these services:
Yesterday, the Habr announced thanks to Habr's authors, and I thought — why are we worse?
From today, you can specify details for payment services in your settings, and immediately after that you will have a button in your profile and in topics, next to the name. So far, I added these services:
- Paypal
- Donation Alerts
- WebMoney
- Yandex.Money
- Qiwi