Maks

Maks

С нами с 04 октября 2022; Место в рейтинге пользователей: #10533
Maks
02 мая 2024, 10:27
0
<?php
$id = $modx->getOption('id', $scriptProperties, $modx->resource->id);
$field = $modx->getOption('field', $scriptProperties);
$tpl = $modx->getOption('tpl', $scriptProperties, 'msTimeStampTpl');
if ($modx->getObject('msProduct', $id )->get($field) == null) {
    return false;  
}

$tablePrefix = $modx->getOption('table_prefix');
$table = $tablePrefix.'mstimestamp_product';
$sql = "SELECT * FROM $table WHERE product_id = $id AND field = '$field'";
$statement = $modx->query($sql);
$date = $statement->fetch(PDO::FETCH_ASSOC);
if(!empty($date)){
    $validUntil = (int)$date['valid_until']; // Преобразуем строку в число

    $currentDate = time();

    if ($validUntil < $currentDate) {
        return false; // Акция уже завершена
    }

    $secondsLeft = $validUntil - $currentDate;

    $daysLeft = floor($secondsLeft / (60 * 60 * 24));

    $hoursLeft = floor(($secondsLeft % (60 * 60 * 24)) / (60 * 60));

    $minutesLeft = floor(($secondsLeft % (60 * 60)) / 60);

    $secondsLeft = $secondsLeft % 60;

    return $modx->getChunk($tpl, [
        'field' => $field,
        'date' => date('d.m.y', $validUntil),
        'daysLeft' => $daysLeft,
        'hoursLeft' => $hoursLeft,
        'minutesLeft' => $minutesLeft,
        'secondsLeft' => $secondsLeft
    ]);
}
return false;

?>
Вот так сделал

Чанк
<p>
Акция действует до: [[+date]] </p>
<p>Осталось [[+daysLeft]] дней [[+hoursLeft]] часов [[+minutesLeft]] минут</p>
На выходе получаем

Акция действует до: 10.05.24
Осталось 7 дней 16 часов 35 минут
Maks
02 мая 2024, 07:45
0
Что то не хочет выводить сколько осталось до конца акции. Выводит только Успейте сегодня!
Maks
15 апреля 2024, 19:09
0
modhost
modx 3
php8.1

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

Так и висит уже полчаса.
Maks
11 марта 2024, 08:09
0
Подскажите пожалуйста а как вывести в чанке статьи категории к которым эта статья привязана?
Maks
19 февраля 2024, 09:41
0
Куда писать сообщения в профиле отключены.
Maks
17 февраля 2024, 09:19
0
Сделал все по инструкции ничего не получилось.
В итоге выводит вот так


<img src="�" alt="�" width="50" height="50" style="opacity: 1;" title="�">
И вот такое в коде.
Maks
31 января 2024, 16:20
0
А если на странице два окна как их после успешно отправки закрыть?
const exampleModal = new bootstrap.Modal(document.getElementById('exampleModalCall'));
  document.addEventListener('si:send:success', () => {
    exampleModal.hide();
  });
Сделал вот так одно окно закрывается после отправки.

Делаю еще для второго окна

const exampleModal = new bootstrap.Modal(document.getElementById('exampleModal'));
  document.addEventListener('si:send:success', () => {
    exampleModal.hide();
  });
Но так не срабатывает.
Maks
04 ноября 2023, 06:32
0
Спасибо все заработало.
Maks
03 ноября 2023, 14:19
0
Спасибо за поммощь.
Maks
24 сентября 2023, 14:48
0
Большое человеческое спасибо.
Maks
06 сентября 2023, 21:13
0
Очень жаль что так и не получилось завести. Реально снижает нагрузку на сайт.
Maks
06 сентября 2023, 20:54
0
position: «topCenter»
вот это надо поменять
Maks
06 сентября 2023, 20:53
0
Там настройки для этого есть насколько я понял.

export default function returnConfigs() {
  return {
    Notify: {
      pathToScripts: './modules/notify.js',
      jsPath: 'assets/components/sendit/web/js/lib/izitoast/iziToast.min.js',
      cssPath: 'assets/components/sendit/web/css/lib/izitoast/iziToast.min.css',
      handlerClassName: 'iziToast',
      toastSelector: '.iziToast',
      typeSelectors: {
        success: '.iziToast-color-green',
        info: '.iziToast-color-blue',
        error: '.iziToast-color-red',
        warning: '.iziToast-color-yellow',
      },
      titleSelector: '.iziToast-title',
      handlerOptions: {
        timeout: 2500,
        position: "topCenter"
      }
    },
  }
}
Maks
06 сентября 2023, 20:34
0
Сообщения показывает об ошибке только если указан default
'validate' => 'phone:required,name:required,email:email:required,politics:checkbox:required',

Если же сам задаешь поля для валидации то сообщения нет.
Maks
06 сентября 2023, 20:32
0
в консоли
Object { "X-SIFORM": "oneStepFormru", "X-SIACTION": "send", "X-SIPRESET": "onestepformru", "X-SITOKEN": "75fc54dbfa9bae07784886b6ce8038ae" }
sending.js:91:17
Maks
06 сентября 2023, 19:06
0
Так и не запустил формы

Пресет
'onestepform' => [
'extends' => 'default',
'hooks' => 'FormItSaveForm,email,sendMessageTelegram',
'redirectTo' => 0,
'redirectTimeout' => 3000,
'clearFieldsOnSuccess' => 1,
'fieldNames' => 'name==Имя',
'successMessage' => 'Ваш запрос успешно отправлен! На протяжинии 30 минут вам перевзонит наш менеджер!',
],

Если в настройках default
'default' => [
'validate' => 'phone:required,name:required,email:email:required,politics:checkbox:required',
],

оставить все поля а мне надо только 2 поля проверять то форма не отправляется пишет Это поле обязательно.
Если же в настройках default
'default' => [
'validate' => 'phone:required,name:required',
],
оставить только нужные мне поля то сообщения об ошибке нет вообще.

Еще одно hooks sendMessageTelegram если раньше он на любом сниппете работал на fetchit на ajaxformlogin отправлял уведомления без проблем то сейчас не работает.
Maks
06 сентября 2023, 14:54
0
И еще одно. После установки подгружает шрифт на сайт с вашего файла css который идет с дополнением. Отключить его можно?