Всего 123 789 комментариев

Роман Ильин
20 марта 2024, 15:26
+3
Прекрасные новости, Василий! Спасибо за труд, пошел смотреть изучать
Денис Усманов
20 марта 2024, 15:15
+1
Очень интересно, буду пробовать как появится свободное время. И вот ещё что, по загрузке файлов из заполняемых форм и отправке с письмом: такое уже есть в SendIt от @Артур Шевченко, как раз использовал его компонент в последнем проекте в работе.
Николай Савин
20 марта 2024, 14:39
0
Одно дело написать «У меня возникла такая же проблема, решил вот так-то». Это действительно полезное сообщение для потомков.

Другое дело, поступить как вы — целенаправленно отвечать человеку на его сообщение 8 летней давности. Да еще и совет даете, что ему попробовать.
Константин
20 марта 2024, 13:35
0
У меня только сейчас возникла такая проблема. Начал рыть интернет. В поиске выдало эту страницу, на которой не нашел ответа. Но нашел в другом месте. Написал здесь, чтобы закрыть тему. Что не так?
vectorserver
20 марта 2024, 06:45
0
Тоже замучился но у меня форма динамическая инпуты подставляются через JS и хеш не совпадает, сделал такой костыль пока:
В assets/components/ajaxform/action.php
Закомментировал с 25 по 27 строку проверку
$_REQUEST['af_action']
Кому лень вот готовый код (костыль):
<?php
/** @var modX $modx */
define('MODX_API_MODE', true);
require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/index.php';
$modx->getService('error', 'error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget('FILE');

// Switch context if need
if (!empty($_REQUEST['pageId'])) {
    if ($resource = $modx->getObject('modResource', (int)$_REQUEST['pageId'])) {
        if ($resource->get('context_key') != 'web') {
            $modx->switchContext($resource->get('context_key'));
        }
        $modx->resource = $resource;
    }
}

/** @var AjaxForm $AjaxForm */
$AjaxForm = $modx->getService('ajaxform', 'AjaxForm', $modx->getOption('ajaxform_core_path', null,
        $modx->getOption('core_path') . 'components/ajaxform/') . 'model/ajaxform/', array());

if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
    $modx->sendRedirect($modx->makeUrl($modx->getOption('site_start'), '', '', 'full'));
} /*elseif (empty($_REQUEST['af_action'])) {
    echo $AjaxForm->error('af_err_action_ns');
}*/ else {
    echo $AjaxForm->process($_REQUEST['af_action'], array_merge($_FILES, $_REQUEST));
}

@session_write_close();
Николай Савин
19 марта 2024, 20:48
0
Не, ну может человек до сих пор не знает, что у него сломалось
Наумов Алексей
19 марта 2024, 14:22
0
8 лет, 8 месяцев и 19 дней прошло с момента создания этой публикации =)
Константин
19 марта 2024, 14:13
0
Посмотрите в Журнале ошибок какой компонент создает проблему. И попробуйте его переустановить. У меня глючил
autoRedirector.
Володя
19 марта 2024, 14:07
+1
Разобрался, благодаря вам!
Отлично!
Эти данные надо вынимать из msOrderAddress, а не из msOrder.
ну значит пакет пишет не пропертис заказа, а в пропертис адреса заказа.
Еще раз убедился на практике в большом потенциале дополнения msStatOrders. Благодарю автора!
Пожалуйста, обращайтесь!
Володя
19 марта 2024, 14:03
0
Естественно сортировка и группировка по мнимым полям не работает)
Андрей Шевяков
19 марта 2024, 14:01
0
Единственное не работает Группировка и Сортировка по этому полю((((
Андрей Шевяков
19 марта 2024, 13:55
+1
Разобрался, благодаря вам!
Эти данные надо вынимать из msOrderAddress, а не из msOrder.

Получается надо сделать так:

1) Добавляем выборку поля Address.properties



2) Добавляем рендер



<?php
/** @var modX $modx */
/** @var array $row */
$utm= '';

if (!empty($row['Address.properties'])) {
    $properties = json_decode($row['Address.properties'], true);
    $utm = $properties['utm_campaign'] ?: '';
}

return $utm;

3) Добавляем поле



Теперь выводится поле utm_campaign в заказах. Изначально я пытался вывести utm_source, оно делается аналогично.

Еще раз убедился на практике в большом потенциале дополнения msStatOrders. Благодарю автора!
Володя
19 марта 2024, 12:31
+1
<?php
/** @var modX $modx */
/** @var array $row */
$utm= '';

if (!empty($row['Order.properties'])) {
    $properties = json_decode($row['Order.properties'], true);
    $utm = $properties['utm_source'] ?? ''; // тут берете нужное поле из массива properties
}

return $utm;
Сергей
19 марта 2024, 10:55
0
Не догадался перевести в пуникод. Теперь всё работает, спасибо!
Андрей Шевяков
19 марта 2024, 10:34
0
Не заработало, выводит "{" и ошибки в логах вида:
PHP warning: Illegal string offset 'utm_source'
Скрин

Рендер
<?php
/** @var modX $modx */
/** @var array $row */
$utm= '';

if (!empty($row['Order.properties'])) {
    $utm = $row['Order.properties']['utm_source']; // тут берете нужное поле из массива properties
}

return $utm;

В ТП к сожалению не могу написать, прошло больше года после покупки дополнения.
Володя
19 марта 2024, 07:14
+1
Доброе утро.

Добавьте выборку поля Order.properties



добавьте рендер



<?php
/** @var modX $modx */
/** @var array $row */
$utm= '';

if (!empty($row['Order.properties'])) {
    $utm = $row['Order.properties']['utm']; // тут берете нужное поле из массива properties
}

return $utm;

добавьте поле



Должно работать, если не получится — пишите в ТП.
Андрей Шевяков
18 марта 2024, 21:25
0
Добрый день!
На сайте используем дополнение utmMark, оно пишет данные utm меток в формате json в поле properties заказа.

Помогите пожалуйста, как вывести поле properties в читаемом виде?

По умолчанию выводит [object Object]
Сергей Сергеевич
18 марта 2024, 20:36
0
А в чем именно вам помогло данное расширение? Как применяли? У меня сложилось впечатление, что проект анонсировали и он не завелся… И не понятно, платный он или нет.
Leo
Leo
18 марта 2024, 13:22
0
Спасибо! easyRedirects тоже хорошо справляется с перенаправлением, только прописывать урлы нужно вручную
Володя
18 марта 2024, 09:13
+1
В итоге проблемы с сохранением вызывал плагин autoredirector
modx.pro/help/24408#comment-141539