Добавить ссылки сортировки на страницы терминов таксономии (Views 2)

Главные вкладки

Аватар пользователя urikor urikor 4 декабря 2013 в 18:48

Здравствуйте!
Для отображения страниц терминов таксономии (taxonomy/term/tid) использую стандартное представление Drupal
для терминов с адресом страницы taxonomy/term/%

В заголовке страницы нужно вывести ссылки для сортировки по наименованию, дате создания и т.д.
Воспользовался следующим механизмом Exposed sort

Сделал замещение шаблона для представления (views-view--taxonomy-term.tpl.php), куда поместил:

$sortOp = '';
if ( isset($_GET['sortoptions']) ) $sortOp = $_GET['sortoptions'] ;

<form name="viewsort" style="text-align:center;">
Сортировать по названию (
<a href=" <?php arg(0).'/'.arg(1).'/'.arg(2) ?> ?sortoptions=nameasc" onclick="document.forms.viewsort.submit()"><b>Возр.</b></a> |
<a href=" <?php arg(0).'/'.arg(1).'/'.arg(2) ?> ?sortoptions=namedesc" onclick="document.forms.viewsort.submit()"><b>Убыв.</b></a>),
дате (
<a href=" <?php arg(0).'/'.arg(1).'/'.arg(2) ?> ?sortoptions=dateasc" onclick="document.forms.viewsort.submit()"><b>Возр.</b></a> |
<a href=" <?php arg(0).'/'.arg(1).'/'.arg(2) ?> ?sortoptions=datedesc" onclick="document.forms.viewsort.submit()"><b>Убыв.</b></a>),
цене (
<a href=" <?php arg(0).'/'.arg(1).'/'.arg(2) ?> ?sortoptions=priceasc" onclick="document.forms.viewsort.submit()"><b>Возр.</b></a> |
<a href=" <?php arg(0).'/'.arg(1).'/'.arg(2) ?> ?sortoptions=pricedesc" onclick="document.forms.viewsort.submit()"><b>Убыв.</b></a>)
</form>

Создал модуль, где добавил сортировку к представлению, содержащему в url параметр sortoptions:

function exposed_sort_for_views_views_query_alter(&$view, &$query) {
if( isset( $_GET['sortoptions'] ) ) {
if ( $_GET['sortoptions'] == 'nameasc' )
$query->orderby[0] = 'node_title ASC';
else if ( $_GET['sortoptions'] == 'namedesc' )
$query->orderby[0] = 'node_title DESC';
else if ( $_GET['sortoptions'] == 'dateasc' )
$query->orderby[0] = 'created ASC';
else if ( $_GET['sortoptions'] == 'datedesc' )
$query->orderby[0] = 'created DESC';
else if ( $_GET['sortoptions'] == 'priceasc' )
$query->orderby[0] = 'sell_price ASC';
else if ( $_GET['sortoptions'] == 'pricedesc' )
$query->orderby[0] = 'sell_price DESC';
}
}

Данный механизм работает с обычными представлениями, но не работает с представлением имеющем путь taxonomy/term/%.

Ошибка следующая:
user warning: Unknown column 'node_title' in 'order clause' query: SELECT node.nid AS nid, node.sticky AS node_sticky, node.created AS node_created FROM node node WHERE (node.status = 1 OR (node.uid = 1 AND 1 <> 0) OR 1 = 1) AND (node.vid IN ( SELECT tn.vid FROM term_node tn WHERE tn.tid = 3 )) ORDER BY node_title ASC, node_created DESC LIMIT 0, 10 in Z:\home\drupal622\www\sites\all\modules\views\includes\view.inc on line 810.

Пожалуйста, подскажите что нужно изменить для работы модуля с представлением терминов таксономии.

Комментарии