Артур Шевченко

Артур Шевченко

С нами с 24 мая 2019; Место в рейтинге пользователей: #7
Отправить деньги
Артур Шевченко
13 декабря 2020, 03:43
0
Надо смотреть код, возможно там вызывается стандартный процессор и тогда вызывается стандартное событие OnUserProfileSave, и можно написать плагин, который будет из $_FILE брать файл, загружать его на сервер и вставлять путь к нему в extended. Как загружать файлы можешь глянуть тут там про FormIt но суть одна.
Артур Шевченко
12 декабря 2020, 11:39
0
Решил. Проверьте чтобы в настройках БД было так sql_mode=only_full_group_by.
Артур Шевченко
10 декабря 2020, 19:39
0
А чем именно он будет неудобен? Место в админке будет занимать)))
Артур Шевченко
10 декабря 2020, 19:06
+1
Если охота прям заморочиться, тогда
$tv = json_decode($resource->getTVValue('migxtvname'),1);
$tv['date'] = '';
$resource->setTVValue('migxtvname', json_encode($tv, JSON_UNESCAPED_UNICODE));
$resource->save();
Я написал на один элемент, вообще надо конечно в цикле, т.е. $tv это массив и по нему надо пройти в цикле и сравнивать даты и дальше по вашей логике, НО я бы просто сделал отдельный раздел с ресурсами и и использовал возможность автоматического снятия с публикации, на вкладке Настройки любого ресурса есть поле Дата отмены публикации.
Артур Шевченко
10 декабря 2020, 17:48
0
Опишите задачу, а не ваше решение, если хотите развернутый ответ. А так удалить значение TV можно просто его затерев
$resource->setTVValue('tvname', '');
$resource->save();
Артур Шевченко
09 декабря 2020, 10:54
+1
Сделай выборку по родителю
$products = $modx->getColection('msProduct', array('parent' => id'));
...
Или по нескольким
$products = $modx->getColection('msProduct', array('parent:IN' => [id1,id2,id3]));
Артур Шевченко
09 декабря 2020, 10:51
0
FormIt он под Fenom не заточен, это минус, поэтому от себя могу посоветовать попробовать такой вызов
{$_pls['fi.id']}
Артур Шевченко
08 декабря 2020, 16:57
0
Просто создать ТВ не получается? А потом вот так
<img src="[[*img]]" alt="[[*alt]]">
Артур Шевченко
08 декабря 2020, 16:36
0
Если есть доступ в БД зайдите в неё и посмотрите где лежит нужная информация. Ищите таблицы у которых вторым префиксом идёт ms2_
ms2_products
ms2_product_categories
ms2_product_files
ms2_product_options
ms2_product_links
Соответственно делаете запрос в старую базу, потом результат кладёте в новую, только с файлами будут сложности, поскольку на новом сайте будут новые id у товаров.
Артур Шевченко
08 декабря 2020, 16:29
+1
$products = $modx->getColection('msProduct');
foreach($products  as $p){
    $pagetitle = $p->get('pagetitle');
    $longtitle = $p->get('longtitle');
    $size = $p->get('size');
    $p->set('pagetitle', $pagetitle . ' ' . $size);
     $p->set('longtitle', $longtitle . ' ' . $size);
    $p->save();
}
Код выполнить в консоли.
Артур Шевченко
08 декабря 2020, 16:24
0
Если этот вызов работает
[[!str? &str= {
текст| 
текст2|
текст3|
тест4
}
]]
То возможно стоит попробовать вот так
[[!str? &str= `{
текст| 
текст2|
текст3|
тест4
}
{
текст| 
текст2|
текст3|
тест4
}`
]]
Если я конечно правильно понял принцип работы сниппета.
Артур Шевченко
08 декабря 2020, 16:19
0
Переписал, надеюсь стало немного лучше.
Артур Шевченко
08 декабря 2020, 13:40
0
По поводу проверки я понял, пока не знаю как её делать, но я погуглю)))
Артур Шевченко
08 декабря 2020, 13:26
0
А если в куки писать? Мне кажется так удобнее, тогда и на фронте будет доступ к данным и на сервере, или есть какие-то минусы такого подхода?
Артур Шевченко
08 декабря 2020, 13:20
0
Переписал. Теперь если нужно много полей пользователя, можно одним запросом получить массив и его как плейсхолдеры раскидать по странице.
Артур Шевченко
08 декабря 2020, 13:01
0
хотя бы кэширование к этому коду по времени добавить надо
Вот тут не понял, это как?
Артур Шевченко
08 декабря 2020, 12:43
0
Во-первых, до этой минуты мне не приходила в голову мысль, что можно сделать так
{24 | user: 'extended'}
Теперь чувствую себя идиотом))) НО следом пришла другая мысль, код выше не делает запрос в БД? Как тогда он работает?
Артур Шевченко
08 декабря 2020, 12:33
0
Ок, поправлю. По крайней мере постараюсь.
Артур Шевченко
08 декабря 2020, 11:56
0
Отлично, что ты мне всё это пишешь. Твои замечания помогут мне исправить недочёты. Так что спасибо. Я полагаю в этом случае надо проверку добавить или как?
Артур Шевченко
08 декабря 2020, 11:53
0
Вы правы, ради одного юзернейма такой огород городить не стоит, его можно получить гораздо проще, а что делать если у меня десяток полей в extended плюс данные в profile и в user? И да, я перепишу, сделаю один запрос в БД.