Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 147 комментариев

Сергей Шлоков
Сергей Шлоков
И я так понимаю, что должно. Но увы… Вот код для проверки:
<?php
define('MODX_API_MODE', true);
require 'index.php';
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_INFO);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
?>
<!DOCTYPE html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $('a').click(function() {
                $.post(document.location.href, {action: 'change', val: '5'},function(data) {
                    $('#res').html(data);
                })
                return false;
            })
        })
    </script>
</head>
<body>
<?php
//')
if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
    if ($_POST['action'] == 'change') {
        $_SESSION['testvar'] = $_POST['val'];
        die('
Новое значение $_SESSION["testvar"]:  '.$_SESSION["testvar"].'.  (А теперь нажимаем F5 и видим старое значение.)');
    }
}
if (!isset($_SESSION['testvar'])) {$_SESSION['testvar'] = 1;}
echo "<a id=\"test\" href=\"#1\">Изменить значение</a>";
echo "<div id=\"res\">
\$_SESSION[\"testvar\"]:  {$_SESSION['testvar']}</div>";
?>
</body>
Видимо, есть какая-то тонкость, которая ускользает от моего неопытного взгляда.
Alexey Barsukov
Alexey Barsukov
Наткнулся на одну особенность функции runProcessor, после нее лог переводится в обычный error-лог modx. Если пишете свой компонент, который работает с консолью через регистры, может сложиться впечатление, что функция runProcessor просто не работает, но это не так. Просто лог из регистров после ее вызова переводится в error-лог. Чтобы вернуть его обратно в регистры, нашел такой способ: нужно после runProcessor писать:
$this->modx->request->registerLogging($_POST);
. Как я понял, эта функция смотрит наличие ключей регистров в массиве (в данном случае $_POST) и если информации хватает (присутствуют ключи topic и т.д.), снова переводит лог в регистры.
Дмитрий Гречко
Дмитрий Гречко
Дмитрий Путов
Дмитрий Путов
По второй ссылке я же и отписался там же, что метод предложенный автором не работает корректно. Мне кажется было бы удобнее если бы штатно был бы реализован метод Cart.AddMany(), я попытался его сам реализовать не лезя в переписывание msCartHandlera, но это ничего не дает, все работает не стабильно.
Дмитрий Путов
Дмитрий Путов
Несколько товаров, это в моем случае несколько артикулов по одной штуке. Теорию изучил загодя, но на самом деле ничего не работает как надо. При попытки пройтись скриптом по странице с выполнением метода Minishop2.Cart.Add()… все время имеет разные результаты. Помечены 4 товара галочками и я в цикле проверяю это и вызываю метод указанный выше, причем кусок кода выдран из defaut.js уважаемого разработчика. В итоге — выводится 4 сообщения зеленых справа вверху, но добавляется то один артикул, то два, то три. Такие дела.
Сергей Шлоков
Сергей Шлоков
Василий, подскажи, как поменять $_SESSION переменную через post запрос? Я делаю так:
Инициализирую переменную:
$_SESSION['var'] = 1;
При клике на ссылку посылаю ajax
$.post(document.location.href, {action: 'changevar', id: 5})
В сниппете меняю переменную
$_SESSION['var'] = $_POST['id']; // $_POST['id']=5
Проверяю, $_SESSION['var'] — все равно равна 1. Не понимаю, это же глобальный массив.
Если в сниппете поставить
$_SESSION['var'] = $_POST['id']; // $_POST['id']=5
die($_SESSION['var'])
Ajax post возвращает 5. Но $_SESSION['var'] не меняется.
Видимо есть какое-то кодовое слово, чтобы заставить $_SESSION['var'] измениться.
Дмитрий Гречко
Дмитрий Гречко
Хлебников Михаил
Хлебников Михаил
Здравствуйте. Подскажите, пожалуйста. У меня такая же ошибка «Uncaught ReferenceError: miniShop2Config is not defined». При этом делал по этому уроку.

На выходе у меня получается так. Я ввожу запрос и нажимаю на поиск. Остаемся на той же странице. Если открыть страницу с результатами поиска принудительно, то она пустая.
Олег Ракул
Олег Ракул
Все отписался, все сделали как хотел. Спасибо огромное за удобный компонент и замечательную поддержку!
Просто тикеты на сайте репозитория неочевидны. Во вкладку поддержка кликнуть не догадался — что за ней не совсем понятно. Видимо не я один такой идиот — есть идиоты и в соседних темах, вы бы там подумали как сделать ссылку на поддержку попонятней и позаметней.