Всего 124 051 комментарий

Arahort
04 декабря 2024, 01:24
+1
в phpStorm плагин Codeium для автодополнения, а так в браузере Gemini (https://aistudio.google.com/app/prompts/new_chat) он намного намного лучше chatgpt в плане Modx Revo и не только (использую свежие эксперементальные модели)
Александр Туниеков
03 декабря 2024, 23:11
0
Ну планируется что расчеты будут делать клиенты на сайте. А чтоб они не могли приписать себе любую цену товара считать цену надо на стороне сервера. Так что сам расчет на стороне сервера на php.
Дима Касаткин
03 декабря 2024, 19:20
0
Крутые обновления! Просто класс! Спасибо!

Хотел уточнить:
Scheduler… Для MiniShop3, я (что логично) планирую и дальше использовать эту систему, дополнив ее новым заданиями. Но как оказалось компонент не поддерживает MODX3 — а значит мне придется выпустить аналог.
Есть предложение поддерживать Fork, а не плодить компоненты!
У меня даже есть концепт, как отличать компоненты, у нас есть постфикс версии, как правило это -beta или -pl (и даже -pl2 и т.п.). Я анализировал код установщика и не нашел никаких опасных привязок к этим постфиксам.

А значит, мы можем использовать постфикс в стиле:
Scheduler 1.4.1-plScheduler 1.4.1-modx-pro, где modx-pro — github-логин автора форка. Довольно системно получается, и ничего не сломает. Можно использовать и в других компонентах аналогично!

После этого спокойно выпускать новые версии, не оглядываясь на оригинальный пакет. Раз уж там не понятно почему, не принимают PR-ы (вроде этого), из-за чего, полагаю @Николай Савин и не рассматриваешь изначально затащить туда поддержку MODX3 (хоть она и заявлена у оригинального автора).

Что скажете, коллеги?
Николай Савин
03 декабря 2024, 19:09
0
Расскажи ка мне друг мой, как ты при помощи события отменишь добавление в корзину или отправку заказа?
А как, при подписке на одно событие — ты прервешь выполнение других, если первое событие сигнализирует о прерывании действия. И еще пожалуйста дай знать, как работать в событиях с асинхронными запросами.

Я и сам думал обойдусь событиями. Но основательно взявшись за работу, понял что они нефига не справляются.
Евгений Webinmd
03 декабря 2024, 19:01
+1
xtype: modx-combo-user
Это xtype (тип поля) самого MODX, выводит всех пользователей modUser
Список всех возможных типов полей
Ivan
03 декабря 2024, 18:13
+1
Не знаю где написать хотелку. Напишу тут.
А можно сделать так, чтобы если товары в корзине с устаревшей ценой, то у них цена становилась актуальной?
А то приходится плагин свой делать для этого. А мне кажется это важно и логично для любого магазина…
Тут конечно могут быть сложности, когда используются всякие компоненты скидок и прочего. Но можно сделать галочку в админке — актуализировать цены если в корзине они старые.
Ivan
03 декабря 2024, 18:06
+1
А можете сказать какая из этих строк указывает на то, что должно находиться в выпадающем списке? Просто как-то не понятно откуда там берутся все эти пользователи)
Спасибо
Даниил
03 декабря 2024, 17:31
0
Пишет не валидный токен «Невалидный токен»
Полностью переустановил modx полностью переустановил sendit

Apache:
2.4.55
Панель управления Beget MySQL:
8-beget
Панель управления Beget Nginx:
1.21.1
Панель управления Beget Perl:
5.14.2
Панель управления Beget PHP:
8.3
Панель управления Beget Python:
2.7.3

Консоль
{«success»:false,«message»:"\u041d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d.",«data»:{«successMessage»:"\u0424\u043e\u0440\u043c\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430!",«hooks»:«FormItSaveForm,email»,«emailTpl»:«siDefaultEmail»,«emailFrom»:«noreply@complab59.ru»,«formName»:«SimpleForm»,«emailSubject»:"\u041f\u0438\u0441\u044c\u043c\u043e \u0441 \u0441\u0430\u0439\u0442\u0430 complab59.ru",«validate»:«email:email:required,name:required,politics:required»,«sendGoal»:«0»,«counterId»:""}}
{success: false, message: «Невалидный токен.»,…}
data
:
{successMessage: «Форма отправлена!», hooks: «FormItSaveForm,email», emailTpl: «siDefaultEmail»,…}
counterId
:
""
emailFrom
:
«noreply@complab59.ru»
emailSubject
:
«Письмо с сайта complab59.ru»
emailTpl
:
«siDefaultEmail»
formName
:
«SimpleForm»
hooks
:
«FormItSaveForm,email»
sendGoal
:
«0»
successMessage
:
«Форма отправлена!»
validate
:
«email:email:required,name:required,politics:required»
message
:
«Невалидный токен.»
success
:
false

ЛОГИ

[2024-12-02 11:33:09] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 787) siSession::load() is not a valid static method.
[2024-12-02 11:33:09] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 667) Could not load class: siSession from mysql.sisession
[2024-12-02 11:33:09] (ERROR @ /home/e/e8788408/complab/public_html/core/components/sendit/services/sendit.class.php: 1132) Table si_sessions not found
[2024-12-02 11:33:10] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 667) Could not load class: siSession from mysql.sisession
[2024-12-02 11:33:10] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 787) siSession::load() is not a valid static method.
[2024-12-02 11:33:10] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 667) Could not load class: siSession from mysql.sisession
[2024-12-02 11:33:10] (ERROR @ /home/e/e8788408/complab/public_html/core/components/sendit/services/sendit.class.php: 1132) Table si_sessions not found

Ошибка указывает на проблемы с попыткой загрузки класса siSession, который должен быть связан с таблицей mysql.sisession. Однако, в вашей базе данных нет таблицы с таким названием — вместо этого у вас есть таблицы modx_session и modx_si_sessions. Ошибка говорит, что метод siSession::load() является недействительным, и также проблема с загрузкой класса siSession. Скорее всего, какой-то скрипт пытается загрузить класс siSession, но не может найти соответствующую таблицу в базе данных.
Даниил
03 декабря 2024, 17:28
0
Ошибка указывает на проблемы с попыткой загрузки класса siSession, который должен быть связан с таблицей mysql.sisession. Однако, в вашей базе данных нет таблицы с таким названием — вместо этого у вас есть таблицы modx_session и modx_si_sessions. Ошибка говорит, что метод siSession::load() является недействительным, и также проблема с загрузкой класса siSession. Скорее всего, какой-то скрипт пытается загрузить класс siSession, но не может найти соответствующую таблицу в базе данных.
Артур Шевченко
03 декабря 2024, 15:27
+1
На смену колбэкам приходит система хуков, очень похожая на события в MODX.
А зачем хуки, если есть события в JS?
Евгений Webinmd
03 декабря 2024, 14:17
+1
Мне кажется отдельная документация это лишняя работа. Тут бы демо версию нормально допилить
epic
03 декабря 2024, 13:40
0
Написал вот такой плагин, меня устраивает

<?php
// OnDocFormRender
$modx->controller->addHtml('<script>Ext.onReady(function(){
	setTimeout(function(){
        hideseo = document.querySelector("div#resource-seosuite-panel > div > div.x-tool.x-tool-toggle");
        hideseo.style.cssText += "float: left";
        hideseo.click();
        
        var divNode = document.createElement("style");
        divNode.innerHTML = " .vertical-tabs-panel .vertical-tabs-header { width: 235px !important; } .vertical-tabs-panel .vertical-tabs-header .x-tab-strip-wrap ul.x-tab-strip > li.x-tab-strip-active { width: 235px !important; } ";
        document.getElementsByTagName("head")[0].appendChild(divNode);        
        
	}, 300);
});</script>');
Andrew
03 декабря 2024, 13:17
0
Отдельный сайт с докой? По идее, почему нет, если будет главная, будет как доп реклама как modx так и магазина. Все кто-нибудь лишний раз присоединится к сообществу.
Максим
03 декабря 2024, 10:36
0
Какие задачи ты решаешь с помощью Vue?
В моей практике были разные сложные калькуляторы стоимости продукции. Можно конечно и на PHP отправлять запросы, но это явно дольше (запросы отправлять дополнительные), чем сразу на стороне клиента считать данные.
Наумов Алексей
03 декабря 2024, 09:56
1
+1
Правильно так:

{('<script type="text/javascript" defer> let my_variable = "' ~ $_modx->resource.MyTv ~ '";</script>')| jsToBottom : true}
Даниил
02 декабря 2024, 18:48
0
Все переустановил перевел все на новый сервер с новым sql8 и все равно пишет токен не валидный
[2024-12-02 11:33:09] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 787) siSession::load() is not a valid static method.
[2024-12-02 11:33:09] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 667) Could not load class: siSession from mysql.sisession
[2024-12-02 11:33:09] (ERROR @ /home/e/e8788408/complab/public_html/core/components/sendit/services/sendit.class.php: 1132) Table si_sessions not found
[2024-12-02 11:33:10] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 667) Could not load class: siSession from mysql.sisession
[2024-12-02 11:33:10] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 787) siSession::load() is not a valid static method.
[2024-12-02 11:33:10] (ERROR @ /home/e/e8788408/complab/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php: 667) Could not load class: siSession from mysql.sisession
[2024-12-02 11:33:10] (ERROR @ /home/e/e8788408/complab/public_html/core/components/sendit/services/sendit.class.php: 1132) Table si_sessions not found
Николай
02 декабря 2024, 10:49
+1
Сегодня вышло обновление от тебя, всё исправлено! Спасибо!
Ruslan
02 декабря 2024, 10:07
0
@Артур Шевченко
Добрый день!

Можете подсказать.
Делаю Регистрацию на сайте, с помощью Sendit.

Согласно документации создал отдельно копию пресетов «sendit.inc.php».
Далее в стандартной форме регистрации, которая есть в документации, я хотел бы добавить radio buttons для выбора в какую группу зарегистрируется пользователь. «Собственник» «Риелтор» «Агенство»
Но в примерах не нашел как их валидацию сделать и прикрутить к нужной группе?
В самом html форме я добавил так
<div class="sign-up__toggle">
      <label for="sign-up__owner-toggle">
        <input type="radio" name="group" id="sign-up__owner-toggle" value="user"/>
        <p>Собственник</p>
      </label>
      <label for="sign-up__rialtor-toggle">
        <input type="radio" name="group" id="sign-up__rialtor-toggle" value="rieltor" />
        <p>Риелтор</p>
      </label>
      <label for="sign-up__agency-toggle">
        <input type="radio" name="group" id="sign-up__agency-toggle" value="agency"/>
        <p>Агентство</p>
      </label>
      <p data-si-error="group"></p>
    </div>
А в пресете валидации добавил такие поля.
'usergroups' => '6,7,8',
usergroupsField' => 'group',
validate' => '..........,group:required',
Можете подсказать, что я делаю не правильно?
Максим
02 декабря 2024, 09:40
0
Сталкнулся с двумя особенностями…
1) После апдейта с 3.5.2 на 3.6 в табе «Расписание Крон» задания перестали отображаться. Сделал удаление полное компонента с удалением таблиц в БД, очистку кэша (коре/кэш), установил 3.6. Задание Демо появилось, изменил время запуска и задание пропало. Хотя если открыть Действия — Смотреть Кронтабс, то задание там вижу
2) Поставил время запуска 0 4 * * 1 (в 4 утра по понедельникам), задание в ручном режиме запускалось, а по расписанию не запустилось… в логе пусто. Время выполнения задания 25-30сек в тестовом запуске. Вроде не должно было до 120+сек растянуться…

скрин из админки:
prnt.sc/La7dX4_4xw4L