Добавление сортировки для просмотра на Drupal? - PullRequest
4 голосов
/ 22 декабря 2009

Раньше я знал, как это сделать, но мне не удается заставить сортировку работать с видом, где фильтры выставляются в блоке. Я хочу иметь возможность фильтровать, например, по типу, цене и т. Д., Но у меня также есть возможность сортировки по этим элементам.

Как мне заставить сортировку работать так?

Ответы [ 5 ]

4 голосов
/ 30 декабря 2009

Я использовал этот код для переопределения сортировки в не табличных представлениях

function views_tweak_views_query_alter(&$view, &$query) {
  if ($view->name == 'products'){
  if (arg(3) == 'pu') $query->orderby[0]='uc_products_sell_price ASC';
  if (arg(3) == 'pd') $query->orderby[0]='uc_products_sell_price DESC';
  if (arg(3) == 'nu') $query->orderby[0]='node_title ASC';
  if (arg(3) == 'nd') $query->orderby[0]='node_title DESC';

  } 
}

и размещение в шаблоне ссылок с этими URL

2 голосов
/ 22 декабря 2009

AFAIK, вы не можете выставить критерии сортировки, как вы можете с фильтрами.

Я немного осмотрел найденный этот модуль . Идея состоит в том, чтобы создать несколько видов с разными критериями сортировки и связать их вместе с вкладками. Он немного хакерский и может не работать с открытыми фильтрами. Модуль все еще находится в бета-версии, и я не тестировал его, поэтому не могу сказать, хорош ли он.

1 голос
/ 17 января 2011

На тот случай, если вы не можете найти, где это установить, посмотрите на левую сторону вида (в режиме редактирования), в разделе «Основные настройки» выберите «Таблица». Нажмите на «настройки» (выглядит как маленький значок шестеренки справа от выбора «таблицы»), и вы увидите список всех полей отображения, где вы можете выбрать, какие из них сортируются / нет, а какие сортировка по умолчанию.

1 голос
/ 29 декабря 2009

Если вы решите использовать макет таблицы, вы можете сортировать по столбцам. Эта функциональность встроена в представления.

0 голосов
/ 06 февраля 2012

Добавление сортировки для просмотра кода программы без Drupal в хуках.

Вам необходимо использовать аргументы на странице отображения.

Использовать меню таксономии для страниц до .. Далее:

  1. Создайте одну отображаемую страницу в виде с путем (например): some_path /% / by_totalcount
    1.1. Сделайте критерии сортировки для этого дисплея по общему количеству
  2. Создайте еще одну страницу в этом представлении с указанием пути (например): some_path /% / by_date
    2.1. Установите критерии сортировки для этого отображения по дате
  3. Создать новый блок с кодом:

</p>

<?php 


$url= urldecode($_SERVER['REQUEST_URI']);

switch($url)
{
   case '1': 
      $class = 'top'; 
      $title_h2 = 'top';
   break;
   case '/taxonomy/term/6 3 ': 
     $class = 'travel';
     $title_h2 = 'travel'; 
   break;
.................
}

global $base_url;

$url_rating = $base_url.'/'.arg(0).'/'.arg(1).'/'.arg(2).'/rating'; 
$url_created = $base_url.'/'.arg(0).'/'.arg(1).'/'.arg(2);

?>
<div class="<?php print  $class; ?>">
    <div class="title">
        <h2>
            <?php print  $title_h2; ?></h2>
        <p>Sort node: <span class="sort_type"><a href="<?php echo $url_rating; ?>">by rate</a></span> | <span class="sort_type"> <a href="<?php echo $url_created; ?>">by date</a></span></p>
    </div>
</div>
<p>&nbsp;</p> 

VOILA


Извините за мой английский .. это не мой родной язык))


...