Вопросы

ошибка xpdo

Нужна помощь, лег сервер, сказали что проблема в xpdo. Было указано что в файле xpdo.php было зацикливание и сервер прервал выполнение и такое было до стадии, когда сервак лёг. К сожалению лог удалил, может быть есть предположения?
Евгений
30 января 2021, 22:51
modx.pro
1 233
0

Ссылка на оплату mspYaCassa

Добрый день.
Подскажите, как отправить пользователю ссылку на оплату при формировании заказа, если оплата выбрана через компонент mspYaCassa?
Допустим пользователь сразу не оплатил заказ и его можно было бы вернуть по этой ссылке на оплату.
Андрей
30 января 2021, 13:44
modx.pro
620
0

Добавление в корзину minishop2

Здравствуйте!

В проекте появилась необходимость в следующем:
при добавлении товара надо, чтобы убиралась кнопка добавления, вместо нее кнопка/кнопки изменения количества данного товара. Соответственно, чтобы данные сохранялись на странице, т.е. при обновлении сначала шла проверка на наличие товара в корзине.

Думал вызвать на странице каталога сниппет корзины и проверять id и количество.

Еще не начал реализовывать, может есть какие наработки или идеи, буду благодарен))
Dima
29 января 2021, 23:22
modx.pro
2
1 716
0

msPre редактирование кастомных полей

Созданы кастомные поля для карточек товара, при этом их можно вывести в msPre, но вот редактировать их не получается. Вопрос, это не правильно созданы кастомные поля или же ограничение функционала( как его тогда можно расширить)?
Роман
29 января 2021, 11:25
modx.pro
552
0

minishop2 и ms2_category_grid_fields вывод индивидуальных полей

Возможно ли сделать вывод индивидуальных полей, как это сейчас реализовано в битриксе или mspre? Чтобы каждый менеджер смог вывести те поля, которые ему нужны для редактирования и быстрой навигации по товарам.
Роман
29 января 2021, 11:20
modx.pro
658
0

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

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

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

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

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

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

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

Может кто сталкивался с такими решениями или похожими, спасибо за ответы.
Дмитрий
29 января 2021, 01:01
modx.pro
738
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
884
+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 165
0

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

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

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

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

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

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