Всего 125 377 комментариев

Андрей Шевяков
13 января 2025, 11:42
0
Мы планируем выпустить компонент MODX Стоимостью 100-150т.р.
А если не секрет, что за дополнение такое планируется, за такую стоимость? Очень заинтриговали))
Олег Захаров
13 января 2025, 09:38
0
обе ссылки битые, можно ссылку актуальную скинуть?
Александр Туниеков
13 января 2025, 06:11
0
Я MODX на винде юзаю по большей части. Просто не знаю как бинарники в Ubuntu называются. В общем можно скомпилировать исходники и через shell_exec в php вызавать. Хотя конечно изврат.
Александр Туниеков
13 января 2025, 06:03
0
Человек бы попытася что-то определенное сказать. Либо можно либо нельзя. А chatGPT выразился в общем. Четкого ответа что компоненты для MODX можно шифровать нет. Человек понимает, что компоненты MODX не включают в себя код MODX. Код MODX компонентом никак не модифицируется. А chatGPT этого не понимает.
Хотя плагин на события модифицирует поведение MODX, но в себе кода MODX так то не содержит. Только API вызывает.
Алексей
12 января 2025, 15:10
+1
код можно сделать проще и логичней, набросал как пример
Алексей
12 января 2025, 13:46
+2
Подключи к сайту PHP FFmpeg, думаю в хостинге тебе установят или уже установлен и плюсом сможешь сжимать файлы, простой пример:

{'!getWithFFmpeg' | snippet: [
'file' => ''" // Укажи путь к видеофайлу
]}
как пример сделать через shell
<?php
function getWithFFmpeg($videoPath) {
    $command = "ffmpeg -i " . escapeshellarg($videoPath) . " 2>&1 | grep Duration | cut -d ' ' -f 4 | sed s/,//";
    $duration = shell_exec($command);
    if ($duration) {
         list($hours, $minutes, $seconds) = explode(':', $duration);
           return ($hours * 3600) + ($minutes * 60) + $seconds;
      }
    return false;
}

$duration = getWithFFmpeg($file);

if ($duration !== false) {
    echo "Длительность видео: " . $duration . " секунд";
} else {
    echo "Не удалось получить длительность видео";
}
?>
на выходе будет например: Длительность видео: 5 секунд.
или можно скачать библиотеку, закинуть в папку сайта сам getID3 и написать функцию
Владимир
12 января 2025, 12:53
0
У меня ссылка в FormItAutoResponder передается, а в emailTo нет((
В tpl одинаковые записи
<p><a href="[[+pdf_link]]">Ссылка на PDF</a></p>
Prihod
11 января 2025, 19:51
0
Похоже на то что у тебя сам Docker не запущен. У тебя Docker Desktop? Если да, то перед
docker-compose up -d
запусти Docker Desktop.
Дмитрий
11 января 2025, 13:10
0
Здравствуйте, а есть ли возможность менять и старую цену? Попробовал так
<?php
switch ($modx->event->name) {
    case "msOnGetProductPrice":
        $returned = (array)$modx->getPlaceholder('_returned_price');
        if (!isset($returned['price'])) {
            return;
        }

        $id = $returned['id'];
        $price = $returned['price'];
        $oldPrice = !empty($returned['old_price']) ? $returned['old_price'] : $price; // Предположим, старую цену берём из текущей цены
        $options = !empty($returned['msoptionsprice_options'])
            ? $returned['msoptionsprice_options']
            : (!empty($_REQUEST['options'])
                ? $_REQUEST['options']
                : array());
        $options = array_diff_key($options, array_flip(array('modifications', 'modification')));

        foreach (array_keys($options) as $k) {
            if (!empty($options[$k]) && is_array($options[$k])) {
                foreach ($options[$k] as $v) {
                    // Изменение для текущей цены
                    $q = $modx->newQuery('msopModification')
                        ->innerJoin('msopModificationOption', 'Option',
                            "Option.mid = msopModification.id AND Option.key = '{$k}' AND Option.value = '{$v}'")
                        ->select(array('price', 'old_price')) // Добавляем выборку old_price
                        ->where(array(
                            'msopModification.rid' => $id,
                            'msopModification.type' => 2,
                            'msopModification.active' => true,
                        ));
                    if ($q->prepare() && $q->stmt->execute()) {
                        while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
                            if (!empty($row['price'])) {
                                $price += $row['price'];
                            }
                            if (!empty($row['old_price'])) {
                                $oldPrice += $row['old_price']; // Добавляем старую цену
                            }
                        }
                    }
                }
            }
        }

        // Возвращаем и сохраняем значения
        $modx->event->returnedValues['price'] = $returned['price'] = $price;
        $modx->event->returnedValues['old_price'] = $returned['old_price'] = $oldPrice;
        $modx->setPlaceholder('_returned_price', $returned);
        break;
}
не сработало(
Николай Савин
11 января 2025, 11:35
0
Да. Но это грамотный ответ мнение, с которым я согласен
nikola
11 января 2025, 10:19
0
Спасибо вам, уже добрые люди помогли реализовать, вопрос закрыт
Maks
11 января 2025, 07:06
0
docker-compose up -d
error during connect: Get "http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine/v1.46/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.config-hash%22%3Atrue%2C%22com.docker.compose.project%3Ddevilbox%22%3Atrue%7D%7D": open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified.
Вот такую ошибку получил при выполнении команды
docker-compose up -d
Александр Туниеков
11 января 2025, 04:36
0
ЭЭЭ… что-то ответ похож на chatGPT. Вы из него скопировали?
Serg
11 января 2025, 00:34
0
Посмотрите craftum.com в рекламе у них есть возможность продавать файлы.
nikola
10 января 2025, 22:22
0
Спасибо, сам да, не разбираюсь
Артур Шевченко
10 января 2025, 20:36
0
Нет, феном не выключает стандартный парсер.
Если включить феном, как требует модуль, обычные сниппеты не отвалятся?
Старый не понятный модуль. Как с пользователями работает не понятно. Придется свое писать, но спасибо за наводку. Кто за сколько возьмется?