Александр

Александр

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

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
12
2 419
+2

msOptionsPrice2 и склады


Долго ломал голову, как связать msOptionsPrice2 и наличие товара на складах. В модификациях товара у меня хранятся размеры и кол-во. Искал решение или компонент, который бы позволил сделать что-то подобное. Как оказалось, искал не там… В итоге сделал всё на базе msOptionsPrice2 и костыля, как это часто бывает.
Павел Гвоздь
04 сентября 2018, 14:55
modx.pro
10
2 175
+15

[msInformUser] Подписка на поступление товара и не только

Всем привет!

msInformUser позволяет собирать подписку на уведомления о поступлении товара.

Так же есть возможность отправки одного сообщения со страницы любого ресурса, на один электронный адрес.
msInformUser хоть и имеет приставку «ms», но жёсткой привязки к miniShop2 нет.
Марат Марабар
19 июня 2018, 16:57
modx.pro
4
3 101
+4

mSearch2: не работает группировка при реализации Фильтрации категорий

Всем доброго времени суток!

Мне нужно сделать страницу с каталогом товаров в котором вместо товаров будут отображаться их категории но фильтры будет работать по товарам. Нашел решение как раз под эту задачу. Но в результате выводятся все те же товары только вместо их названия видны названия их категорий. А мне нужно чтобы эти товары были сгруппированы по категориям.
Павлик
17 февраля 2018, 19:42
modx.pro
1
699
+1

[mFilter2] Сортирую по цене (сначала дешевле), но выводятся сперва те товары, которых нет в наличи

Нужно товары, где не заполнено поле [[*prices]], поместить в конец выдачи, а в начале вывести товары отсортированные по цене. Как это сделать?

Сортировка по цене сделана сейчас так:
Fullstack
06 февраля 2018, 11:15
modx.pro
3
1 602
0

Вопрос по where в fenom

Подскажите пожалуйста, как записать переменную внутри условия на fenom?
вызываю сниппет
{var $mark = '[[!pdoField? &id=`[[*parent]]` &field=`pagetitle` &top=`2`]]'}
{$_modx->runSnippet('!ecMessagesMain', [
                'limit' => '3',
                'tpl' => 'reviews_row',
                'threads' => 'resource-19250',
                'where' => '{"subject:LIKE": "%"~$mark~"%"}'
                'showLog' => '1'
                ])}
{$mark}
При таком вызове, выводятся случайные сообщения, то есть не те, которые в
[[+subject]]
содержат переменную
{$mark}
Заранее спасибо
Konstantin
22 июня 2017, 11:34
modx.pro
2
2 618
0

Migx + fenom

Вывожу данные из таблицы migx как описано здесь: modx.pro/help/8962/

{set $rows = json_decode($_modx->resource.list, true)}
        {foreach $rows as $row}
            <li>{$row.title}</li>
        {/foreach}
все выводится, но только у того ресурса, к которому привязан этот TV.

Как вывести на других страницах?

у getImageList был параметр &docid=`1`
Глеб
17 сентября 2016, 11:23
modx.pro
4
3 804
0

Дополнительные поля профиля юзера (не extended)


Разрабатываю проект, в котором необходимо было реализовать более простое редактирование дополнительных полей профиля, чем есть из коробки. К слову, неудобное редактирование — это не единственный минус нативного способа расширения профиля полями. Ни для кого не секрет, что фильтрацию по JSON полям нормально не осуществить, только костылями. Фактически, мне надо было получить решение, которое бы расширяло стандартный код MODX, не трогая исходники, дабы сохранить карму в порядке возможность обновления системы.
Пришёл к выводу, что буду расширять стандартную вкладку профиля «Общая информация». При желании можно чуть переписать код в событии OnUserFormPrerender и создать свою вкладку со своими полями.
Павел Гвоздь
30 мая 2016, 22:36
modx.pro
114
18 847
+19

mFilter2 - функции обратного вызова

Как перехватить данные с pdoPage, используемому в mFilter2 по умолчанию?
То есть в обычном pdoPage прекрасно работают функции обратного вызова, а в mFilter2 почему-то не получается.
Или я не туда смотрю? Может и для mFilter2 есть функции обратного вызова, только я пропустил это?
Василий Столейков
14 декабря 2015, 19:25
modx.pro
12
2 945
+1

Расширение любых таблиц MODX

В очередной раз понадобилось изменить таблицу сайта, менять которую не предусмотрено.

Что обычно люди делают в таких случаях? Верно, редактируют ядро или нужный компонент, и больше их не обновляют. Но ведь это неправильно, и можно решить вопрос иначе.

Пишем обычный плагин, выставляем для него событие OnMODXInit и меняем модель для нужных классов системы или дополнений. Например, я добавил id менеджера в заказ miniShop2:
Василий Наумкин
16 ноября 2015, 07:07
modx.pro
116
10 222
+11