Василий Наумкин

Василий Наумкин

С нами с 08 декабря 2012; Место в рейтинге пользователей: #1

Обновление App

С некоторых пор я плотно переехал на Webpack, так что решил обновить и свою заготовку для создания сайтов App.

Точкой входа во frontend приложение служит _build/assets/js/index.js, там вот такой код:
import 'jquery'
import 'bootstrap'
import '../scss/index.scss'

console.log('App is loaded!');
Василий Наумкин
21 мая 2019, 13:12
9
469
+28

Удаление черновиков на modx.pro

Выкроил время и немного обновил наше любимое сообщество по просьбам общественности.

Теперь, наконец-то, можно удалять свои черновики! Заодно еще поправил форму создания тикета, чтобы все кнопки правильно отключались при отправке запроса на сервер.

Ура, товарищи!
Василий Наумкин
04 мая 2019, 08:03
329
+17

Сайт modxclub.ru закрылся

Вслед за modx-cms.ru закрылся и modxclub.ru:

Всем привет!

Не знаю будет ли для кого эта новость печальна или нет (хотя судя по активности в последнее время, скорее всего нет), но больше MODX-Клуба нет. Надо отдать должное, MODX долго присутствовал в моей жизни, но, к сожалению, он сильно отстал от современных технологий (мое скромное мнение). Я для себя дальнейший путь выбрал — javascript, и написанный мною на нем движок prisma-cms. Теперь сайт окончательно переезжает на prisma-cms.com. Статьи по MODX останутся на прежнем месте и общаться по MODX конечно же совсем не возбраняется. Но лучше про js/react/graphql и т.п.
Источник
Василий Наумкин
20 апреля 2019, 13:39
1 055
+19

[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.
Василий Наумкин
24 марта 2019, 18:56
161
0

[jwtSession] Перенос сессии в куки браузера

Привет, друзья!

Вы задумывались, как работают сессии в MODX? Каждый раз, когда кто-то заходит на сайт, PHP генерирует ему уникальный id и сохраняет его в куку PHPSESSID. При этом в базе данных создаётся запись modSession с этим id и содержимым текущей сессии.

При каждом запросе на сайт передаётся кука с id, MODX делает запрос в БД, загружает сессию, а потом сохраняет в неё изменения. Минимум 2 запроса в БД каждый раз.

Что же нам предлагает JWT? Отказаться от всех этих действий на сервере, и выдавать всё нужное сразу в одном токене. Он может храниться в кукисах или в локальном хранилище браузера. Ну а дальше, при запросе, из него будет создана сессия пользователя. Соответственно, мы выкидываем работу с БД и не храним пользовательские сессии на сервере вовсе.

Конечно, сразу же встаёт вопрос — а что будет, если пользователь такую сессию подделает? Стандарт JWT ему этого не позволит. Токены можно прочитать, но не изменить, потому что они все подписаны надёжным алгоритмом с ключом на сервере, который пользователь не знает. Это теория, а теперь переходим к практике в MODX.
Василий Наумкин
24 марта 2019, 15:52
4
394
+11

[Jevix] Версия 1.3

Еще одно дополнение, которое давно не обновлялось.

Но тут случилось сразу 2 события:
@Евгений Борисов собрал все фиксы в одном репозитории и опубликовал Jevix на packagist. Так что теперь его можно использовать в любых проектах через Composer.

— и @Fi1osof заметил недоработку с формированием ссылок со знаком @
Василий Наумкин
21 марта 2019, 13:26
415
+9

[Theme.Bootstrap] Новая версия с Bootstrap 4

Привет, друзья!

Наконец-то у меня дошли руки до обновления Theme.Bootstrap, который не менялся аж с 2017 года. Причина проста — если переводить его на Bootstrap 4, то нужно менять и стандартные чанки у кучи дополнений, а это долго.

В итоге, вместе с Theme.Bootstrap были обновлены и:
  • pdoTools
  • miniShop2 (помимо чанков вошли еще несколько правок, см. changelog)
  • mSearch2 (а здесь чанки даже на Fenom переписаны, ура!)
  • Office
Обновлённые дополнения теперь сразу из коробки предлагают адаптивные чанки, заточенные именно под Bootstrap 4.3.1 с flexbox. На Tickets у меня сил уже не хватило, может, кто другой сделает.
Василий Наумкин
17 марта 2019, 09:52
633
+25

Чистка пользователей сообщества

Вслед за упоминанием пользователей пришлось и почистить наши username, потому что там столько всякий дичи, еще со времён bezumkin.ru!

Первым делом я отключил все аккаунты, которые не заходили сюда больше года. Из 7+ тысяч пользователй осталось всего 2+. А затем уточнил правила для username пользователей:
  • Логин должен быть от 2 и до 50 символов
  • Содержать английский алфавит, цифры, точку, тире и подчёркивание.
  • Должен начинаться и заканчиваться цифрой или буквой
  • Цифры, точки и подчеркивания не могут повторяться подряд
И теперь все активные аккаунты этим правилам соответствуют.
Василий Наумкин
13 марта 2019, 11:47
533
+16

Упоминание пользователей

Привет друзья!

Рад анонсировать новую функцию в нашем сообществе, которая давно стала привычной на всех крупных сервисах — это возможность упомянуть пользователя, чтобы ему пришло уведомление, а само упоминание стало ссылкой на его профиль.

Работает как обычно, просто начните набирать @ и вам вылезет автоподсказка. Продолжайте набирать имя, и найдёте нужного пользователя.

Примерно так:
Василий Наумкин
12 марта 2019, 16:26
2
537
+19

[mSearch2] Версия 1.13 с поддержкой плагинов ms2

Представляю вам новую версию самого популярного дополнения в modstore.pro, которая улучшает работу фильтра с дополнениями для скидок.

Как известно, mFilter2 работает напрямую с базой данных, чтобы выбирать все данные для построения фильтров максимально быстро. И если эти данные чем-то меняются перед выводом, например дополнением msDiscount, то в фильтре цены будут одни значения, а при выводе товаров — другие.

Раньше мы просто расширяли фильтр и добавляли поддержку плагинов при выборке, но в новой версии это сделано из коробки.
Василий Наумкин
11 марта 2019, 07:21
5
476
+14