Воеводский Михаил

Воеводский Михаил

Был в сети 30 марта 2026, 14:44
Заказы не принимаю
С таким плагином произойдет большая печаль :)

Если серьезно, этот кусок кода для однократного запуска — он переносит значения из introtext в TV для всех ресурсов сразу.

Плагин надо повесить на событие OnDocFormSave. Его код:

switch ($modx->event->name) {
	case 'OnDocFormSave':
		if ($resource->template == 3) {
			$resource->setTVValue('tvtag', $resource->introtext);
			$resource->save();
		}
		break;
}
Тоже не проверял.
Кусок кода, перекидывающий значение introtext в TV:
$q = $modx->newQuery('modResource');
// Дальше несколько строк с критериями для выборки ресурсов. Например, ресурсы с шаблоном 2
$q->where('template' => 2);
$resources = $modx->getIterator('modResource', $q);
foreach ($resources as $resource) {
	$resource->setTVValue('tvtag', $resource->introtext);
	$resource->save();
}
Код не проверял, но должен быть рабочим.
Согласен с доводами.
Но это не отменяет другой стороны — не всегда у разработчика есть время и/или желание на исчерпывающую документацию, ибо это крайне трудоемкий процесс.

Более того, зачастую намного проще разрабатывать очень сложный функционал, нежели что-либо документировать.

Большое спасибо Василию за тот объем документации, который есть — это огромное количество материалов.
просто нужно документацию ясно написать.
Для написания документации объемом в лист A4, без учета скриншотов, может потребоваться несколько часов.
Кто будет это делать?

К сожалению, в мире Open source очень часто случается ситуация, когда продукт умеет в несколько раз больше, чем указано в документации. Основная причина этого явления — экономическая. Особенно для бесплатных продуктов.
Просто получается, что Вы хотите увидеть в MS2 совсем огромный и дикий по функционалу комбайн. Но он, как коробочное решение, подходит для небольших и непритязательных магазинов.

Вся мощь MS2 заключается в тех возможностях, которые он дает как платформа. И на эту платформу Вы можете добавить:
msOptionsPrice для управления характеристиками (уже не слишком актуально),
msRevaluation для простого проведения переоценки,
msPayAndSee для реализации закрытых платных разделов сайта
— и многое другое

К сожалению, в мире Open source очень часто случается ситуация, когда продукт умеет в несколько раз больше, чем указано в документации. Основная причина этого явления — экономическая. Особенно для бесплатных продуктов.
Можете это красиво оформить, чтобы не только программисты понимали? И Разработчик вам спасибо скажет.
Пока не до написания статей. Хотя идея правильная, спасибо.

Дальше речь _только_ о такой характеристике товара, как «Цена»:
Ссылку смотрел, этот компонент делает «Проведение переоценки товаров для MODX», о чем я и написал, что передавать с сайта нужно не только цену.
Ваша фраза «передавать с сайта нужно не только цену» мне совершенно непонятна. Особенно в свете отдельного вопроса об изменениях цен.
Если у Вас появилась необходимость изменить цену на 10% в связи с изменением курса валют, чем не подходит данный компонент?
Вы мой комментарий вообще прочитали? Ссылку смотрели?

О цене я отдельно написал в контексте массового увеличения на процент и указал ссылку на компонент, реализующий эту функцию.

Что касается остальных характеристик — разработчик магазина может добавить любое количество доп.полей в виде TV или MIGX TV, которые будут работать так же, как в SHK, ибо эти механизмы не для SHK придуманы.

Как потом добавить в корзину товар с опциями, которых нет в базе? Легко.
В форме добавления товара выводите любое количество опций, а саму форму отправляйте так, чтобы передавались параметры вида
options[newOp]=black
options[square]=50
options[strength]=20
Такой массив опций будет передан напрямую в корзину. А уж откуда эти поля появляются — корзину не волнует. MS2 при добавлении не проверяет, существуют ли эти опции у товара в БД.