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

R2m0x94 (Vasily)
22 июня 2024, 01:13
1
+1
/** @var $utm utmExample */
.htaccess
<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    
    RewriteCond %{QUERY_STRING} (^|&)^utm_source=yandex($|&)
    RewriteRule ^(.*)$ /$1?utm_source=chromium&utm_medium=cpc&utm_campaign=metrica [R=301,L]
</IfModule>
plugin:
<?php
if ($modx->event->name == 'OnHandleRequest') {
    if ($modx->context->get('key') == 'mgr') {return;}
    if (strpos($_SERVER['REQUEST_URI'], 'utm_source=chromium') !== false) {
        $_SESSION['utm_saved'] = '?utm_source=chromium&utm_medium=cpc&utm_campaign=metrica';
        return;
    } else {
        if (empty($_SESSION['utm_saved'])) {
            return;
        }
        if (!empty($_GET['utm_source'])) {
            return;
        }
        $modx->sendRedirect($modx->getOption('site_url').ltrim($_SERVER['REQUEST_URI'], '/').$_SESSION['utm_saved']);
    }
}
return;
Илья Павлов
22 июня 2024, 00:10
0
Мертвый ресурс получается. Т.к.:
  1. 7 лет нет ответа на, казалось бы, несложный вопрос.
  2. Автор поста, судя по всему, забил на вопрос и стал дальнобойщиком.
  3. Сообщество пишет что-то невнятное в комментариях.
это ли ни *опа, товарищи? Закрывайте этот позор. Или киньте в меня решением вопроса! Сделайте что-нибудь уже!?
Илья Павлов
21 июня 2024, 23:15
0
Сложно спорить с тем, что дальнобойщик не может интересоваться разработкой на ModX.
R2m0x94 (Vasily)
21 июня 2024, 22:52
0
/* 
 * Просто неважно дальнобойщик он или нет,
 * главное найти тот или иной ингредиент, без того что было в памяти. С нами ты. Пацанам респект.
 */
Илья Павлов
21 июня 2024, 18:41
0
Есть ощущение, что какая-то недосказанность осталась, типа «7 лет прошло так то, я теперь дальнобойщик»?
Илья Павлов
21 июня 2024, 18:02
0
7 лет как одно мгновенье… ээх… согласен)

Я пока костыль придумал — сниппет, принимающий utm и выводящий его в навигационных ссылках (меню, списки документов).
Пытался сначала записывать UTM в куки, но он мгновенно удаляется (время жизни задавал как надо).
Т.к. текущее решение, как мне кажется, не совсем элегантно, гуглю тему.
R2m0x94 (Vasily)
20 июня 2024, 23:41
0
Решается добавлением 'loadModels' => 'cityfields',
R2m0x94 (Vasily)
20 июня 2024, 23:34
0
Да идут пару ошибок:
[2024-06-20 23:32:54] (ERROR @ /core/xpdo/xpdo.class.php : 644) /assets/components/msearch2/action.php
[2024-06-20 23:32:54] (ERROR @ /core/xpdo/xpdo.class.php : 645) Could not load class: cfField from mysql.cffield.
pdofetch.class.php: 188) [pdoTools] SELECT SQL_CALC_FOUND_ROWS
pdofetch.class.php: 189) [pdoTools] Error 42S22: Unknown column 'cfFieldPrices.value' in 'field list'
R2m0x94 (Vasily)
20 июня 2024, 23:29
2
+1
Пока нет, но будут новости — сообщу! Спасибо за рабочий пример)
{'!mFilter2' | snippet  : [
    'leftJoin' => '{
        "cfFieldPrices" : {
            "class" : "cfField",
            "alias" : "cfFieldPrices",
            "on" : "cfFieldPrices.city_id = ' ~ $_modx->getPlaceholder('current_city.id') ~ ' AND cfFieldPrices.placeholder = CONCAT(\'[pre]\', msProduct.id, \'_price[/pre]\')"
        }
    }',
    'select' => '{ "msProduct" : "*", "cfFieldPrices" : "cfFieldPrices.value AS cfprice" }'
]}
Артур Шевченко
19 июня 2024, 18:29
0
Я вижу только одну причину, JS от AjaxForm не подключены
Артур Шевченко
19 июня 2024, 18:28
0
Это код для компонента AjaxFormItLogin
Сергей Карпович
19 июня 2024, 16:29
0
У меня так работает

document.addEventListener('afl_complete', e => {
    if (e.detail.response.success) {
        тут что надо делать 
    }
});
Сергей Карпович
19 июня 2024, 13:36
0
Можно ее же использовать для комплекса
Артур Шевченко
19 июня 2024, 12:45
0
Поиск нет смысла пилить. Если делать в рамках Modx, то ничего лучше phpMorphy не появилось, а эту библиотеку использует mSearch2, вряд ли я сделаю лучше. А если использовать ElasticSearch, то это уже решение не для всех, а только для тех у кого VPS.
Сергей Карпович
19 июня 2024, 12:27
0
Вопрос возник, а как правильно подключить разные счетчики метрики для разных контекстов?
Первое что пришло на ум, это создать настройку в контексте — номер счетчика, и подставлять его в коде метрики.