Всего 125 972 комментария

Vladimir
14 февраля 2022, 14:28
0
простейший if а не работает, куда либо в другой язык засунь оно работает, а тут
R2m0x94 (Vasily)
14 февраля 2022, 14:04
0
Возможно я что-то упустил или в видео этого нет, но попробую обуздать в примерах понимании об addPackage, loadClass и getService и подключении сторонних таблиц, хотя так-то из консоли кастомный класс работает, добавляет объект и получает объект и коллекцию, что на обычной версии, что на про версии.
vectorserver
14 февраля 2022, 13:57
1
0
Я бы сделал прослушку на nodejs, и повесил бы к примеру на node.localhost:3000 и потом через плагин отправлял бы данные.

<?php

$eventName = $modx->event->name;
switch($eventName) {
    case 'OnWebLogin':
        
        // хук на вход http://node.localhost:3000/?userID=1&login=1
        break;
    case 'OnWebLogout':

        // хук на выход http://node.localhost:3000/?userID=1&logout=1
        break;
}

NodeJS
const http = require("http");
 
http.createServer(function(request, response){
     
    console.log("Url: " + request.url);
    console.log("Тип запроса: " + request.method);
    console.log("User-Agent: " + request.headers["user-agent"]);
    console.log("Все заголовки");
    console.log(request.headers);
     
    response.end();
}).listen('node.localhost',3000);
R2m0x94 (Vasily)
14 февраля 2022, 13:13
0
Попробовал на тестовом сделать, как у Вас на видео. Делал всё по видео инструкции, но валятся ошибки
[2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 1321) Could not get table class for class: PromoCupons
[2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 1290) Could not get table name for class: PromoCupons
[2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 1321) Could not get table class for class: PromoCupons
[2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 1290) Could not get table name for class: PromoCupons
[2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 762) PromoCupons::getSelectColumns() is not a valid static method.
[2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/xpdo/xpdo.class.php : 762) PromoCupons::loadCollection() is not a valid static method.
[2022-02-11 16:27:38] (ERROR @ /home/s28944/www/core/model/modx/modprocessor.class.php : 525) PHP warning: Invalid argument supplied for foreach()
В консоле ругань или на manager/assets/ext3/ext-all.js или на assets/components/promocupons/connector.php при добавлении в бд из меню Promo Cupons.

Не знаю в чем дело, не получилось и да в бд добавлял запись проверить отображение в админке — тоже не вышло.
vectorserver
14 февраля 2022, 12:37
1
0
Я использовал в свое время, для синхронизации товаров, точно не помню, вот накидал на коленке.
Работает :)

Пример:
<?php
//Файл дампа времменый
$dump = __DIR__ . "/test_.sql";

//Экспорт из бд №1 таблицы modx_users, modx_user_group_roles
$export_db = exportDatabase('localhost', 'root', '', 'modx', array('modx_users', 'modx_user_group_roles'), $dump);

//Импорт в бд №2
$import_db = importDatabase('localhost', 'root', '', 'remote_modx', $dump);

function importDatabase($host, $user, $password, $database, $backupFilePath)
{

    $password = ($password) ? "-p$password" : "";
    $cmd = "mysql -u {$user} {$password} {$database} < $backupFilePath";
    return exec($cmd) === 0;
}

function exportDatabase($host, $user, $password, $database, $tables, $targetFilePath)
{

    $cmd = "mysqldump --host {$host} --user {$user} ";
    if ($password) {
        $cmd .= " --password {$password} ";
    }
    $cmd .= " {$database} ";

    if ($tables) {
        $cmd .= implode(" ", $tables);
    }

    $cmd .= " > {$targetFilePath}";

    return exec($cmd) === 0;
}
Алексей Смирнов
14 февраля 2022, 11:42
0
А прикрепление файла — можно только 1 шт? или можно несколько? Как вообще это дело настраивается? Если есть мурзилка с подробным описанием — покажите где ее найти.
разрешить permission — comment_file_upload
Это конечно чудесно. только куда прописывать? для контекста, ресурсов, медиаисточника?
Если нужно проспонсировать создание подробного описания — огласите прайс.
Дмитрий
14 февраля 2022, 00:32
0
А как вывести редактор кода?
Alexey
13 февраля 2022, 10:59
0
Не совсем понимаю, что ожидается там увидеть? По правильному, нужно вначале создать группу пользователей, наделить эту группу нужными правами, а потом уже добавить пользователя а эту группу. Не зря же на скрине есть кнопка «Добавить пользователя в группу».
Сергей Шлоков
13 февраля 2022, 09:48
+1
Если внимательно прочитать, то так и написано. Просто не совсем корректно.

getService() загружает файл класса (вызывая loadClass()), но также добавляет класс к объекту $modx, вы cможете вызывать его методы с помощью $modx->className->methodName().
Правильнее было бы сказать, что к объекту $modx добавляется не класс, а экземпляр указанного класса. Он же возвращается методом getService().

Соответственно получить доступ к этому экземпляру можно не через $modx->className, а через $modx->aliasName. Ниже в статье именно так и будет указано. Получается небольшое разночтение. Т.е. псевдоним вы можете указать любой (первый параметр), а вот класс (второй параметр) должен быть точным.
mekirile
12 февраля 2022, 13:42
0
baseSync перестал авторизовываться. Друзья, кто может помочь разобраться?
Максим
11 февраля 2022, 12:42
0
Шрифт «MODX» в статье — это шрифт из «Черепашек ниндзя»? )))
Pakos Fakos
11 февраля 2022, 11:17
0
спасибо за вашу помощь, это работает идеально
Максим
11 февраля 2022, 11:04
0
Мы делаем что-то хорошее и стараемся делать это что-то хорошо
В своём понимании этого «хорошего». Оно может отличаться у людей.

И для проведения работ по смене версии MODx с 2 на 3, должны быть очень значительные причины, в первую очередь для бизнеса.
Если рассуждать именно так, то никакого смысла конечно же нет! Так же как менять modx2 на какой-нибудь Laravel. Какой смысл? И так всё работает!
У нас некоторые клиенты до сих пор работают на Evo!
Главная причина «зачем» — это появление новых возможностей в «старых» компонентах. Чем больше потребности в таких новых возможностей, тем больше вероятность перехода на 3-ю версию.

потому что большинству моих клиентов...MODx 3 по сути и не нужен
Большинству? Т.е. есть меньшинство, кому нужно?)))
Для большинства моих клиентов не нужен React или Vue. И? )))) Не нужен — не используй))) В чем проблема то?)))
Для клиентов, как мне кажется, вообще пофиг MODX или WP, ему главное чтоб всё работало как надо!
MODX 3 — это по сути инструмент для разработчиков. Для кого-то одни плюсы, для кого-то другие.

не могу пока что найти серьезных причин в необходимости развития системы
Для тебя их нет, ок. Для других есть, потому что " врятли мы все такие садимся за комп и говорим, «а ну ка сделаю ка я сейчас дерьмо»"
Максим
11 февраля 2022, 09:04
0
Если вы просто хотите создать экземпляр некоторого класса… используйте loadClass()
Почему-то всегда думал, что loadClass просто подключает класс, а getService как раз создаёт экземпляр.
Lori
10 февраля 2022, 19:05
0
решилось, оказывается кастомный msOrderHandler был написан. Со стандартным все работает нормально
Николай Савин
10 февраля 2022, 18:52
0
Не рекомендую писать одно и то же в разных темах. Это чревато санкциями.
Семён Кудрявцев
10 февраля 2022, 16:58
0
Новый функционал — круть, очень полезно и удобно. А вот по поводу исправления багов и ошибок в чейнджлоге — одна ошибка всё так и осталась, и по-моему живет ещё с самой первой версии. Когда открываешь интерфейс товаров или ресурсов, в консоль сразу падает.
Алексей Смирнов
10 февраля 2022, 16:30
0
Я вам уже в соседней теме написал настройте нормально пакет и все заработает:
docs.modx.pro/komponentyi/tickets
проверьте все ли верно.
В прямую если без шуток говорить поставил и работает — нет. нужно настроить сначала.