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

Артур Шевченко
23 июня 2022, 21:41
+3
Может стоит начать с показа кода? Глядишь, и бесплатно помогут.
Артур Шевченко
23 июня 2022, 21:37
+1
Включи сохранение ошибок для pdoTools в системных настройках, там в описании будет путь куда пишутся логи, вот там и ищи эти названия.
Николай Савин
23 июня 2022, 20:12
+1
$response = $modx->runProcessor('security/login', $data);
        if ($response->isError()) {
            $modx->log(modX::LOG_LEVEL_ERROR, print_r($response->response, 1));
        } else {
            //User отдельно необходим потому-что процессор не возвращает юзера и не присваивает его автоматом объекту $modx->user
            //В данном случае нет смысла дополнительно проверять права, потому что процессор уже все проверки провел.
            $user = $modx->getObject('modUser', array('username' => $username));
            if ($user) {
                $modx->user = $user;
                $modx->initialize('mgr');
            }
        }
Николай Савин
23 июня 2022, 20:08
0
Володя не заходил сюда уже почти год. Вряд ли он вам ответит.
Константин Ильин
23 июня 2022, 17:44
0
Подскажите пожалуйста, столкнулся примерно с такой же проблемой.
<?php
define('MODX_API_MODE', true);
require_once $_SERVER['DOCUMENT_ROOT'].'/index.php';

$resp = $modx->runProcessor('/security/login', array(
    'username' => 'admin',
    'password' => '123123',
    'rememberme' => true,
    'login_context' => 'mgr',
));
Пробовал session_abort или session_destroy, но мне кажется тут не все так просто из-за метода подключения API.

Как правильно залогиниться под админом, например в login.php с «примерно» вышеуказанным кодом?
igor
23 июня 2022, 17:13
0
Володя! подскажите плиз — как настраивается страница куда осуществляется переход после успешной оплаты
в настройках не нашел
сейчас с тестовыми ключами после оплаты выдается страница 404
alex.shabun
23 июня 2022, 14:20
0
Приветствую.
Кто юзал этот компонент, подскажите есть возможность использовать из коробки разные alias-ы, для разных языковых версий? Чтобы url отличались не только префиксом ru/ua, а была транслитерация с родного языка
Дмитрий Танцирев
23 июня 2022, 13:48
0
Спасибо за наводку!
Сейчас столкнулся точно с такой же проблемой.
Ваш пример увы не помог =(
В console.log(this.menu.record) — всё равно приходит единица текстом, а не числом (даже после изменения class.map.inc.php).

В чём проблема — так и не разобрался, но разобрался как это пофиксить.

{
    xtype: 'xcheckbox',
    fieldLabel: 'Чекбокс',
    name: 'isuser',
    submitOnValue: "1",
}
Основная строчка: submitOnValue: «1»,
Это решает проблему.
Elena
23 июня 2022, 13:26
0
Но в списке адаптированных дополнений всё еще не значится как адаптированное для 3.0.0
sitedash.app/extras

У кого-нибудь заработала?

У меня устанавливается, выводит превьюшки, но не открывает большие фото.

Я еще не разобралась — возможно, «из коробки» это и не должно работать, и надо подключать и настраивать какой-нибудь lightbox вручную и прописать его в чанки галереи.
Elena
23 июня 2022, 13:20
0
Версия Gallery от 11 июня 2022 сообщает:

Changelog for Gallery.

Gallery 2.0.0
====================================
— Fixed to work with MODX 3
Vladimir
23 июня 2022, 12:45
0
Вывод вообще для всех
<?php
if(empty($price)){
    return '';
}

$pdoFetch = $modx->getService('pdoFetch');
$group = $pdoFetch->getObject('msdUserGroup', array(), array(
    'loadModels' => 'msdiscount',
    'leftJoin' => array(
        'modUserGroupMember' => array('class' => 'modUserGroupMember', 'on' => 'modUserGroupMember.user_group = msdUserGroup.id')
    ),
    '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 '';
Vladimir
23 июня 2022, 12:34
0
Как вывести скидку для всех тоже хз
Vladimir
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 '';
Vladimir
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);