Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 114 комментариев

Александр Туниеков
Александр Туниеков
Ну планируется что расчеты будут делать клиенты на сайте. А чтоб они не могли приписать себе любую цену товара считать цену надо на стороне сервера. Так что сам расчет на стороне сервера на php.
Дима Касаткин
Дима Касаткин
Крутые обновления! Просто класс! Спасибо!

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

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

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

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

Я и сам думал обойдусь событиями. Но основательно взявшись за работу, понял что они нефига не справляются.
Ivan
Ivan
Не знаю где написать хотелку. Напишу тут.
А можно сделать так, чтобы если товары в корзине с устаревшей ценой, то у них цена становилась актуальной?
А то приходится плагин свой делать для этого. А мне кажется это важно и логично для любого магазина…
Тут конечно могут быть сложности, когда используются всякие компоненты скидок и прочего. Но можно сделать галочку в админке — актуализировать цены если в корзине они старые.
Даниил
Даниил
Пишет не валидный токен «Невалидный токен»
Полностью переустановил 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, но не может найти соответствующую таблицу в базе данных.
Даниил
Даниил
Ошибка указывает на проблемы с попыткой загрузки класса siSession, который должен быть связан с таблицей mysql.sisession. Однако, в вашей базе данных нет таблицы с таким названием — вместо этого у вас есть таблицы modx_session и modx_si_sessions. Ошибка говорит, что метод siSession::load() является недействительным, и также проблема с загрузкой класса siSession. Скорее всего, какой-то скрипт пытается загрузить класс siSession, но не может найти соответствующую таблицу в базе данных.
epic
epic
Написал вот такой плагин, меня устраивает

<?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>');
Максим
Максим
Какие задачи ты решаешь с помощью Vue?
В моей практике были разные сложные калькуляторы стоимости продукции. Можно конечно и на PHP отправлять запросы, но это явно дольше (запросы отправлять дополнительные), чем сразу на стороне клиента считать данные.
Даниил
Даниил
Все переустановил перевел все на новый сервер с новым 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
Ruslan
Ruslan
@Артур Шевченко
Добрый день!

Можете подсказать.
Делаю Регистрацию на сайте, с помощью 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',
Можете подсказать, что я делаю не правильно?
Максим
Максим