回答:
簡単な解決策は、最初の文字のみが含まれるフィールドを追加し、それによってグループ化することです。
ビューは用語集の実行もサポートしますが、これは異なりますが、最初の文字でグループ化し、結果の数をカウントしてfxを表示できます
A(2)B(2)C(0)、公開フィルターとして、これはビュー3のコンテキストを介して行われます。
それは本当にイライラさせられましたが、結局私はそれを理解しました:
ビュー行の出力スタイルtplファイル:
<?php print $wrapper_prefix; ?>
<?php if (!empty($title)) : ?>
<h3><?php print $title; ?></h3>
<?php endif; ?>
<?php $letters = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
foreach ($letters as $letter):?>
<div class="letter family">
<div class="letter-header"><?php print $letter;?></div>
<?php print $list_type_prefix; ?>
<?php foreach ($rows as $id => $row):?>
<?php $rest = substr($view->result[$id]->node_title,0,1);?>
<?php if ($rest == $letter):?>
<li class="<?php print $classes_array[$id]; ?>"><?php print $row; ?></li>
<?php endif;?>
<?php endforeach; ?>
<?php print $list_type_suffix; ?>
</div>
<?php endforeach;?>
<?php print $wrapper_suffix; ?>
そのビューは結果のすべてを出力するので、これは私にとっては機能します。したがって、$ view-> resultには$ rowsと同じ要素があると想定できます。$ rows afaikは現在のページの出力です。$ view-> resultが同じように動作するかどうかはわかりません。
Drupal.orgのこの記事をご覧ください。それがあなたに役立つことを願っています、少なくともそれは私を助けました。
ビューの「ヘッダー」部分にコードを実際に追加しました(PHPコードへの入力メソッドを選択)。これがあなたが探していることをする私たちのphpコードです(そしてそれは別個のテンプレートファイルを必要としません)。
<?php
$letters = array(
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','y','z'
);
?>
<h2>Browse by Last Name</h2>
<ul>
<li style="display:inline; padding-right:8px;">
<a href="/Full_time_Faculty_Listing" >All</a>
</li>
<?php for ($i=0; $i<count($letters); $i++): ?>
<li style="display:inline; padding-right:8px;">
<a href="https://drupal.stackexchange.com/Full_time_Faculty_Listing/<?php print $letters[$i];?>"><?php print strtoupper($letters[$i]);?></a>
</li>
<?php endfor; ?>
</ul>