Greza

Greza

С нами с 11 октября 2016; Место в рейтинге пользователей: #271

AjaxForm + Register

Нигде не нашел решения как сделать регистрацию из стандартного пакета Login через AjaxForm, ниже мое решение может кому пригодиться.

1 Размещаем сниппет AjaxForm где требуется (на странице, в попап окне и т.п.)

[[!AjaxForm?
    &snippet=`custRegister`
    &form=`tpl.register.form`
    &submitVar=`signup-btn`
    &activationResourceId=`9`
    &activationEmailTpl=`lgnActivateEmailTpl`
    &activationEmailSubject=`Thanks for Registering!`
    &usergroups=`Users`
    &usernameField=`email`
    &generatePassword=`1`
    &validate=`nospam:blank,
               fullname:required:minLength=^3^,
               email:required:email`
    &placeholderPrefix=`reg.`
]]
2 Создаем чанк tpl.register.form с формой

<form id="signup-form" action="[[~[[*id]]]]" method="post">
    <input type="hidden" name="nospam">
    <input type="hidden" name="password" value="11111111">
    <input type="text" name="fullname">
    <small class="alert-fullname"></small>
    <input type="email" name="email">
    <small class="alert-email"></small>
    <input type="submit" name="signup-btn" form="signup-form" value="Signup">
</form>
3 Создаем сниппет custRegister

<?php
$result = $modx->runSnippet('Register', $scriptProperties);
foreach($modx->placeholders as $key => $ph){
    if(strpos($key, $scriptProperties[placeholderPrefix].'error.') === 0) $placeholders[$key] = $ph;
}
if($modx->getPlaceholder($scriptProperties[placeholderPrefix].'validation_error')) return $AjaxForm->error('Form has errors', array('error' => $placeholders));
else return $AjaxForm->success('Form is valid');
4 На странице с формой добавляем скрипт, который заполнит алерты или сообщит об успехе или еще все что угодно

<script>
    $(document).on('af_complete', function(event, response){
        $.each(response.data.error, function(index, value){$(response.form).find('.alert-' + index.split(".").pop()).html(value);});
        response.message='';//jGrowl - off
    });
</script>
Вот и всё!
Рейтинга для размещения в разделе Решения не хватило, поэтому публикую здесь.
Greza
14 января 2020, 17:21
modx.pro
3
61
+2

Как добавить обработчки MIGX

Создал таблицу с помощь MIGX, вывел ее в админке.
При добавлении нового элемента нужно заполнять один из параметров в зависимости от остальных параметров.
Так вот и вопрос как добавить обработчик, что бы при сохранении элемента делался расчет и заполнялся нужный параметр?
Здесь подключаем обработчик, а собственно где прописать что ему делать?
Greza
21 декабря 2019, 12:40
modx.pro
110
+1

pdoResources 100% нагрузка на процессор

Приветствую,
прошу помощи, раньше с подобной проблемой не встречался и не могу найти решения.
При выводе ресурсов использую pdoResources, всё работало как надо,
но когда ресурсов стало много (сейчас примерно 70 тысяч и планируется еще больше),
страница перестала грузится, скрипт дает нагрузку 100% на процессор, и в итоге сообщение nginx 504
если убрать вызов pdoResources — страница нормально отображается
вот так вызываю
[[pdoResources?
    &parents=`2`
    &limit=`7`
    &includeTVs=`shop_logo,categories`
    &tpl=`tpl.catalog_shops.row`  
]]
Greza
21 ноября 2018, 09:53
modx.pro
341
0

AjaxForm не обращает внимание на ошибки

Приветствую всех,
есть форма, отправляется Formit,
перед отправкой проверяются некоторые данные через свой сниппет указанный в hooks,
ошибки нормально выводятся,
но когда делаю отправку через AjaxForm,
форма отправляется в любом случае не зависимо от ошибок,
сообщения об ошибках перестают выводится
помогите решить, пожалуйста
Greza
09 апреля 2018, 09:34
modx.pro
550
0

Как реализовать историю событий?

Приветствую всех,
прошу помощи в поиске решения такой задачи:
нужна таблица событий
у каждого события всего 4 поля:
id, дата, название и цифра
заполняется таблица через админку
Что то на вроде MIGX таблицы, но в MIGX не внесешь 1000+ записей,
да и работать с MIGX таблицей с большим количеством строк не удобно
можно конечно просто дочерние документы с TV нужными использовать, но там куча лишних полей.
может есть какое-то готовое решение?
Greza
04 апреля 2018, 21:34
modx.pro
599
0

Добавить в корзину товар с динамическим коментом

Прошу помощи!
Возможно просто не знаю каких то тонкостей скрипта и это сделать не сложно.
Есть товары в minishop2 — это машины с фиксированной ценой за 1 км
В каталоге есть функция расчета маршрута и определения его протяженности.
При добавлении в корзину товара-машины в качестве количества добавляется рассчитанное количество км.
Но еще к каждой машине нужно указывать выбранный маршрут просто текстом, т.е. добавлять комментарий.
Так вот вопрос, как то можно добавлять в корзину к каждому товару динамически созданный комментарий?
Или если не к каждому товару, то хотя бы ко всей корзине.
Greza
30 апреля 2017, 07:42
modx.pro
1 019
0

miniShop2 не ставится на modx - 2.5.7

Установка зависает на этапе:
Рабочее пространство загружено, сейчас устанавливаем пакет…
и дальше ни ни…
Что делать?
Greza
24 апреля 2017, 12:49
modx.pro
1 208
0

Как в пагинацию добавить кнопк: ВСЕ?

В minishop2 каталог товаров просто разбивается на страницы и все отлично работает, но клиенту понадобилась кнопка ВСЕ, при нажатии на которую выведутся все товары категории без разбиения на страницы.
Может кто знает простое решение этой задачи?
Greza
17 апреля 2017, 13:45
modx.pro
759
0

Выход из админки при отсутствии активности

Приветствую, всех!
Помогите с решением вопроса,
не смог найти такой настройки,
что бы при отсутствии активности, на пример 20 минут, в админке авторизация отменялась.
Сейчас бесконечно долго пользователь залогинен в админке.
Greza
23 марта 2017, 11:22
modx.pro
1
1 005
0

Всплывающее сообщение

Прошу помочь разобраться, как отключить всплывающее сообщение в minishop2 при добавлении товара в корзину?
Гугл ни чем не помог.
Может кто-то знает и есть какое то предусмотренное решение?
Greza
12 марта 2017, 11:58
modx.pro
1
791
0