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

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

Maks
Maks
modhost
modx 3
php8.1

Попробовал установить последнюю версию зависло
Консоль запущена…
Пробуем установить пакет с подписью: mmxforms-1.0.2-pl
Пакет найден… сейчас идёт подготовка к его установке.
Загрузка рабочего пространства пакета…
Рабочее пространство загружено, сейчас устанавливаем пакет…

Так и висит уже полчаса.
Наумов Алексей
Наумов Алексей
Да, в свои js скрипты добавить данный код, внутри функции разместить код от яндекс.метрики. Ну а для отслеживания конкретной формы нужно выяснить, к примеру, её id, который должен присутствовать где-то в response. Я предпочитаю к форме добавлять data атрибут, наподобие:
<form data-goal="feedback">
Наумов Алексей
Наумов Алексей
Пожалуй отвечу:
добавить обработчик на событие «fetchit:success»
docs.modx.pro/components/fetchit/frontend/events

document.addEventListener('fetchit:success', (e) => {
    const { response } = e.detail;

    // Посмотреть данные response
    // console.log(response);
})
Nikolay
Nikolay
Добрый день, на текущий момент плагин передает в лк ID товара вместо артикула товара. Как это возможно исправить?

Также не передается размер упаковки, который заполнен в товаре, а всем товарам присваивается размер 40х40х40 в лк cdek.
Нужна Ваша помощь по этим двум вопросам, спасибо.
Сергей Лим
Сергей Лим
Код выше уже устаревший и не сработает на новых версиях modx. Ниже рабочий код для 2.8.4

<?php
/**
 * Created by PhpStorm.
 * User: admin
 * Date: 25.06.2019
 * Time: 14:19
 */


require_once '/ТУТ ПУТЬ К ФАЙЛУ ПИШЕМ/public_html/config.core.php';
require_once MODX_CORE_PATH.'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService('error','error.modError', '', '');

$modx->getService('error', 'error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_FATAL);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');

$msg = "";

$table_prefix = $modx->config['table_prefix'];

//Ищем двойников
$find_query = $modx->query("SELECT group_concat(`id`) ids, count(id) c FROM `" . $table_prefix . "site_content` GROUP by concat(uri) HAVING c > 1");

$dubles = $find_query->fetchAll(PDO::FETCH_ASSOC);
//Если нашли
if (count($dubles)) {
    foreach ($dubles as $item) {
        //Разбивем ID
        $ids = explode(",", $item['ids']);
        //Сортируем - старые вверх
        sort($ids, SORT_NUMERIC);

        $count = 0;

        foreach ($ids as $doc_id) {
            $count++;
            //ПРопускаем оригинал
            if ($count > 1) {

                //Обновляем ресурс
                $originalRes = $modx->getObject('modResource', $doc_id);
                $generated = $originalRes->cleanAlias($originalRes->get('pagetitle')) . "-" . $count;
                $originalRes->set('alias', $generated);
                $originalRes->save();
                //В лог
                $msg .= $originalRes->get('id') . " | " . $originalRes->get('pagetitle') . " - обновлен.\n";
            }

        }
        //Сброрс кеша
        $modx->cacheManager->refresh();
    }

} else {
    $msg .= "Дублей нет\n";
}

echo "<pre>" . $msg;
Дима Касаткин
Дима Касаткин
Без данных, что я запросил выше, не могу повторить твой кейс, а хочется же разобраться.

То что ты руками указал, и сработало, это вроде как хорошо, но решить системно было бы ещё лучше!

В свежей версии MODX были правки в указанной части дефолтного конфига, и хотелось бы понять, есть ли недочёт в новой версии, или просто у тебя сайт со времён HTTP не был перенастроен на HTTPS и действуют какие то старые настройки. В любом случае я хотел бы подтвердить, что именно обновление приводит к смене протокола в url, а не что-то другое.

Я уже несколько десятков сайтов обновил и нигде такое не всплыло, вот в чем дело. Но ещё больше предстоит обновить и лучше бы я знал, если проблема и правда есть ;-)

Кстати, добавлю к списку вопросов выше ещё:
— не установлен ли у тебя тег в вёрстке? Если да, в каком значении?
vrm13
vrm13
Скорее всего нужно поправить строчку в core/config/config.inc.php
там должно быть:
if (!defined('MODX_URL_SCHEME')) { $url_scheme= 'https://'; define('MODX_URL_SCHEME', $url_scheme); }
Всегда переписываю после обновления, это от хостинга зависит если не ошибаюсь, у меня, например, sweb и там это нужно делать.
Диман
Диман
Никогда не вносил изменения в настройках, протокол https вставал автоматом до последнего обновления четко, проблем не было, пришлось в настройках контекста, руками добавить site_url и указать полный адрес
Дима Касаткин
Дима Касаткин
Привет! У меня нет возможности проверить по http (без https) но вот сейчас проверил на паре сайтов из тех, что обновил — всё выводится как надо, значение настройки содержит https:// в начале.
Чтобы помочь тебе, дай больше инфы:
1. Проверь в системных настройках и в настройках контекста, может у тебя руками указано значение где-то?
2. По какому протоколу открываешь сайт, когда настройка выдаёт неверное значение? Например по https. А если по http открыть (без редиректа на https) — как себя поведет настройка?
3. Какой протокол указан в настройке [[++server_protocol]]?
Наумов Алексей
Наумов Алексей
Как бы я поступил:

создал компонент (на базе modExtra), чтобы быстро, где будет по сути 1 объект Услуга (header, alias, description, seo_title/seo_description, а также полем parent_id для вложенности).
Свой интерфейс для управления ими будет поудобнее, чем MIGX. Чуть подумать, чтобы интерфейс выглядел симпатично и понятно (больше всего вопросов по отображению услуга/подуслуга).

Да, можно конечно поставить fastRoute или VirtualPages, но т.к. уровень вложенности не большой, то в целом все решается не самым сложным плагином на OnPageNotFound.
Чуть сложнее, если нужно ряд услуг скрыть для определенных моделей авто…

Кстати, VirtualPages у меня трудится на одном проекте уже много лет стабильно:)