Всего 123 798 комментариев

Артур Шевченко
10 апреля 2024, 21:07
2
+2
switch ($modx->event->name){
    case 'msOnCreateOrder':
        $cart = $order->ms2->cart->get();
        foreach($cart as $item){
            $modx->log(1, print_r($item['options']['modification'],1));
        }
        break;
}
Павел Романов
10 апреля 2024, 17:36
0
Это да, но при следующем обновлении miniShop2 этот файл перепишется и изменения пропадут.
С плагином так не случится.
Андрей
10 апреля 2024, 17:33
0
оказалось проще чутка, просто в нужном файле в карту дописал свое поле из базы и все супер, заработало, спасибо огромное!!! Сам бы не пришел к этому)
Дима Касаткин
10 апреля 2024, 16:35
+2
Обновил сегодня несколько проектов, которые на PHP 7.4.

Всё прошло хорошо, без сюрпризов и ошибок! Надеюсь, у всех так же ;-)
Павел Романов
10 апреля 2024, 11:13
1
0
Добавьте поле в таблицу (например, new_field) и сделайте плагин на событие OnMODXInit
<?php
$modx->loadClass('msProduct');
$modx->map['msProduct']['fields']['new_field'] = '';
$modx->map['msProduct']['fieldMeta']['new_field'] = array(
    'dbtype' => 'varchar',
    'phptype' => 'string',
    'precision' => '190',
    'null' => false,
    'default' => '',
);

Естественно, тип данных может быть разным.
Примеры полей можно посмотреть в файле core/components/minishop2/model/minishop2/mysql/msproduct.map.inc.php
Арман
10 апреля 2024, 02:25
0
Попробовал так. Письмо всё равно отправляется пустым. Возможно не передаются значения который находятся в переменных. Или передается некорректно.
{set $fields = $fields | replace: '"' : '"' | fromJSON}
{set $fieldsAliases = $fieldsAliases | replace: '"' : '"' | fromJSON}
<h3>{$_pls['savedForm.form']}</h3>

На всякий случай проверил так. Здесь всё отправляется.
<h3>test</h3>

После того как поменяли строку на {if $questions && ($questions | count)} письма начали отправляться (до этого не отправлялись на php 8) Но похоже дело не только в этом.
Евгений Webinmd
10 апреля 2024, 00:38
0
В документации указано так
&optionFilters=`{"core_count:>":4}`

На fenom скорей всего будет так
'optionFilters' => '{ "core_count:>":4 }'
Андрей
09 апреля 2024, 23:09
0
может вы подскажете как добавить свое поле для объекта msProduct, если добавляю напрямую через БД, то оно недоступно, никак не получается найти нужную информацию, плохо ищу видимо: с
Артур Шевченко
09 апреля 2024, 22:17
0
Ошибку вызывает вот эта строка
{if $questions | count}
Сюда приходит null, а так как модификатор count это по сути вызов функции count(), то и в функцию приходит null, а она на вход требует как минимум массив, поэтому php 8 выбрасывает критическую ошибку. Соответственно надо либо убрать условие или добавить дополнительную проверку, как в предыдущем комментарии. Но это всё только предположения.
Арман
09 апреля 2024, 20:57
0
Письмо отправилось но с пустым содержанием. Отправилась значение темы письма то что находится внутри 'emailSubject' => 'Письмо с сайта domain.ru',
В данный момент стоит PHP FastCGI (Apache) 8.3.2 (alt)

Это то что у меня стоит внутри siDefaultEmail (ничего не менял)
{set $fields = $fields | replace: '"' : '"' | fromJSON}
{set $fieldsAliases = $fieldsAliases | replace: '"' : '"' | fromJSON}
{set $questions = $fields['questions'] | fromJSON}
{set $answers = $fields['answers'] | fromJSON}
<h3>{$_pls['savedForm.form']}</h3>

{if $questions | count}
    {foreach $questions as $i => $question}
        <p><strong>{$question}</strong>: {$answers[$i] | join: ', '}</p>
    {/foreach}
{else}
    {foreach $fields as $k => $v}
        {if !($k in list ['fields', 'fieldsAliases'])}
            <p><strong>{$fieldsAliases[$k] ?: $k}</strong>: {$v | join: ', '}</p>
        {/if}
    {/foreach}
{/if}
serdeles
09 апреля 2024, 14:03
0
UPD: Всё, сам нашел информацию.
serdeles
09 апреля 2024, 13:48
0
Алексей, еще один вопрос: а как при заполнении конфигуратора MIGX вложить внутрь TV другой TV?
Алексей Смирнов
08 апреля 2024, 21:53
0
Да, потому что я вообще не вижу что у вас что-то корректно отображается. даже текста нет…
возможно ошибки в json.
И посмотрел конфиг — да у вас нарушена структура json для MIGX.
погуглите — modx галерея на migx.
Алексей Смирнов
08 апреля 2024, 21:38
0
Если вы переносили — проверьте исходящую версию Mysql и ту на которую переносите.
Если переносите на более низкую, есть риски что у вас еще и индексы слетели. Поэтому при экспорте нужно поменять совместимость БД, но тут лишь гуглить. Или переносить частями БД если она большая.
Кстати табличку сессий можно очистить перед переносом.
serdeles
08 апреля 2024, 21:38
0
К сожалению, не помогло.
Через конфигуратор — это в смысле заполнять поля через интерфейс MIGX?
Алексей Смирнов
08 апреля 2024, 21:29
0
Попробуйте поле назвать без больших букв. вместо prodImg например image
и вообще советую делать через конфигуратор родной MIGX — полезная штука.
Николай Савин
08 апреля 2024, 21:15
0
При переносе слетает автоинкремент. Для решения вопроса нужно
1. Удалить все записи с ID = 0 или руками их поменять, если таких немного
2. Установить для поля ID индекс primaryKey + автоинкремент
Сергей Лим
08 апреля 2024, 18:08
0
Столкнулся с такой же ошибкой. Не известна причина?