Всего 123 782 комментария

Евгений
13 декабря 2023, 14:45
0
Вы уж простите настойчивость, но вот чтобы вообще все вопросы снять такая еще задача — воткнуть эту форму в середину контента, который выводится контроллером officeAuth, то есть все таки вызвать officeProfile из шаблона tpl.Office.auth.logout — такое в принципе возможно?
Евгений
13 декабря 2023, 14:31
0
ура! заработало!!! спасибо за терпение.
Для тех, кто с этим же столкнется, внимательно читаем документацию к контроллеру, а именно параметр &requiredFields
Список обязательных полей при редактировании. Эти поля должны быть заполнены для успешного обновления профиля. Например, &requiredFields=`username,fullname,email`
В моем случае дефолтный список менять не стал, просто добавил в шаблон формы эти поля в скрытых:
<form method="post" id="office-profile-form" enctype="multipart/form-data" class="form_db mb-4 row align-items-center">
    <input type="hidden" name="username" value="{$username}"/>
    <input type="hidden" name="fullname" value="{$fullname}"/>
    <input  type="hidden" name="email" value="{$email}"/>
	<label for="extended.video">Ссылка на видео</label><input type="text" size="20" name="extended[video]" value="[[+extended.video]]" class="ml-3" />    	
	<button type="submit">сохранить</button>
</form>
Володя
13 декабря 2023, 10:56
0
ответ от коннектора в консоли браузера посмотрите!
например на данном сайте запрос joxi.ru/52aJly3hEMj5NA
ответ joxi.ru/823go4Df9PvdG2
вот при нажатии кнопки сохранить в обновлении профиля что у вас отправляется и что приходит в ответ от сервера?
Евгений
13 декабря 2023, 09:57
0
в 2-х браузерах смотрю в консоли — не вижу ошибок. Дело в том что я не очень то программист, очень начинающий, поэтому то и купил платное приложение. Предлагаю мучительный процесс обучения на собственных ошибках уже завершить и ткнуть носом в косяк. Пожалуйста!
Володя
13 декабря 2023, 09:42
0
А вопрос все тот же
после нажатия кнопки сохранить какой ответ от коннектора? В консоли браузера посмотрите.
вот уверен на 100% что там помимо сообщения с ошибкой есть данные о том чего не хватает.
Евгений
13 декабря 2023, 09:36
0
Осознание благодаря действенной терапии Володи приходит, допер что надо вызывать officeProfile после officeAuth, сейчас в личном кабинете имеем:
[[!officeAuth? &groups=`Users` &HybridAuth=`0` ]]
[[!officeProfile? &profileFields=`extended[video]` &tplProfile=`tpl.Office.addvideo.form`]]
Такая конструкция выдает панельку с ошибкой «Ошибка при обновлении профиля»
Код шаблона
<form method="post" id="office-profile-form" enctype="multipart/form-data" class="form_db mb-4 row align-items-center">
	<label for="extended.video">Ссылка на видео</label> <input type="text" size="20" name="extended[video]" value="[[+extended.video]]" />    	
	<button type="submit">сохранить</button>
</form>
Где я опять косячу?
Артур Шевченко
12 декабря 2023, 21:29
0
Я просто сказал, что есть альтернатива)))
Игорь
12 декабря 2023, 19:16
0
Спасибо большое. Вы, как всегда, очень помогли (это если «мягко выражаясь», а реально решили мою проблему).
Александр
12 декабря 2023, 16:36
0
экспериментальным путем

{foreach $options as $option}
{* "свежесозданные" опции выводят длину массива 1 при невыбранном значении *}
{* костыль для того, чтобы не пересохранять товары *}

{var $empty}
{foreach $option.value as $val}{$val}{/foreach}
{/var}

{if $empty}
    <div>
        <label ><span>{$option.caption}:</span></label>
        <div>
            <span>
                {if $option.value is array}
                    {$option.value | join : ', '}
                {else}
                    {$option.value}
                {/if}
            </span>
        </div>
    </div>
{/if}
{/foreach}
Евгений
12 декабря 2023, 15:41
0
«Вы уже авторизованы в системе». Понимаю, что на странице в первую очередь идет вызов officeAuth, то есть в нем вызывать officeProfile, скорее всего, не правильно, тогда во возвращаемся к вопросу — как тогда в officeAuth записать что-то в профиль юзеру?
Евгений
12 декабря 2023, 15:23
0
Одно другому не мешает, желание разобраться с Office у меня от этого меньше не стало.
Володя
12 декабря 2023, 15:08
0
ну тогда надо
$this->modx->
Игорь
12 декабря 2023, 15:06
0
php файл, в котором формируется заказ для выгрузки по api /core/components/frontpadapi/processors/mgr/api/neworder.class.php (я всё туда пихаю)
Володя
12 декабря 2023, 15:04
0
после нажатия кнопки сохранить какой ответ от коннектора? В консоли браузера посмотрите.
Володя
12 декабря 2023, 15:01
0
ну то есть с Office парень не разобрался и ты решил его направить в нужное русло да?)
Володя
12 декабря 2023, 15:00
0
нет, так не срабатывает… виснет оформление заказа ((
так а куда вы этот вызов запихали?
Евгений
12 декабря 2023, 14:52
0
То есть вместо встроенных функций Office, которые рекомендует Володя, вы рекомендуете вызывать SendIt из кабинета пользователя (а точнее из шаблона кабинета авторизированного пользователя)? Спасибо, попробую. Вопрос решить надо, каким образом — не так важно. Просто не очень понятно почему не работает самописный сниппет, который работает на любой другой странице.
… Посмотрел SendIt, интересный плагин, тем более автор его советует, попробую, спасибо
Игорь
12 декабря 2023, 14:29
0
нет, так не срабатывает… виснет оформление заказа ((
if ($o = $modx->getObject('mspcOrder', ['order_id' => $order['id']])) {
    $discount = $o->get('discount_amount');
	$value .= ' Скидка по промокоду '.$discount.'%';
}
Евгений
12 декабря 2023, 14:25
0
в том то и дело что ни в консоли браузера ни в журнале ошибок modx ничего не появляется
Артур Шевченко
12 декабря 2023, 14:25
0
Просто чтоб ты знал: SendIt тоже умеет работать с профилем пользователя.