Сергей Шлоков

Сергей Шлоков

Был в сети 06 ноября 2025, 19:54
Заказы не принимаю
Я надеюсь, вы пакет загружаете перед запросами. Если нет, то нужно вставить следующий код перед вызовом ваших объектов.
$path = $modx->getOption('core_path') . 'components/geolocation/model/';
if (!$modx->addPackage('geolocation', $path)) return '[geolocation] Пакет не найден.';
Вариант 1.
Ставьте
CMPGenerator. Открываете и создаете новый пакет «geolocation». Указываете таблицы, префикс, генерируете и схему и пакет, предварительно сохранив свою старую схему. Далее, в новой схеме прописываете связи aggregate и composite из своей схемы.
Опять открываете пакет в CMPGenerator, только теперь схему генерировать не надо (ставите Нет), только пакет. Сохраняйте. Все.

Вариант 2.
Или вручную — найти все map-файлы и у них поправить все что нужно. Как правило, они лежать в папочке mysql.

Первый вариант самый простой.
Если на странице один thread, то проще простого.
Создаем сниппет CountComments
$thread = $modx->getObject('TicketThread', array('resource' => $modx->resource->get("id")));
if (empty($toPlaceholder)) {
	// или сразу выводим значение
	return $thread->get('comments');
} else {
	// или записываем его в плейсхолдер
	$modx->toPlaceholder($toPlaceholder,$thread->get('comments));
}
Вызываем его перед местом использования (если вывод через плейсхолдер) или сразу в нужное место (если вывод напрямую).
// Если вывод через плейсхолдер, то указываем его
[[!CountComments? &toPlaceholder=`countComments`]]
Теперь вставляем плейсхолдер [[+countComments]] куда нужно.
Вряд ли. Я тоже на 2.4.0 работаю. Все ОК. Возможно опять виновата версия php. При просмотре таблицы вызываются 2 процессора — getfield и getdata. Это видно в консоли браузера. После какого возникает ошибка?