Вопросы

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 175
0

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

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

Tagmanager2 и пагинация

Настроил тагменеджер2 все работает. И пагинация тоже, но при переходе на вторую страницу пагинация пропадает но если обновить эту же страницу то появляется.
Так же при возвращении на 1ую страницу тоже пропадает пока не обновишь.
Как быть, куда копать?
вот больной: comosardinia-estate.com/nedvizhimost/
КА
17 декабря 2018, 22:19
modx.pro
1 103
0

Свое значение в old_price

Подскажите как вывести свое значение в old_price на сайте
Что то не выходит. C ценой все нормально, а со старой проблемы
Или я что то делаю совсем не так?

switch ($modx->event->name) {

case 'msOnGetProductPrice':
 
...
$values = & $modx->event->returnedValues;
$values['price'] =  $pricemin; // Это правильно на сайте
$values['old_price'] =  $pricemax; // А это нет
break;
...
Вася
17 декабря 2018, 20:17
modx.pro
1 113
0

Extra Office: Randomly blocked users

Hi all,

I'm using the Extra Office along with minishop2.

Sometimes users are blocked without a reason. There are 0 failed logins.


The error log mentions sometimes entries like that
(ERROR @ /home/tabakfab/public_html/core/components/office/controllers/auth.class.php : 495) [Office] unable to login user ronald@xxxxyy.ch. Message: You are blocked by an administrator.
But no administrator ever blocked a user.

Any idea why this is happening?

Best
Fabian
Fabian Christen
17 декабря 2018, 19:13
modx.pro
1 103
0

Minishop2 и мультикатегории

Добрый день.

Хочу попросить помощи, чтобы толкнули в правильном направление.

Дано:
— minishop2

Структура категорий

Категория 1
— Под категория 1
— Товар 1
— Товар 2
— Под категория 2
— Товар 3
— Товар 4

Категория 2
— Под категория 1
— Товар 5
— Товар 6
— Под категория 2
— Товар 7
— Товар 8

Категория 3
-Товар 2
-Товар 7

Товар 2 и товар 7 прикреплены к категории 3
через мульти категории.

Что требуется:

На выходе требуется получить, при открытии категории 3 следующее:

Категория 1 — > Под категория 1
— товар 2

Категория 2 — > Под категория 2
— товар 7

Спасибо откликнувшимся.
Максим
17 декабря 2018, 14:52
modx.pro
1 371
0

Индексация текста в файлах PDF

Добрый день! Не подскажете, возможна ли на MODX индексация и поиск в PDF файлах? Вроде бы это может сделать pdfparser, но я не сумел найти на него никакой документации…
Заранее благодарен!
Сергей
17 декабря 2018, 13:15
modx.pro
986
0

Не меняет изображения модификации msoptionsprice2

Михаил
17 декабря 2018, 10:58
modx.pro
1 560
0

Переезд

Переношу MODX c одного хостинга на другой, все сделал по инструкции, почистил кеш, отключил все сеансы. При установке на новый хостин, на втором шаге, сначала вылетает ошибка
Parse error: syntax error, unexpected '[' in /home/c/cx26191/public_html/core/components/clientconfig/model/clientconfig/clientconfig.class.php on line 90
Кусок кода с этой строкой

Если откатить установку назад, и повторить установку уже другая ошибка
Parse error: syntax error, unexpected '{' in /home/c/cx26191/public_html/core/config/config.inc.php on line 91
Кусок кода с этой строкой


При откате и повторе третий раз никакой ошибки, просто белый экран, подскажите в каком направлении хоть искать
Юрий
17 декабря 2018, 07:00
modx.pro
3 698
0