mbhusty
@mbhusty

Как вывести свои плэйсхолдеры в результатах AdvSearch?

На странице вызываю сниппет результатов поиска
[[!AdvSearch?
			&queryHook=`testHook`
			&fields=`id,name,active,description`
			&withFields=`id,name,active,description`
			&init=`all`
			]]


в хуке testHook пишу следующее
$main = array(
	'package' => 'links',
	'packagePath' => '{core_path}components/links/model/',
	'class' => 'LinksItem',
	'fields' => 'id,name,active,description', // displayed
	'withFields' => 'name,active,description', // where we do the search
);

// set the query hook declaration
$qhDeclaration = array(
	'qhVersion' => '1.3',       // version of queryHook - to manage futures changes
	'main' => $main,
);

/** @var TYPE_NAME $hook */
$hook->setQueryHook($qhDeclaration);
return true;

в чанке вывода результата
[[+advsearch.id]]
[[+advsearch.name]]
[[+advsearch.description]]


В доке по advsearch - https://devpastet.ru/dokumentacziya/modx-revo/snip...
сказано Доступные плейсхолдеры - fieldName Любое значение поля заданных в параметре fields.

В итоге отображается только id ресурса, других данных нет.
Как вывести значения других полей?
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
mbhusty
@mbhusty Автор вопроса
Достаточно было изменить
'fields' => 'name,description,link,active',
на
'mainFields' => array('name','description','link','active'),

и добавить tablePrefix, т.к у меня префикс таблиц отличается от modx
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы