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

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

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

[VESP] Заготовка для SPA сервисов с REST API

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

Наверное, вы уже обратили внимание, что я не был особо активен в этом году в сообществе. Причина в том, что я набрал кучу работы, с которой смог разобраться вот только что. И работа эта с MODX была никак не связана — я писал собственное решение для сложных проектов, с нуля.



И вот сейчас я готов с вами им поделиться. Но для начала пара важных предостережений:
Василий Наумкин
05 декабря 2019, 15:29
modx.pro
14
555
+36

Nuxt.js - быстрый старт

Продолжаем цикл заметок про Vue + Nuxt.

После вводного рассказа о положении дел на рынке, пришла пора попробовать нашего монстрика в деле. Сделать это совсем несложно — нам нужен только установленный Node.js. Дальше идём на nuxtjs.org/guide/installation и читаем, что нужно сделать.
Внимание, сайт хостится на Digital Ocean, который переодически блокируется нашим грозным РКН, так что вам может потребоваться VPN. Лично я читаю документацию в Opera — VPN там встроенный.

Дальше делаем npx create-nuxt-app и отвечаем на вопросы. Лично я выбираю пакетный менеджер Yarn и UI фреймворк Bootstrap-Vue. Из дополнений тащим Axios для сетевых запросов и поддержку PWA. Линтер и тесты нам пока ни к чему, режим работы — Universal (про это позже).
Василий Наумкин
24 сентября 2019, 16:34
modx.pro
14
894
+32

Nuxt.js - введение

В последнее время в нашем сообществе было много комментариев о будущем MODX, его соответствии времени, и о том, какие технологии сегодня нужно изучать, чтобы не потерять актуальность.

Куда податься, какой фреймворк использовать. Может быть Laravel? Или это слишком сложно, стоит попробовать OctoberCMS? На мой взгляд, смотреть на проблему нужно чуть шире.

Всё, что видит посетитель вашего сайта — это HTML + CSS + JS. Он не знает, каким движком вы их сгенерировали, он не знает, как он работает. Он видит только frontend, а как работает backend — ему без разницы.
Поэтому в 2019 году я советую всем сосредоточиться именно на фронтенде. На максимально приятном и плавном общении пользователя с сайтом, который может быть достигнут современным javascript.

А для этого, очевидно, вам нужно учить современный javascript.
Василий Наумкин
06 августа 2019, 20:21
modx.pro
19
1 737
+38

Новости оптимизации

В целях оптимизации времени и ресурсов были отключены 2 ненужные части modx.pro.

Во-первых — английская версия, потому что ей никто не пользуется. Очевидно, что иноязычным пользователям лень что-то писать, а читать они предпочитают русскую часть через Google Translate. Поэтому я оптимизировал вывод текста заметок на русском (содержимое тегов code больше не переводится) и отключил en.modx.pro.

Все заметки из него переехали на основной домен, не удивляйтесь.

Во-вторых, отключен chat.modx.pro. Он также не снискал популярности, зато лично меня задолбали вопросами в приватных сообщениях.

Теперь ссылка в меню отправляет на очень активный телеграм-канал @ru_modx, можно писать вопросы там.

Всем спасибо за внимание!
Василий Наумкин
02 августа 2019, 17:34
modx.pro
784
+4

Обновление 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
modx.pro
16
1 386
+29

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

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

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

Ура, товарищи!
Василий Наумкин
04 мая 2019, 08:03
modx.pro
574
+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
modx.pro
1 568
+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
modx.pro
1
451
0

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

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

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

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

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

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

[Jevix] Версия 1.3

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

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

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