Михаил

Михаил

С нами с 27 декабря 2013; Место в рейтинге пользователей: #629
Михаил
20 апреля 2020, 11:55
+1
Здесь предложил решение modx.pro/help/5093#comment-119860
Михаил
20 апреля 2020, 11:51
2
0
Чтобы поменять 302 редирект на 301, не правя исходники и с сохранением возможности обновления pdoTools, нужно:
1. Создать в системных настройках modx настройку pdoPage.class со значением pdotools.pdopagecustom joxi.ru/Dr8ygaRhoEYjgm
2. Создать в папке core/components/pdotools/model/pdotools файл pdopagecustom.class.php со следующим содержимым:
<?php

require_once MODX_CORE_PATH . 'components/pdotools/model/pdotools/pdopage.class.php';

class pdoPageCustom extends pdoPage
{
    /** @var modX $modx */
    public $modx;
    /** @var pdoTools $pdoTools */
    public $pdoTools;
    /** @var string $req_var */
    protected $req_var = '';


    /**
     * @param modX $modx
     * @param array $config
     */
    public function __construct(modX & $modx, $config = array())
    {
        $this->modx = &$modx;

        $fqn = $modx->getOption('pdoTools.class', null, 'pdotools.pdotools', true);
        $path = $modx->getOption('pdotools_class_path', null, MODX_CORE_PATH . 'components/pdotools/model/', true);
        if ($pdoClass = $modx->loadClass($fqn, $path, false, true)) {
            $this->pdoTools = new $pdoClass($modx, $config);
        } else {
            return;
        }
        $modx->lexicon->load('pdotools:pdopage');
    }
    
    /**
     * Redirect user to the first page of pagination
     *
     * @param $isAjax
     *
     * @return string
     */
    public function redirectToFirst($isAjax = false)
    {
        unset($_GET[$this->pdoTools->config['pageVarKey']]);
        unset($_GET[$this->modx->getOption('request_param_alias', null, 'q')]);
        if (!$isAjax) {
            $this->modx->sendRedirect(
                $this->modx->makeUrl(
                    $this->modx->resource->id,
                    $this->modx->context->key,
                    $_GET,
                    'full'
                ),
                array('responseCode' => 'HTTP/1.1 301 Moved Permanently')
            );

            return '';
        } else {
            $_GET[$this->pdoTools->config['pageVarKey']] = 1;
            $_REQUEST = $_GET;

            return $this->pdoTools->runSnippet('pdoPage', $this->pdoTools->config);
        }
    }

}
В функции redirectToFirst добавлен 301 редирект.
Михаил
14 февраля 2019, 16:58
0
Владимир, добрый день!

Название товаров и структура каталога в МС и Минишопе отличаются. Могу ли я обновлять остатки в Минишопе, находя нужный товар по полю Код из МС (поле будет содержать id товара на сайте) joxi.ru/l2ZRJK4FzEWxL2? При этом структуру каталога и товары на сайте не трогать, только обновлять остатки. Если это возможно, то как это лучше реализовать?
Михаил
27 февраля 2015, 09:02
0
Поддержал. В наших силах сохранить minishop бесплатным)
Михаил
12 февраля 2015, 12:28
0
Спасибо, кругозор расширил)
Михаил
12 февраля 2015, 11:36
0
Спасибо, помогло)
Михаил
29 января 2015, 10:25
0
Василий, спасибо. Помогло. Прогнал json-строку через addcslashes
$v_json = addcslashes($v_json, '\\');
Михаил
03 октября 2014, 14:03
0
Спасибо. Это работает. Несмотря на многочисленные обсуждения спрошу еще раз: получается, чтобы сравнить ТВ с числом нужно вручную писать where?
Михаил
03 октября 2014, 12:31
0
Да, именно так. Например, нам нужны ресурсы с ценой не более 500 000 р. Обычная цена может быть 600 000, а цена по акции 450 000. Такой ресурс должен попасть в выборку, поэтому используется ||.