Всего 125 671 комментарий

Евгений
29 декабря 2020, 11:47
0
один в режиме, один в другом браузере. И человек заходил из другого ПК, ему пишет мой id
Константин Ильин
29 декабря 2020, 10:50
0
На счет вывода названия, сидел думал вспомнил, что везде тянется pagetitel и тоже пришел к выводу что придется шаманить самому. Выводить это одно, но вот еще в заказ должно сохранятся, и тут я уже вроде решение нашел, на событие создания заказа, там писать свой код который переделывает name

В консоли попробовал этот скрипт, думаю вот оно решение. Как сделаю, выложу, может кому надо будет :)
if ($order = $modx->getObject('msOrder', 6)) {
	$products = $order->getMany('Products');
	foreach ($products as $product) {
	    $p = $product->toArray();
		$arr[] =  $p;
		if($p['product_id'] == 19){
		    $product->set('name', 'TEST');
		    $product->save();
		}	
	}
}
Александр Мельник
29 декабря 2020, 10:32
0
Но если в два аккаунта войти, выводит почему-то id одного аккаунта на двоих
А каким образом вы входите сразу в два аккаунта? В разных браузерах? Или в режиме инкогнито?
Наумов Алексей
29 декабря 2020, 10:30
0
Совсем недавно сталкивался, тоже самое хотел сделать, на событии msOnBeforeAddToCart задать товару в корзине name.

Не получилось, сразу в нескольких местах выскочили проблемы, ни сниппет msCart, ни чанки не готовы к такому повороту событий) все равно во многих местах тащится родной pagetitle от товара… я в итоге забил, и вместо вывода pagetitle в заказе вызываю каждый раз свой сниппет, который динамически формирует название товара.

А вообще идея здравая: сделать возможность подменить name у товара в корзине.
Евгений
29 декабря 2020, 10:28
0
Попробую, спасибо.
Наумов Алексей
29 декабря 2020, 10:15
0
Это кешированый вызов:
[[+modx.user.id]]
Это некешированный вызов:
[[!+modx.user.id]]
Различие в том, что первая запись после первого своего вызова кешируется и данные сохраняются. Поэтому для 2го пользователя все равно будете видеть id первого.
Евгений
29 декабря 2020, 10:10
0
Что не понятно? Главный вопрос в том, что при вызове конструкции [[+modx.user.id]] в чанке, во время залогиненых двух пользователей, выводится один id на двоих. В итоге получается, что получаю не то чоо надо.
Вроде все норм объяснил
Алексей
29 декабря 2020, 09:59
0
Переход до 5.7 помог! Всё заработало. Спасибо Вам!
Наумов Алексей
29 декабря 2020, 09:59
0
Я вот даже при хоть каком-то желании помочь, вот прочитав эту всю кашу, ничего не понял, сниппет какой-то вызывается, чето-то передается в него, юзер, логин, селект и запрос… ААААААА!!!
Евгений
29 декабря 2020, 02:56
0
буду благодарен за любую информацию по моему вопросу, дело даже не в производительности сейчас
Александр
29 декабря 2020, 01:40
0
Заметил что при обновлении индекса, сыпятся такие ошибки и их много, но они однообразные:
\core\components\msearch2\processors\mgr\index\createseo.class.php : 249) PHP warning: Invalid argument supplied for foreach()
\core\components\msearch2\processors\mgr\index\createseo.class.php : 215) PHP warning: array_column() expects parameter 1 to be array, null given
\core\components\msearch2\processors\mgr\index\createseo.class.php : 215) PHP warning: implode(): Invalid arguments passed
На 249 строке в файле «createseo.class.php» ругается на этот код:
foreach ($data['_words'] as $field => $word) {
            foreach ($word as $key => $val) {
                if (!isset($words[$key])) {
                    $words[$key] = $val;
                }
                if (mb_strpos($key, 'value') !== false) {
                    $words[str_replace('value', $field, $key)] = $val;
                }
            }
            $words[$field.'_input'] = $word['input'];
            $words[$field.'_alias'] = $word['alias'];
            $words[$field.'_word'] = $word['id'];
            $words['m_'.$field] = $word['m_value_i'];
        }
На 215 строке:
$text = implode(' ', array_column($data['_words'], 'value'));

Если его удалить, ошибки пропадают и всё вроде работает, но как можно попробовать избавится от этих ошибок без удаления кода, подскажите пожалуйста?
Denis Breus
28 декабря 2020, 23:38
0
У меня на двух магазинах одна и таже ошибка, скрипт ни в одном из режимов не работает.
Ошибка: Не удалось получить сообщение. Причины: нет заказов, заказ находит на другом статусе, время По истечению завершило. Попробуйте оформить новый заказ и попробовать посмотреть сообщение
Александр
28 декабря 2020, 23:36
0
Спасибо за отличное решение!
Виталий Валерьевич
28 декабря 2020, 22:34
+1
Оу, в принципе не сложно, куда сложнее подобную группировку было прикрутить к фильтрам с каталогом. Пришлось расширять и mfilter и fenom заюзать на всю. В целом получилось не плохо, скорость отдачи страницы для такого решения с 400 товарами в таблицах 0.2 сек. Как появится время, постараюсь написать заметку.

Dmytro Lukianenko
28 декабря 2020, 18:09
+2
Да, MODX ДДС отказались от EVO:
modx.com/blog/evolution-cms-has-a-new-home

Поэтому пришлось сделать новое название. А так это продолжение развития MODX Evolution
Собственно вот обновление в репозитории MODXCMS для тех кому надо пруфы:
github.com/modxcms/evolution/releases/tag/3.0rc3
Евгений
28 декабря 2020, 17:57
0
чтото прям ничего не получается :(
Евгений
28 декабря 2020, 17:57
0
Modx EVO мутировал в EVolution и обскакал Revo? :) я все верно понимаю?
Михаил
28 декабря 2020, 17:24
0
В моем случае править ничего не нужно было.
Я просто удалил эту папку
/core/cache/lexicon_topics/lexicon/ru/minishop2
, у которой был другой собственник (owner) зайдя предварительно под его правами.
После этого она уже закэшировалась под нужным пользователем…