Drupal Views - сортировка веса терминов таксономии, когда на другой странице словаря? - PullRequest
0 голосов
/ 08 апреля 2011

Мои узлы, которые классифицированы по 2 словарям таксономии. В обоих словарях есть страницы таксономии, в которых перечислены все отмеченные узлы. Каждый узел имеет 1 тег из каждого словаря.

Я использую переопределение представлений для управления страницами таксономии. Для моих страниц таксономии для моего основного словаря я использую целочисленное поле CCK, чтобы управлять заказом. Это просто и работает нормально.

Для страниц таксономии для моего вторичного словаря я хочу, чтобы в качестве порядка использовался термин вес основного словаря, а затем порядок полей целых чисел CCK.

Я думаю, что могу сделать это с 2-мя порядками сортировки, первый из которых является термином "вес" из 1-го словаря, а 2-й - "полевым порядком CCK". Однако у меня возникает проблема, если я добавлю термин или весовой коэффициент в качестве критерия сортировки к своему представлению, я не могу указать основной словарь, поэтому он использует термин таксономии, на котором находится страница. Это означает, что на основных страницах таксономии он работает нормально, но не работает на страницах 2-й таксономии.

Я не знаю, поможет ли это, но ниже приведен пример заказа:

1st Vocab
-TERM1
--NodeA
--NodeB
-TERM2
--NodeC
--NodeD

2nd Vocab
-TERM3
--NodeA
--NodeC
-TERM4
--NodeB
--NodeD

Как я могу решить это? Спасибо

1 Ответ

1 голос
/ 08 апреля 2011

Если вы имеете дело с представлением терминов, то нет простого способа, я предлагаю вам использовать hook_views_query_alter в пользовательском модуле, подобном этому:

function YOURMODULE_views_query_alter(&$view, &$query) {
  if ('YOUR VIEW NAME' == $view->name) {
    $query->add_orderby(<TABLE ALIAS>, <TABLE FIELD>, 'ASC');
  }
}  

если вы можете позволить себе отфильтровывать пустые термины, я советую использовать модуль таксономии контента и вместо этого создать представление узла.

...