Вопросы
miniShop2 - разделение цены в tpl.msOrder
Добрый день!
В корзине выводится общая стоимость заказа в которой включена и доставка. Как разделить эти суммы?
В корзине выводится общая стоимость заказа в которой включена и доставка. Как разделить эти суммы?
Оплата заполненной формы как товара minishop2
Всем привет!
Реализую что-то вроде сервиса онлайн-заполнения анкет.
Есть форма и логика, взятая отчасти из этой заметки.
Добавил в hooks хук makeOrder, который делает программно заказ minishop2
Оплата будет через Робокассу или Яндекс.Кассу.
Думаю, что достаточно будет сохранить ссылку на документ в сессию, достать ссылку на оплату аггрегатором и сделать редирект на данную страницу оплаты, чтобы пользователь оплатил заказ. После успешной оплаты, чел попадает на страницу Спасибо, где я буду доставать из сессии ссылку на документ и отправлю клиенту письмо с этой ссылкой (или сделать это через встроенный минишоп-плагин, пока не понимаю, если честно).
Подскажите, пожалуйста, верно ли двигаюсь и если да, то как достать ссылку на оплату? $payment_link, который в письме приходит
Реализую что-то вроде сервиса онлайн-заполнения анкет.
Есть форма и логика, взятая отчасти из этой заметки.
Добавил в hooks хук makeOrder, который делает программно заказ minishop2
&hooks=`pdf,makeOrder,email`Код makeOrder:<?php
$pdf_link = $hook->getValue('pdf_link');
// инициализируем miniShop2
$scriptProperties = array(
'json_response' => true,
'max_count' => 1000,
'allow_deleted' => false,
'allow_unpublished' => false
);
$miniShop2 = $modx->getService('minishop2','miniShop2', MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties);
// опции товара, если они необходимы
$option = array();
/*$option = array(
"option1" => "value1",
"option2" => "value2",
);*/
// инициализируем miniShop2 в текущем контексте
$miniShop2->initialize($modx->context->key, $scriptProperties);
// чистим корзину
$miniShop2->cart->clean();
// добавляем товар в корзину
$arr = json_decode($miniShop2->cart->add($_REQUEST["id"],1,$option), true);
// логируем каждый шаг
$modx->log(E_ERROR, print_r($arr,1));
// формируем заказ
$miniShop2->order->add('receiver', 'Иван Иванов');
$miniShop2->order->add('email', 'ilyagureshidze90@mail.ru');
$miniShop2->order->add('phone', '89616999999');
$miniShop2->order->add('comment', $pdf_link);
$miniShop2->order->add('payment', 3); // Робокасса по умолчанию
$miniShop2->order->add( 'delivery', 1);
$orderfeed = $miniShop2->order->submit();
$arr = json_decode($orderfeed,true);
// логируем каждый шаг
$modx->log(E_ERROR, print_r($arr,1));
if($arr['success']==true&&$arr["data"]["msorder"]){
$url = $modx->makeUrl(21);
//$output["location"] = $url.'?msorder='.$arr["data"]["msorder"];
$modx->sendRedirect($url.'?msorder='.$arr["data"]["msorder"]);
}
return true;Заказ формируется и приходит уведомление о новом заказе со ссылкой, на сгенеренный файл, который является результатом заполнения формы и собственно тем, что я и хочу продавать. Помимо этого там есть стандартная строка о том, что «Если вы прервали процесс оплаты перейдите по ссылке ссылка_на_платежный_сервис»Оплата будет через Робокассу или Яндекс.Кассу.
Думаю, что достаточно будет сохранить ссылку на документ в сессию, достать ссылку на оплату аггрегатором и сделать редирект на данную страницу оплаты, чтобы пользователь оплатил заказ. После успешной оплаты, чел попадает на страницу Спасибо, где я буду доставать из сессии ссылку на документ и отправлю клиенту письмо с этой ссылкой (или сделать это через встроенный минишоп-плагин, пока не понимаю, если честно).
Подскажите, пожалуйста, верно ли двигаюсь и если да, то как достать ссылку на оплату? $payment_link, который в письме приходит
Не работают формы на английской версии сайта
Здравствуйте, подскажите пожалуйста в чем может быть проблема? Вот есть русская версия сайта balt-montage.ru/, а есть английская версия balt-montage.ru/en/, на русской версии обе формы работают как надо, но на английской версии сообщения не приходят (но выходит уведомление что письмо отправлено), хотя сделано все как в русской, скидываю весь код связанный с английской версией формы, может чем подскажите, вот одна из форм:
Форма отправки через formit и ajaxform:
Форма отправки через formit и ajaxform:
<div id="ask-question" class="fancybox-hidden">
{if $_modx->context.key == 'en'}
{var $question_formit_form = '@FILE chunks/callback/question/en/form.tpl'}
{var $question_formit_mail = '@FILE chunks/callback/question/en/mail.tpl'}
{var $question_formit_error = 'Please fill in all required fields'}
{var $question_formit_success = 'Message sent successfully'}
{else}
{var $question_formit_form = '@FILE chunks/callback/question/ru/form.tpl'}
{var $question_formit_mail = '@FILE chunks/callback/question/ru/mail.tpl'}
{var $question_formit_error = 'Пожалуйста, заполните все требуемые поля'}
{var $question_formit_success = 'Сообщение успешно отправлено'}
{/if}
{$_modx->runSnippet('!AjaxForm', [
'snippet' => 'FormIt',
'emailSubject' => 'Вопрос с сайта BALT MONTAGE',
'emailTo' => $_modx->config.contacts_mail,
'emailFrom' => $_modx->config.contacts_mail,
'hooks' => 'recaptchav2,FormItSaveForm,email',
'form' => $question_formit_form,
'emailTpl' => $question_formit_mail,
'validate' => 'name,email:required,phone:required,comment:required,g-recaptcha-response:required',
'validationErrorMessage' => $question_formit_error,
'successMessage' => $question_formit_success,
'frontend_css' => ''
])}
</div>Сама собственно форма:<div class="inner-content">
<h1>Ask your question</h1>
<p>Leave accurate information so that our manager can send you the answer or call on the phone!</p>
<p><span style="color:#900;"></span></p>
<form class="b-form big-inputs" id="callback-form" method="post" action="">
<label for="name">Your name</label>
<input type="text" name="name" class="grid_3" value="{$_pls['fi.name']}">
<label for="email">Your E-mail</label>
<input type="text" name="email" class="grid_3" value="{$_pls['fi.email']}">
<label for="subject">Your phone</label>
<input type="text" name="phone" class="grid_3" value="{$_pls['fi.phone']}">
<textarea name="comment" class="grid_6" cols="50" rows="10">{$_pls['fi.comment']}</textarea>
<button class="btn-pink-bigger btn-pink-icon btn-margin" name="submit" type="submit">Send message</button>
</form>
</div>Что приходит ко мне на почту:<p><b>Имя</b>: {$name}</p>
<p><b>Номер телефона:</b> {$phone}</p>
<p><b>E-mail</b>: {$email}</p>
<p>
</p>
<p><b>Сообщение:</b> {$comment}</p> Почему Tickets может не считать количество просмотров?
Выполнил чистую установку ModX Revo 2.6.5 и установил компонент Tickets. Создал раздел под тикеты и наполнил тестовыми записями. Заметил такую странность. Плейсхолдер [[+views]] всегда выводит 0 (ноль), хотя запись фактически была просмотрена несколько раз. В чем может крыться проблема?
Название массива из названия домена, заданного приложением changeDomain
Суть задачи состоит в том, чтобы названию массива задать название домена, вводимого при помощи приложения changeDomain modstore.pro/packages/other/changedomain
Возможно ли это?
Возможно ли это?
Помогите с источником файлов в Migx
Уважаемые эксперты. Не пройдите мимо. Помогите с источником файлов.
Есть созданный и проверенный годами источник файлов «images» — images/ в корне. Все с ним супер работает.
Задача: нужно сделать вложенный migx. Делаю из админки в панели приложений. В первом уровне выводятся к примеру заголовки, во втором изображения (Сколько загрузил столько и должны выводиться). Во втором уровне изображения сделаны путем не inputType, а inputTv ссылающийся на дополнительное поле как раз с источником файлов «images»
Но при выводе всего этого хозяйства через getImageList у меня выводятся пути но не подтаскивается источник файлов.
Как быть? Что делать? Подскажите пожалуйста. Всю голову сломал.
Есть созданный и проверенный годами источник файлов «images» — images/ в корне. Все с ним супер работает.
Задача: нужно сделать вложенный migx. Делаю из админки в панели приложений. В первом уровне выводятся к примеру заголовки, во втором изображения (Сколько загрузил столько и должны выводиться). Во втором уровне изображения сделаны путем не inputType, а inputTv ссылающийся на дополнительное поле как раз с источником файлов «images»
Но при выводе всего этого хозяйства через getImageList у меня выводятся пути но не подтаскивается источник файлов.
Как быть? Что делать? Подскажите пожалуйста. Всю голову сломал.
[РЕШЕНО] pagination для bootstrap 3 и 4
Уважаемые коллеги.
Такой вопрос — на сайте Bootstrap 4, pdoPage возвращает по умолчанию шаблоны с классами для Bootstrap 3. Писать кучу INLINE для каждого pdoPage (а их достаточно на сайте) не очень комфортно, поэтому пришлось по-быстрому написать ужасный велосипед, см. код ниже, и сразу вопрос — наверное, можно как-то более изящно решить вопрос, зная гибкость MODX? К сожалению, мои скиллы пока недостаточны для других решений. Так-то все прекрасно работает, конечно, спасибо Василию за Fenom :) Благодарю за любые подсказки.
вызов pdoPage:
велосипедная подгонка шаблона под BS4:
Такой вопрос — на сайте Bootstrap 4, pdoPage возвращает по умолчанию шаблоны с классами для Bootstrap 3. Писать кучу INLINE для каждого pdoPage (а их достаточно на сайте) не очень комфортно, поэтому пришлось по-быстрому написать ужасный велосипед, см. код ниже, и сразу вопрос — наверное, можно как-то более изящно решить вопрос, зная гибкость MODX? К сожалению, мои скиллы пока недостаточны для других решений. Так-то все прекрасно работает, конечно, спасибо Василию за Fenom :) Благодарю за любые подсказки.
вызов pdoPage:
...
'tplPageWrapper' => '@FILE chunks/pager/pager_wrapper.tpl',
...велосипедная подгонка шаблона под BS4:
<div class="pagination" aria-label="pager">
<ul class="pagination justify-content-center">
{$_pls['first']
| replace : '<li class="disabled">' : '<li class="page-item disabled">'
| replace : '<li class="control">' : '<li class="page-item">'
| replace : '<a' : '<a class="page-link"'
| replace : '<span>' : '<a class="page-link" href="#">'
| replace : '</span>' : '</a>'
}
{$_pls['prev']
| replace : '<li class="disabled">' : '<li class="page-item disabled">'
| replace : '<li class="control">' : '<li class="page-item">'
| replace : '<a' : '<a class="page-link"'
| replace : '<span>' : '<a class="page-link" href="#">'
| replace : '</span>' : '</a>'
}
{$_pls['pages']
| replace : '<li>' : '<li class="page-item">'
| replace : '<li class="active">' : '<li class="page-item active">'
| replace : '<a' : '<a class="page-link"'
}
{$_pls['next']
| replace : '<li class="disabled">' : '<li class="page-item disabled">'
| replace : '<li class="control">' : '<li class="page-item">'
| replace : '<a' : '<a class="page-link"'
| replace : '<span>' : '<a class="page-link" href="#">'
| replace : '</span>' : '</a>'
}
{$_pls['last']
| replace : '<li class="disabled">' : '<li class="page-item disabled">'
| replace : '<li class="control">' : '<li class="page-item">'
| replace : '<a' : '<a class="page-link"'
| replace : '<span>' : '<a class="page-link" href="#">'
| replace : '</span>' : '</a>'
}
</ul><!-- /.pagination -->
</div><!-- /.pagination --> Вместе дешевле
Добрый день! Подскажите пожалуйста как лучше реализовать в карточке товара функцию вместе дешевле?
Автовывод заполненных модификаций и опций msOptionPrice2
Доброго дня!
Нужна помощь. Кто готов сделать полностью на платной основе — пожалуйста https://modx.pro/work/16473
На фронтенде выводятся модификации товара и опции автоматически — без указания в чанке, какую опцию выводить, а какую нет.
На фронтенде это выглядит так:

Модификации (для понимания) такие:
Цвет (Белый) — Ширина умывальника (80) — +1000р
Цвет (Белый) — Ширина умывальника (100) — +2000р
Цвет (Черный) — Ширина умывальника (80) — +3000р
Цвет (Черный) — Ширина умывальника (100) — +4000р
Нужно сделать некоторые доработки:
1. В модификациях вывести автоматически не только опции товара, но и свойства товара. Компонент позволяет в модификациях использовать не только опции товара, но и свойства. Сейчас настроен автовывод только опций — нужно и модификаций.
2. Сделать вывод названия опции и свойства из caption (так же, как называется в админке, а не из лексикона) — на изображении ms2_product_color2 не задавать через словарь.
3. Из списка опций, которые под модификациями, исключить автоматически те, которые использованы в модификациях. На изображении под модификациями автоматически выводятся опции. Стоит, видимо, объединить вывод модификаций и вывод списком опций и в процессе перебора опций и свойств разделить на те, которые использованы в модификациях и на остальные. Модификации вывести с возможностью выбора значений, а остальные — просто в виде таблицы.
Логику действий понимаю, но знаний реализовать не хватает. Буду рад любым промежуточным вариантам или готовому решению.
Нужна помощь. Кто готов сделать полностью на платной основе — пожалуйста https://modx.pro/work/16473
На фронтенде выводятся модификации товара и опции автоматически — без указания в чанке, какую опцию выводить, а какую нет.
На фронтенде это выглядит так:

Модификации (для понимания) такие:
Цвет (Белый) — Ширина умывальника (80) — +1000р
Цвет (Белый) — Ширина умывальника (100) — +2000р
Цвет (Черный) — Ширина умывальника (80) — +3000р
Цвет (Черный) — Ширина умывальника (100) — +4000р
Нужно сделать некоторые доработки:
1. В модификациях вывести автоматически не только опции товара, но и свойства товара. Компонент позволяет в модификациях использовать не только опции товара, но и свойства. Сейчас настроен автовывод только опций — нужно и модификаций.
2. Сделать вывод названия опции и свойства из caption (так же, как называется в админке, а не из лексикона) — на изображении ms2_product_color2 не задавать через словарь.
3. Из списка опций, которые под модификациями, исключить автоматически те, которые использованы в модификациях. На изображении под модификациями автоматически выводятся опции. Стоит, видимо, объединить вывод модификаций и вывод списком опций и в процессе перебора опций и свойств разделить на те, которые использованы в модификациях и на остальные. Модификации вывести с возможностью выбора значений, а остальные — просто в виде таблицы.
Логику действий понимаю, но знаний реализовать не хватает. Буду рад любым промежуточным вариантам или готовому решению.