Всего 115 816 комментариев

Viktor
23 июня 2022, 12:34
0
Как вывести скидку для всех тоже хз
Viktor
23 июня 2022, 12:06
0
Пока нет ответа со встроенным решением, сделал такой сниппет
[[!getProductDiscountPrice? &price=`[[*price]]`]]
.
<?php
// Если не указан &uid=``, то выбираем для текущего юзера
if(empty($price)){
    return '';
}

if (empty($uid)) {$uid = $modx->user->id;}

$pdoFetch = $modx->getService('pdoFetch');
$group = $pdoFetch->getObject('msdUserGroup', array('modUser.id' => $uid), array(
    'loadModels' => 'msdiscount',
    'leftJoin' => array(
        'modUserGroupMember' => array('class' => 'modUserGroupMember', 'on' => 'modUserGroupMember.user_group = msdUserGroup.id'),
        'modUser' => array('class' => 'modUser', 'on' => 'modUser.id = modUserGroupMember.member AND modUser.id = '.$uid),
    ),
    'groupby' => 'msdUserGroup.id',
    'sortby' => 'CAST(`msdUserGroup`.`discount` AS DECIMAL(13,3))',
    'sortdir' => 'desc',
    'select' => 'discount',
));



if (isset($group['discount'])) {
    
    return (((int)$price * (100 - (int)$group['discount'] )/100));
}

return '';
Viktor
23 июня 2022, 11:58
0
Такой очевидный вопрос, но в доках нет решения
Константин Ильин
23 июня 2022, 10:16
0
Повышаем популярность)

есть еще замечательный готовый компонент DateAgo

вызов на феноме
{'dateAgo' | snippet : ['input' => strtotime('+1 day'), 'dateFormat' => 'F Y']}
Игорь
22 июня 2022, 21:02
0
Всем большое спасибо за помощь, получилось сразу 2-3 варианта ))
vectorserver
22 июня 2022, 20:53
+1
Тогда только так
<?php
function ruDate($format, $date = false) {
    setlocale(LC_ALL, 'ru_RU.cp1251');
    if ($date === false) {
        $date = time();
    }
    if ($format === '') {
        $format = '%e %bg %Y г.';
    }
    $months = explode("|", '|января|февраля|марта|апреля|мая|июня|июля|августа|сентября|октября|ноября|декабря');
    $format = preg_replace(/** @lang text */ "~\%bg~", $months[date('n', $date)], $format);
    $res = strftime($format, $date);
    return $res;
}

echo ruDate('%e %bg %Y г.', strtotime('+1 day'));
Выведет:
23 июня 2022 г.
Игорь
22 июня 2022, 20:48
0
четко) но склонять все равно надо (июня). а в систему если лезть, менять в языках, но круто 3 строчки кода всего

до Четверг 23 Июнь 2022!
vectorserver
22 июня 2022, 20:46
1
+1
<?php
setlocale(LC_ALL, 'ru_RU.utf8');
$offset = strtotime('+1 day');
echo strftime("%A %e %B %Y", $offset);
Константин Ильин
22 июня 2022, 19:33
+1
Вообще разницу не видите или не хотите?
Игорь
22 июня 2022, 19:25
-1
а вот это не тоже самое?

<?php

$arr = array(
    '01' => 'января',
    '02' => 'февраля',
    '03' => 'марта',
    '04' => 'апреля',
    '05' => 'мая',
    '06' => 'июня',
    '07' => 'июля',
    '08' => 'августа',
    '09' => 'сентября',
    '10' => 'октября',
    '11' => 'ноября',
    '12' => 'декабря'
);

 
$month = date('m');
$month = $arr[$month];

return date('d', strtotime('+1 day')). " $month";
Константин Ильин
22 июня 2022, 19:19
0
Ну естественно неверно, date() от завтрашней даты должно работать.
<?
return date('d',$nextDay). " $month";
<?
$nextDay = strtotime("+1 day");
$arr = array(
    '01' => 'января',
    '02' => 'февраля',
    '03' => 'марта',
    '04' => 'апреля',
    '05' => 'мая',
    '06' => 'июня',
    '07' => 'июля',
    '08' => 'августа',
    '09' => 'сентября',
    '10' => 'октября',
    '11' => 'ноября',
    '12' => 'декабря'
);
 $month = date('m',$nextDay);
 $month = $arr[$month];
 return date('d',$nextDay).' '.$month;
Игорь
22 июня 2022, 19:17
0
во!!! вот так кажется то, что надо, только выводит 01, 02… если июль будет. ну ладно… конечно лучше без нулей в начале

$nextDay = date('d', strtotime('+3 day'));
 $nextMonth = date('m', strtotime('+3 day'));
 $arr = array(
    '01' => 'января',
    '02' => 'февраля',
    '03' => 'марта',
    '04' => 'апреля',
    '05' => 'мая',
    '06' => 'июня',
    '07' => 'июля',
    '08' => 'августа',
    '09' => 'сентября',
    '10' => 'октября',
    '11' => 'ноября',
    '12' => 'декабря'
);

$month = $nextMonth;
$month = $arr[$month];
return $nextDay .' '. $month;
Игорь
22 июня 2022, 18:53
0
ну че-то пытаюсь, вроде опять не то

$nextDay = strtotime("+1 day");
 
 $arr = array(
    '01' => 'января',
    '02' => 'февраля',
    '03' => 'марта',
    '04' => 'апреля',
    '05' => 'мая',
    '06' => 'июня',
    '07' => 'июля',
    '08' => 'августа',
    '09' => 'сентября',
    '10' => 'октября',
    '11' => 'ноября',
    '12' => 'декабря'
);
 $month = date('m',$nextDay);
 $month = $arr[$month];
 return date('d'). " $month";
Игорь
22 июня 2022, 18:44
0
выводит 06.
а мне нужно было 23 июня. и 31 июня, но не 32 июня.
Ivan
22 июня 2022, 17:28
0
Я писал автору а не вам. Не туда кликнул. Извините. К вам вопросов не было никаких!
Андрей
22 июня 2022, 17:02
0
Почему-то в файле /assets/components/msfavorites/js/default.min.js присутствует ошибка:
Uncaught TypeError: Cannot read properties of null (reading 'content')
Вроде как он там пытается мета теги получить — в head они есть.
как тогда устранить проблему?
Игорь
22 июня 2022, 15:30
0
вот так сделал вывод месяца…
но, а если будет 32 июня…

<?php

$arr = array(
    '01' => 'Января',
    '02' => 'Февраля',
    '03' => 'Марта',
    '04' => 'Апреля',
    '05' => 'Мая',
    '06' => 'Июня',
    '07' => 'Июля',
    '08' => 'Августа',
    '09' => 'Сентября',
    '10' => 'Октября',
    '11' => 'Ноября',
    '12' => 'Декабря'
);

$month = date('m');
$month = $arr[$month];

return "$month";