Сортировка: По дате По просмотрам ↓
[СДЕЛАЙ САМ] Ajax Регистрация, Авторизация, Сброс пароля, Редактирование профиля
21 декабря 2022, 08:23
Задача: сделать ajax регистрацию, авторизацию, сброс пароля и редактирование пользователя, используя минимум сторонних компонентов.
Почему минимум? Ну часть из тех компонентов, что реализуют подобный функционал, платная (Office, ajaxLogin) и бюджеты есть не всегда на них есть. Некоторые (ajaxLogin) в данный момент не доступны из-за смерти автора. Общий недостаток большинства компонентов это то, что они загружают дополнительные скрипты и стили, что порой приводит к необходимости дополнительно оптимизировать сайт. Компонент Login не работает по ajax. Однако это можно обойти , но runSnippet запустит много всего и не факт что это всё нужно в данный момент. Поэтому предлагаю своё решение.
Нам понадобится:
1. AjaxForm;
2. FormIt;
3. Этот репозиторий.
Порядок действий:
1. Скопировать core/elements/snippets/ajaxidentification.class.php.
2. Создать в админке сниппеты
2.1 AjaxIdentification (код лежит в core/elements/snippets/hooks/AjaxIdentification.php);
2.2 userExists (код лежит в core/elements/snippets/validators/userExists.php);
2.3 userNotExists (код лежит в core/elements/snippets/validators/userNotExists.php;
2.4 ActivateUser (код лежит в core/elements/snippets/ActivateUser.php) // этот можно вызывать прям из файла если хотите.
3. В вывоз AjaxForm в параметр hooks первым значением добавить AjaxIdentification, сюда же добавить параметр method ( register — регистрация, login — авторизация, forgot — восстановление доступа, update — обновление данных).
4. В js на событие af_complete добавить редирект на нужные страницы. Ссылки можно получать
из мета-тегов с именами типа loginSuccessUrl.
Всё. Далее немного потока сознания и пояснений.
Читать дальше
Почему минимум? Ну часть из тех компонентов, что реализуют подобный функционал, платная (Office, ajaxLogin) и бюджеты есть не всегда на них есть. Некоторые (ajaxLogin) в данный момент не доступны из-за смерти автора. Общий недостаток большинства компонентов это то, что они загружают дополнительные скрипты и стили, что порой приводит к необходимости дополнительно оптимизировать сайт. Компонент Login не работает по ajax. Однако это можно обойти , но runSnippet запустит много всего и не факт что это всё нужно в данный момент. Поэтому предлагаю своё решение.
Нам понадобится:
1. AjaxForm;
2. FormIt;
3. Этот репозиторий.
Порядок действий:
1. Скопировать core/elements/snippets/ajaxidentification.class.php.
2. Создать в админке сниппеты
2.1 AjaxIdentification (код лежит в core/elements/snippets/hooks/AjaxIdentification.php);
2.2 userExists (код лежит в core/elements/snippets/validators/userExists.php);
2.3 userNotExists (код лежит в core/elements/snippets/validators/userNotExists.php;
2.4 ActivateUser (код лежит в core/elements/snippets/ActivateUser.php) // этот можно вызывать прям из файла если хотите.
3. В вывоз AjaxForm в параметр hooks первым значением добавить AjaxIdentification, сюда же добавить параметр method ( register — регистрация, login — авторизация, forgot — восстановление доступа, update — обновление данных).
4. В js на событие af_complete добавить редирект на нужные страницы. Ссылки можно получать
из мета-тегов с именами типа loginSuccessUrl.
Всё. Далее немного потока сознания и пояснений.
Читать дальше
Возвращаем привычный вид страницы после установки пакета SEO Suite
21 декабря 2022, 08:24
Разработчик sterc, выпустивший два известных модуля для СЕО-шников: SEO Tab и SEO Pro — сделал новый пакет.
Называется он: SEO Suite. Данный пакет объединил в себе два выше указанных пакета + был полностью переписан весь код и добавлены новые плюшки.
Всё бы ничего, но как по мне он очень уж сильно меняет внешний вид страницы в админке. Стало неудобно =(
Поэтому не долго думая — вернул прежний вид, но при этом оставив новый функционал.
Читать дальше
Называется он: SEO Suite. Данный пакет объединил в себе два выше указанных пакета + был полностью переписан весь код и добавлены новые плюшки.
Всё бы ничего, но как по мне он очень уж сильно меняет внешний вид страницы в админке. Стало неудобно =(
Поэтому не долго думая — вернул прежний вид, но при этом оставив новый функционал.
Читать дальше
Remove Duplicates MODX
21 декабря 2022, 08:24
Может кому пригодится.)
Компонент ищет дубликаты ресурсов, в разных контекстах!
PS^ версия сыровата, JS накидал на коленке (эффекты и тп пока отсутствуют).
Есть два варианта обработки ресурсов:
Читать дальше
Компонент ищет дубликаты ресурсов, в разных контекстах!
PS^ версия сыровата, JS накидал на коленке (эффекты и тп пока отсутствуют).
Есть два варианта обработки ресурсов:
- Перемещение в корзину
- Создание нового алиаса с прфиксом ID ресурса.
Читать дальше
Как сделать мультикатегории на MODX с TV-шкой
21 декабря 2022, 08:25
Всем привет.
Недавно глубоко озадачился этим решением и в результате которого нехитрым (почти) способом можно сделать мультикатегории.
Подходит данное решение для сайтов у которых, наверное не более 5..10к товаров. На больших, думаю, будет тормозить, (не проверял) так что обратная связь приветствуется.
Читать дальше
Недавно глубоко озадачился этим решением и в результате которого нехитрым (почти) способом можно сделать мультикатегории.
Подходит данное решение для сайтов у которых, наверное не более 5..10к товаров. На больших, думаю, будет тормозить, (не проверял) так что обратная связь приветствуется.
Читать дальше
Решение проблемы "Добавление комментариев закрыто. MODx Revolution, компонент quip"
21 декабря 2022, 08:26
Сообщение от модуля Quip комментариев:
Добавление комментариев закрыто. MODx Revolution, компонент quip
Как решить проблему —
Зайти в Сниппет: QuipReply(), вкладка параметры, разрешить редактирование, находим closeAfter поле, и вместо 14, пишем 99999999999. Сохранить набор параметров, Сохранить. Очистить кэш.
Повторяем толе самое для Сниппет: Quip ().
Теперь форма ввода комментариев не пропадет спустя 14 дней.
Читать дальше
Добавление комментариев закрыто. MODx Revolution, компонент quip
Как решить проблему —
Зайти в Сниппет: QuipReply(), вкладка параметры, разрешить редактирование, находим closeAfter поле, и вместо 14, пишем 99999999999. Сохранить набор параметров, Сохранить. Очистить кэш.
Повторяем толе самое для Сниппет: Quip ().
Теперь форма ввода комментариев не пропадет спустя 14 дней.
Источник: modx.pro/solutions/23099
Читать дальше
Сниппет вывода TV параметров при условии их наличия
21 декабря 2022, 08:27
пригодился для вывода списка параметров товара из TV
наименование TV берется из description
UPD: после долгих раздумий добавил в фильтр id категории
Читать дальше
наименование TV берется из description
UPD: после долгих раздумий добавил в фильтр id категории
Читать дальше
Создание API для авторизации пользователей в приложениях
28 февраля 2023, 15:25
Иногда при создании приложений для Android и iPhone, а так же для использования в каких-то сторонних сервисах, может потребоваться сделать на сайте простенькое API для разграничения доступа.
Обычно схема этого API такая:
Читать дальше
Обычно схема этого API такая:
- Пользователь вводит в приложении логин и пароль
- Приложение делает запрос к сайту, передавая эти данные
- Сайт проверяет, действительно ли есть пользователь с таким логином и правильно ли указан пароль
- Если всё ок — сайт выдаёт в ответ токен
- Приложение сохраняет этот токен у себя (на телефоне пользователя)
- И при любых обращениях к сайту использует этот токен
- Сайт получает токен и выдаёт контент, который доступен именно для этого пользователя
Читать дальше
Из-за чего возникает ошибка Could not load config
16 августа 2023, 13:24
Иногда разработчики сталкиваются с ошибкой Could not load config, которая отображается в окне alert на странице. Эту ошибку выводит JavaScript пакета pdoTools при использовании pdoPage (везде, где есть пагинация).
Этот компонент работает через Ajax, и для того, чтобы на каждый Ajax-запрос система могла ответить, она должна знать набор параметров сниппета (tpl, parents и прочее). Но так как запрос приходит в виде Ajax, то сам шаблон страницы уже не парсится. Как узнать параметры? Эти параметры сниппет сохраняет в $_SESSION, а уже JavaScript, который ловит аякс-запрос, оттуда эти параметры «вытаскивает».
Вот could not load config означает, что action.php не нашёл параметры в сессии. Такое бывает, если сессия очищается, если меняется юзер, ну или что-то еще.
Так чт, если сделать в админке «Завершить все сеансы», то юзеры, у которых открыта страница фильтров или списка статей/товаров, будут видеть эту ошибку, пока не перезагрузят страницу.
В обычной ситуации такое может происходить после завершения импорта, например. В этом случае возможно скрипт импорта как-то на сессию пользователя влияет. Например, он может насильно авторизовывать админа, чтобы создать товары или что-то такое.
Читать дальше
Этот компонент работает через Ajax, и для того, чтобы на каждый Ajax-запрос система могла ответить, она должна знать набор параметров сниппета (tpl, parents и прочее). Но так как запрос приходит в виде Ajax, то сам шаблон страницы уже не парсится. Как узнать параметры? Эти параметры сниппет сохраняет в $_SESSION, а уже JavaScript, который ловит аякс-запрос, оттуда эти параметры «вытаскивает».
Вот could not load config означает, что action.php не нашёл параметры в сессии. Такое бывает, если сессия очищается, если меняется юзер, ну или что-то еще.
Так чт, если сделать в админке «Завершить все сеансы», то юзеры, у которых открыта страница фильтров или списка статей/товаров, будут видеть эту ошибку, пока не перезагрузят страницу.
В обычной ситуации такое может происходить после завершения импорта, например. В этом случае возможно скрипт импорта как-то на сессию пользователя влияет. Например, он может насильно авторизовывать админа, чтобы создать товары или что-то такое.
Читать дальше