Вопросы

Взаимодействие msOptionsPrice2 и PayAndSee

Добрых суток!

Делаем платные выкройки через minishop2, требуется в одном товаре разные размеры и под каждый размер будет определенные файлы для скачивания на определенный период времени.

Если мы их будем делать (размеры с закачкой файлов) через msOptionsPrice2, то данный компонент для реализации подписки на определенное время PayAndSee все равно будет давать доступ ко всему товару, не смотря на разделение по размерам msOptionsPrice2.

Возможно как то прицепится к опциям компонента msOptionsPrice2 товара? чтобы он давал доступ к определенному размерному ряду товара msOptionsPrice2, а там будет уже только нужные файлы для скачивания?

Пример:
Платье — размер 172 и 176 — под каждым размером идут 5 файлов для скачивания на определенный период времени.

Нужно при покупке отправлять клиенту файлы только того размера, который он купил.

Может кто сталкивался с такими решениями или похожими, спасибо за ответы.
Дмитрий
29 января 2021, 01:01
modx.pro
716
0

[РЕШЕНО] Вопрос для академиков

Сразу оговорюсь, никакого сарказма, на мой взгляд задача действительно должна быть известна тем кто получил академическое образование по специальности программирование. Собственно задача.
Дан массив
[246 => 1, 267 =>2, 296 => 3, 308 => 4, 309 => 5]
Его ключи это id ресурсов, а значения отвечают за их сортировку, пусть будет menuidex. Нужно, чтобы при изменении значения например с ключом 308 с 4 на 2 получился массив
[246 => 1, 267 => 3, 296 => 4, 308 => 2, 309 => 5].
Я написал такое рашение
<?php
switch ($modx->event->name) {
    case 'OnDocFormSave':
        $resource->set('publishedon', time());
        $resource->save();
        if($resource->get('class_key') == 'Ticket'){
            $curPosition = $resource->getTVValue('position');
            $positions = [];
            if($resource->get('parent') == 73){
                $resources = $modx->getIterator('modResource', array('class_key' => 'Ticket', 'id:!=' => $id, 'parent' => 73));
            }
            else{
                $resources = $modx->getIterator('modResource', array('class_key' => 'Ticket', 'id:!=' => $id, 'parent:!=' => 73));
            }
            foreach($resources as $res){
                $pos = $res->getTVValue('position');
                if($pos){
                    $positions[$res->get('id')] = $pos;
                }
            }
            
            if(in_array($curPosition,$positions)){
                asort($positions);
                foreach($positions as $id => $pos){
                    if($pos >= $curPosition){
                        $modx->log(1, print_r($curPosition,1));
                        $modx->log(1, print_r($pos,1));
                        $res = $modx->getObject('modResource', $id);
                        $res->setTVValue('position', $pos + 1);
                        $res->save();
                        $curPosition = $pos + 1;
                    }
                }
            }
            //$modx->log(1, print_r($positions,1));
        }
    break;
}
Но кажется мне, что в нём что-то не так, но вот что именно не могу понять.
Артур Шевченко
28 января 2021, 09:42
modx.pro
838
+1

Как правильно использовать runSnippet в modx api?

Сильно не пинайте.

На сайте есть форма, при отправке Ajax отправляет на php данные на проверку. Пытаюсь вызвать сниппет phpthumbof

php

<?php
// Подключаем modx api
define('MODX_API_MODE', true);
require $_SERVER['DOCUMENT_ROOT'].'/index.php';

....

$options = "w=100&h=100&zc=1&far=C&q=95";
$image = $_SERVER["REQUEST_SCHEME"] . '://' . $_SERVER["SERVER_NAME"].'/user_upload/'.$fileName; // тут все правильно
$userImage = $modx->runSnippet('phpthumbof', array('input' => $image, 'options' => $options)); // комментируя эту строку никаких ошибок не появляется

echo json_encode(['error' => '<img src="'.$userImage.'" alt="">'], JSON_UNESCAPED_UNICODE);
exit;
....
При сабмите появляется ошибка

{"readyState":4,"responseText":"","status":500,"statusText":"error"}
blackseabreathe
27 января 2021, 16:17
modx.pro
2 111
0

Валидация поля в форме

Пытаюсь прописать валидацию поля на то, чтобы значение поля содержит только буквы. Прописываю в виде:
pagetitle:required:maxLength=^15^:alpha
maxLength отрабатывает, а alpha нет. Поле с цифрами проходит и никакой ошибки в span error не показывает.
alpha это же стандартный валидатор из коробки. Почему он не работает?
Антон
27 января 2021, 12:44
modx.pro
1 093
0

MixedImage и FastUploadTV пути к изображениям

В дополнениях mixedImage и FastUploadTV есть возможность указать сниппет, который возвращает строку пути для продвинутой маршрутизации с помощью префикса @SNIPPET.

Пример:
Путь сохранения: @SNIPPET test

Я написал сниппет, но не могу понять как предать сниппету ID ресурса и ID доп. поля (tv).
Подскажите знающие люди.
Алексей
27 января 2021, 08:02
modx.pro
787
0

Как сделать редирект после чистки корзины в minishop2?

Приветствую господа. Подскажите, как можно сделать редирект на главную страницу после нажатия на кнопку «чистка корзины»?
Гуглил способы, единственное что нашел:
//данный способ мне не подходит (это условие "если корзина пуста")
{if !count($products)}
        <script>
        	document.location.href="/index.html";
        </script>
{else}
Но этот способ мне не подходит! Пробовал скриптом через button onlick — безрезультатно. Есть варианты?))
Дмитрий
27 января 2021, 01:26
modx.pro
1
1 181
0

minishop2 - Оплатить повторно или сменить вид оплаты после неуспешной попытки

Был уверен, что тут уже такие запросы были, но просмотрел до 18 года — нашел схожие, но не такие же.
Если даем клиенту возможность оплатить заказ каким-нибудь методом онлайн-оплаты (у меня подключен родной модуль для Сбербанка, разработанный ими же), то клиент после страницы оформления заказа и выбранного соответствующего метода направляется на страницу эквайринга Сбербанка. Регулярно вижу кейс, то там люди:
  1. не могут оплатить, т.к. под рукой нет карты, Сбербанка онлайн и так далее
  2. не могут оплатить, т.к. что-то пошло не так (номер не тот ввел, денег нет на карте, еще что-то)
  3. передумывают платить онлайн, решают, что выберут другой вариант оплаты
Собственно, человек возвращается, корзина пустая, есть только страница с информацией о заказе.
Viacheslav
26 января 2021, 17:02
modx.pro
631
0

msearch подвисает поиск что можно сделать?

msearch2 подвисает поиск на запросах с большим количеством вариантов что можно сделать?
подвисает и на автокомплите и с результатами поиска (белая страница)

большое количество это например слово деталь — 50к+ вариантов
както может можно ограничить это дело чтобы он не маялся так? даже сотни вариантов по любой выборке было бы достаточно
Евгений
26 января 2021, 14:31
modx.pro
646
0

pdoResources вывод из множественного списка

Ребят, все привет. Есть TV поле с множественным выбором. В нем идёт в таком стиле Красный==1||Белый==2 и т.д., к одному посту может присваиваться 1-3 таких пункта. Как сделать вывод в pdoResources? Допустим перебрать все посты и где будет Белый вывести, но также он может ещё иметь 3 таких и значение поля будет 1,2,3, а не просто 2. Как такое реализовать? Подскажите пожалуйста
Владислав
25 января 2021, 21:28
modx.pro
1
761
0

Minishop2 не отправляет письма о заказах (smtp QuickEmail при этом работает)

При оформлении заказа не приходят письма на указанный ящик. Ящик вида name@domain.ru. Т.е почта домена корпоративная от Яндекса.
Потом настроил отправку через SMTP и все равно та же проблема. Причем при использовании QuickEmail — почта отправляется и все ок. Что не так с Minioshop2 в этом плане?

Подскажите пожалуйста если кто сталкивался с этой проблемой, каждый раз какой-то ужас с получением уведомлений на почту от Minishop2?
Роман
25 января 2021, 17:01
modx.pro
1 730
0