Вопросы

msDiscount не показывает скидки в нужном месте.

msDiscount выводит скидку [-30%] без оболчки html тегами, ломая дизайн.
Как вывести Проценты в нужном мне месте?
Стили и скрипт подключены, может еще что дописать надо?
Кроме того новая цена не показана.
Борис
20 декабря 2018, 08:26
modx.pro
1 374
0

Фильтрация Список (Множественный выбор) [[mFilter2]]

Подскажите пожалуйста как можно сделать фильтрацию по полю, где используется Список (Множественный выбор).
При добавлении поля в фильтрацию оно выводится так
Илья Раевский
19 декабря 2018, 21:15
modx.pro
983
-1

Как в tpl.Tickets.meta вывести аватар автора?

Как в tpl.Tickets.meta вывести аватар автора?

Вроде вопрос не сложный, но понять не могу
[[+avatar]]
естественно выводит пустоту вместо адреса изображения
Алексей
19 декабря 2018, 19:08
modx.pro
1 208
0

TV (Список ресурсов), условие для поля "Where условие"

Всем добрый день.
Я пытаюсь составить условие для ТВ вида «Список ресурсов», которое позволит выводить во время редактирования материала только те ресурсы, которые совпадают по заголовку с редактируемым.
Вывод «влоб» работает:
[{"pagetitle:LIKE":"Полное название ресурса"}]
Выдает текущий ресурс и дублирующий.

А вот как составить универсальный запрос, чтобы система сама читала pagetitle текущего ресурса и сравнивала их с другими?
По-сути, я не могу понять, как обратиться к заголовку текущего ресурса и как обратиться к заголовку «остальных» ресурсов, через это условие?

Заранее спасибо за подсказку!
Валерий
19 декабря 2018, 15:43
modx.pro
795
0

StercSEO перестал работать редерект

Добрый день!
Перестал работать редерект через StercSEO, делали обновление modx до версии 2.6.5, в отчетах только это

[2018-12-19 13:12:40] (ERROR @ /core/model/modx/modx.class.php : 990) `[[+resource]]` is not a valid integer and may not be passed to makeUrl()
[2018-12-19 13:12:40] (ERROR in resource 298 @ /core/model/modx/modparser.class.php : 1372) Bad link tag `[[~[[+resource]]]]` encountered
Уже все передумал, решение найти не смог, может кто сталкивался с подобным, хостинг reg.ru
DeHuCkA
19 декабря 2018, 13:15
modx.pro
939
0

Как вывести заголовок родителя родителя (прародителя)?

Есть структура:
- Автоцентр
--- Офисы
------ Офис №202
Надо на странице «Офис №202» вывести pagetitle прародителя (Автоцентр), с помощь pdoTools.
Подскажите, пожалуйста, как это сделать?
Денис
19 декабря 2018, 12:40
modx.pro
2 569
0

Дополнение AmoCRM и Formit

Купил данное дополнение, столкнулся с проблемой, но разработчик молчит как рыба об лёд.
Поэтому спрашиваю тут. У меня в форме только поля имя name и телефон phone. Имя передается в амо, а телефон нет. Подскажите, пожалуйста, как поправить, чтоб работало.
Александр Суркин
19 декабря 2018, 10:22
modx.pro
2 158
0

Fenom в modx

Здравствуйте! Что-то не понимаю работу фенома.
Написал такую конструкцию:
{if 'mobile' | mobiledetect}
        {var $limit = 5}
    {/if}

    {if 'standart' | mobiledetect}
        {var $limit = 10}
    {/if}

    {$limit}
выводится просто текстом.

Потом в телеграме мне посоветовали изменить настройки fenom в pdotools. Я изменил. Сейчас у меня такие:
screenshots.firefox.com/PxbQHlX5cyQapRvH/vogel-noot
В нескольких своих чанках и шаблонах, где вызываются инлайновые стили и скрипты, поставил пробелы до и после фигурных скобок. А также обернул их в теги {ignore} {/ignore}

В результате пустая страница выводится. И всё.
Кеш чистил.
Не понимаю, как сделать, чтобы нормально выводилось число, а не код.
Владимир
18 декабря 2018, 20:15
modx.pro
1 130
0

Помощь в правильном запросе или в более правильном решении

Здравствуйте! Не знаю поможет ли тут кто-то вообще в таком вопросе, но буду очень на это надеяться.
Перейду ближе к теме вопроса.
В общем есть у меня сайт, в нем есть вывод ресурсов, для примера — это каталог с играми, внутри этого каталога, есть дочерние ресурсы, т.е. сами игры, так вот, в каждой такой игре, есть MIGX поле, в которых указываются к примеру время проведения этой игры: думаю это не суть важно, но смысл надеюсь поняли, т.е. в каждой игре, есть список MIGX из времен его проведения.
Собственно вот в чем загвоздка, решил я для этого дела, сделать в админке некую сводную таблицу, ну для удобства скажем так. В этой таблице, должны выводится все времена к каждой игре, т.е. все списки из разных игр, должны быть выведены в одной таблице, но, соответственно там должно так же выводится и название ресурса (игры). Как это сделать правильно, ума не приложу, уже по разному пробовал, даже какие-то наброски кода не знаю что бросить, т.к. к какому-то конечному результату так и не пришел в итоге.
Эдуард
18 декабря 2018, 01:54
modx.pro
947
0

Как вывести ссылку на оплату на странице успешного заказа?

Здравствуйте. Хочу немного переделать логику оформления заказа. Мне нужно чтобы при выборе онлайн-оплаты не происходил редирект на платежный сервис сразу, а сначала был переход на страницу Спасибо за заказ. И уже на этой странице я бы выводил пользователю линк для оплаты.

Я так понимаю, что нужно расширить класс msOrderHandler для того, чтобы убрать редирект. Но вот каким образом в чанке tpl.msGetOrder вывести ссылку на оплату? Подскажете?

Решение:
Для того, чтобы при выборе любого способа оплаты не было редиректа на платёжную систему необходимо расширить класс заказа . Код нового класса:
<?php

if (!class_exists('msOrderInterface')) {
    require_once MODX_CORE_PATH . 'components/minishop2/model/minishop2/msorderhandler.class.php';
}


class appOrderHandler extends msOrderHandler implements msOrderInterface
{

    /** @var modX $modx */
    public $modx;
    /** @var miniShop2 $ms2 */
    public $ms2;

    /** @var array $config */
    public $config;
    /** @var array $order */
    protected $order;


    function __construct(miniShop2 & $ms2, array $config = [])
    {
        parent::__construct($ms2, $config);

        //$this->modx->log(1, print_r('__construct', 1));
    }


    /**
     * @param array $data
     *
     * @return array|string
     */
    public function submit($data = [])
    {
        $response = $this->ms2->invokeEvent('msOnSubmitOrder', [
            'data'  => $data,
            'order' => $this,
        ]);
        if (!$response['success']) {
            return $this->error($response['message']);
        }
        if (!empty($response['data']['data'])) {
            $this->set($response['data']['data']);
        }

        $response = $this->getDeliveryRequiresFields();
        if ($this->ms2->config['json_response']) {
            $response = json_decode($response, true);
        }
        if (!$response['success']) {
            return $this->error($response['message']);
        }
        $requires = $response['data']['requires'];

        $errors = [];
        foreach ($requires as $v) {
            if (!empty($v) && empty($this->order[$v])) {
                $errors[] = $v;
            }
        }
        if (!empty($errors)) {
            return $this->error('ms2_order_err_requires', $errors);
        }

        $user_id = $this->ms2->getCustomerId();
        if (empty($user_id) || !is_int($user_id)) {
            return $this->error(is_string($user_id) ? $user_id : 'ms2_err_user_nf');
        }

        $cart_status = $this->ms2->cart->status();
        $delivery_cost = $this->getCost(false, true);
        $cart_cost = $this->getCost(true, true) - $delivery_cost;
        $createdon = date('Y-m-d H:i:s');
        /** @var msOrder $order */
        $order = $this->modx->newObject('msOrder');
        $order->fromArray([
            'user_id'       => $user_id,
            'createdon'     => $createdon,
            'num'           => $this->getNum(),
            'delivery'      => $this->order['delivery'],
            'payment'       => $this->order['payment'],
            'cart_cost'     => $cart_cost,
            'weight'        => $cart_status['total_weight'],
            'delivery_cost' => $delivery_cost,
            'cost'          => $cart_cost + $delivery_cost,
            'status'        => 0,
            'context'       => $this->ms2->config['ctx'],
        ]);

        // Adding address
        /** @var msOrderAddress $address */
        $address = $this->modx->newObject('msOrderAddress');
        $address->fromArray(array_merge($this->order, [
            'user_id'   => $user_id,
            'createdon' => $createdon,
        ]));
        $order->addOne($address);

        // Adding products
        $cart = $this->ms2->cart->get();
        $products = [];
        foreach ($cart as $v) {
            if ($tmp = $this->modx->getObject('msProduct', ['id' => $v['id']])) {
                $name = $tmp->get('pagetitle');
            } else {
                $name = '';
            }
            /** @var msOrderProduct $product */
            $product = $this->modx->newObject('msOrderProduct');
            $product->fromArray(array_merge($v, [
                'product_id' => $v['id'],
                'name'       => $name,
                'cost'       => $v['price'] * $v['count'],
            ]));
            $products[] = $product;
        }
        $order->addMany($products);

        $response = $this->ms2->invokeEvent('msOnBeforeCreateOrder', [
            'msOrder' => $order,
            'order'   => $this,
        ]);
        if (!$response['success']) {
            return $this->error($response['message']);
        }

        if ($order->save()) {
            $response = $this->ms2->invokeEvent('msOnCreateOrder', [
                'msOrder' => $order,
                'order'   => $this,
            ]);
            if (!$response['success']) {
                return $this->error($response['message']);
            }

            $this->ms2->cart->clean();
            $this->clean();
            if (empty($_SESSION['minishop2']['orders'])) {
                $_SESSION['minishop2']['orders'] = [];
            }
            $_SESSION['minishop2']['orders'][] = $order->get('id');

            // Trying to set status "new"
            $response = $this->ms2->changeOrderStatus($order->get('id'), 1);
            if ($response !== true) {
                return $this->error($response, ['msorder' => $order->get('id')]);
            } else {
                if ($this->ms2->config['json_response']) {
                    return $this->success('', ['msorder' => $order->get('id')]);
                } else {
                    $this->modx->sendRedirect(
                        $this->modx->context->makeUrl($this->modx->resource->id, ['msorder' => $response['data']['msorder']])
                    );

                    return $this->success();
                }
            }
        }

        return $this->error();
    }


}
mekirile
17 декабря 2018, 23:26
modx.pro
4
2 150
0