brioni

brioni

С нами с 05 ноября 2015; Место в рейтинге пользователей: #154

[Translitor] - Альтернатива транслитерации псевдонимов

Оптимизированная альтернатива всем известного, популярного компонента translit.

Сравним вот такую фразу
«На _ (Золотом крыльце) / Сидели. Царь! Царевич»

Сравните что творит Translit
«na-(zolotom-kryilcze)-/-sideli.-czar!-czarevich»

С тем, как отработал Translitor
na-zolotom-kryltse-sideli-tsar-tsarevich

Николай Савин
18 апреля 2019, 10:00
modx.pro
10
4 222
+14

Проверка на заполнение атрибута alt у тега img

SEO-шники говорят что атрибут alt у тега img очень важен для поисковых роботов. Один из товарищей попросил написать на его сайт плагин, который на лету проверял бы наличие и заполнение атрибута ALT у всех изображений и не давал бы менеджеру сохранить ресурс если хоть 1 изображение без атрибута alt (не важно пустой он или его вообще нет).
iWatchYouFromAfar
01 апреля 2019, 20:57
modx.pro
12
6 984
+13

Quiz или как не потерять клиента.

Что такое Quiz?


Quiz – в переводе с английского — это викторина, опрос
.
Quiz — самая удобная форма для восприятия потенциального клиента, которая позволяет вам продать какой-либо товар(услугу) или получить необходимые данные от клиента.


Aleksandr Huz
26 марта 2019, 20:24
modx.pro
1
4 636
+13

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

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

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

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

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

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

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

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

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

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

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

Борьба с парсерами и ботами - antiBot


Первый случай
Примерно год назад повадился на сайт парсер который шерстил сайт с разных IP адресов и c разными user agent, воровал информацию.
Сайт по содержанию имел около 10 миллионов страниц и ежедневно обновлялся по 10к страниц в день. Видел его даже в статистике сайта на метрике. Но все не мог придумать как его заблокировать.
Пробовал использовать компонент siteStatistics с костамизаций так чтобы можно было блочить его по IP адресам.
Худо бедно кое как избавился от этого парсера.

Второй случай
Две недели назад, какой то экспериментатор устроил мне атаку на форму регистрации пользователей, и как давай регистрировать по 2-3 пользователей в секунду. Пришлось закрыть сайт на некоторое время чтобы остановить регистрацию и выяснить как от него избавится. В итоге пару кастылей для формы регистрации еще пришлось написать. Но товарища я так и не успел вычислить так как компонент siteStatistics был отключен, и я честно говоря уже даже забыл как им пользоваться.
Кстати в логах сайта шарится не стал, так как понимал все ровно может повторится не на этом сервер так на другом, пришел один прийдет и второй

UPD: цена снижена с 1490 руб до 590 руб, чтобы можно было купить сразу для нескольких сайтов
Андрей Степаненко
26 февраля 2019, 19:19
modx.pro
8
10 042
+14

mvtDocs: удобное хранение документов

Бесплатный компонент для удобного хранения файлов документов (инструкций, сертификатов и т.д.), а также внешних ссылок (например на ролики youtube) для ресурсов / товаров MS2.
Алексей Шумаев
26 февраля 2019, 13:26
modx.pro
4
2 935
+18

[xCalc] Кейсы. Калькулятор подоконников и AjaxForm в результатах расчёта


Друзья, вчера добавил 2 кейса в документацию по xCalc. Первый описывает, как работает компонент и как вообще создать при помощи него калькулятор. А второй, в качестве небольшого бонуса, про то, как настроить вывод AjaxForm в результатах расчёта.
Как говорится — переходите по ссылкам в описании!
Павел Гвоздь
26 февраля 2019, 08:59
modx.pro
1
2 345
+7

Localizator, simpleSearch или поиск для бедных

У меня возникла проблема с организацией поиска на многоязычных сайтах.
Многоязычные сайты я создаю при помощи компонента Localizator, а для поиска использую компонент simpleSearch, однако данный компонент не умеет из коробки проводить поиск по локализованным ресурсам, поскольку они представляют собой отдельную таблицу в базе данных.
Я нашел некоторое решение этой проблемы, не претендующее ни на что, однако для моих задач вполне подходящее.
Делюсь с вами, возможно кому-то принесет пользу.
Итак к делу.
Александр Мельник
23 февраля 2019, 17:07
modx.pro
8
2 406
+7

SMSC.ru хук

Всем привет, хотела запостить в modstore, но там уже есть похожие платные дополнения.
Хук для FormIt, который отправляет SMS.
Нужно добавить _smschook_ в _hooks_ вызова сниппета (перед mail). В системных настройках Formit указать ключи:

  • Логин — [[++smschook_login]]
  • Пароль — [[++smschook_password]]
  • Телефоны — [[++smschook_phones]] в формате КОД СТРАНЫ + НОМЕР ТЕЛЕФОНА (без +), можно указать несколько через запятую
  • smschook_tpl — чанк по аналогии чанка для писем
  • smschook_phones — сюда можно передать телефоны
Пример вызова:
{'!AjaxForm' | snippet : [
     'form' => 'tpl.AjaxForm.example',
    'emailTpl' => 'contactEmailTpl',
    'hooks' => 'smschook,email',
    'emailFrom' => $_modx->config.emailsender,
    'emailFromName' => $_modx->config.site_name,
    'emailSubject' => 'Сообщение с сайта' ~ $_modx->config.site_name,
    'emailTo' => $_modx->config.emailsender,
    'validate' => 'name:equired',
     'smschook_tpl' => 'smscTpl',
]}
yani
13 февраля 2019, 21:46
modx.pro
23
1 929
+26