[СДЕЛАЙ САМ] Ajax Регистрация, Авторизация, Сброс пароля, Редактирование профиля

Задача: сделать ajax регистрацию, авторизацию, сброс пароля и редактирование пользователя, используя минимум сторонних компонентов.

ИСПОЛЬЗУЙТЕ КОМПОНЕНТ SENDIT

Почему минимум? Ну часть из тех компонентов, что реализуют подобный функционал, платная (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.
Всё. Далее немного потока сознания и пояснений.
Артур Шевченко
16 мая 2022, 13:33
modx.pro
2 981
+1

Как получить контент страницы перед рендером всех тегов и вызовов?

Как получить страницу с тегами в таком состоянии [[*id]] перед рендером?, чтобы что-то заменить.
Пробовал так, но никак не могу понять как получить весь контент страницы

switch ($modx->event->name) {
    case 'OnWebPageInit':
        $output = get_class_methods($modx);
        $modx->log(1, print_r($output), 'HTML');
        break;
}

И так
$output = &$modx->resource
&$modx->resource->_output;
Vladimir
15 мая 2022, 20:07
modx.pro
953
0

Галерея migx, не получается вывести [[+img.1]] на других страницах

Здравствуйте, сделал галерею используя урок
docs.modx.com/current/en/extras/migx/migx.tutorials/fancybox-images-with-seperate-placeholders-in-richtext-content

У главной страницы залил фотографии, все ок. указываю в шаблоне [[+img.1]], [[+img.2]], шаблон для главной, картинки отображаются на главной, а вот если я вставляю [[+img.1]], [[+img.2]] на другие страницы, то картинки не отображаются…
повторно заливать картинки для каждой страницы не вариант… их много очень…

как можно показывать картинки [[+img.1]], [[+img.2]] на любых других страницах?
Игорь
15 мая 2022, 14:48
modx.pro
473
0

Установить каптчу + разобраться с поддержкой хостинга

1 1 500
Установить каптчу на сайте, хостер из-за этого заблокировал работу заявок с сайта (они сейчас не приходят). Написать хостеру, чтобы разблокировали. MODX Revolution.
Kirill
14 мая 2022, 16:35
modx.pro
343
0

Watermark через событие "onFileManagerUpload"

Всем привет, вопрос следующий. Как мне через собственный плагин и событие «onFileManagerUpload» получить все загружаемые фото из менеджера, чтобы добавить на них вотермарку с помощью функции PHP imagecopymerge? И каким образом все дело можно дебажить. Вообще без понятия куда можно выводить промежуточный результат плагина.
P.S перешел с wp где можно вар дампить только в путь, а тут такое не канает
Владислав
13 мая 2022, 16:01
modx.pro
544
0

mFilter2 открывать каталог с включенной опцией по умолчанию

Всем привет, возможно ли открывать каталог товаров, с уже отмеченной опцией по умолчанию, пример: prnt.sc/Ch3Dfjgf0fn3

При переходе в каталог, опция марка KIA должна быть уже включена.

По документации похоже это можно реализовать через параметры &where и &leftJoin, но не пойму как.

Вот как вывожу сниппет:
{$_modx->runSnippet('!mFilter2', [
	'element' => 'msProducts',
	'class' => 'msProduct',
	'showEmptyFilters' => 1,
	'limit' => 12,
	'tplOuter' => 'mFilter2OuterTpl',
	'tpls' => 'listProductTpl,gridProductTpl',
	'includeTVs' => 'available',
	'includeThumbs' => 'medium',
	'sortby' => '{ "parent":"ASC","menuindex":"ASC" }',
	'suggestionsRadio' => 'msoption|marka,
		          msoption|model',
	'filters' => 'msoption|marka,
		          msoption|model,
            	ms|vendor:vendors,
            	parent:parents',
            	
	'aliases' => 'ms|vendor==vendor,
			     msoption|marka==marka,
				 msoption|model==model',
	'ajaxMode' => 'button',
	       
	
])}
Константин
13 мая 2022, 11:33
modx.pro
469
0

[СДЕЛАЙ САМ] Конфигуратор страниц с помощью MIGX

Приветствую, дальше будет описание эволюционировавшего метода из моей же более старой заметки, я пытался её обновлять, но получилась каша, поэтому было принято решение написать новую заметку. Кроме того, сама методика сильно спрогрессировала, на мой взгляд, в ней, определенно, стало меньше ручного труда.
Артур Шевченко
12 мая 2022, 23:17
modx.pro
3 396
+4

Не работает админка MODX3

joxi.ru/EA4NM5MtX8kkKm

Админка не работает.
Ошибки в консоли в скрине по ссылке выше.
Прошу помочь.
evgeniy dovgani
11 мая 2022, 16:08
modx.pro
803
0

Отключить SweetAlert2 на определенных ресурсах

Как можно отключить SweetAlert2 на определенных ресурсах? Попробовал в начало плагина сделать так:
if($modx->resource->id == 845 OR $modx->resource->id == 846 OR $modx->resource->id == 847) return;
не помогло
Georg
11 мая 2022, 16:03
modx.pro
840
0