tampilan - dikelompokkan berdasarkan huruf pertama hasil

7

Seperti yang dijelaskan judulnya, saya mencoba mengelompokkan hasil tampilan dengan huruf pertama mereka. Googling mengungkapkan cara bagi saya bahwa setengah melakukan trik: menampilkan judul dua kali, mengecualikan dari tampilan, membatasi ke 1 (st) karakter, dikelompokkan berdasarkan itu. Pintar harus saya akui tetapi saya perlu mengungkapkan bidang pengelompokan meskipun tidak ada hasil di dalamnya seperti:

A
  Alpha
  Anekin

B
  Bravo
  Borvo
C

D
  Delta
  Dooku

Adakah pemikiran tentang bagaimana cara melakukannya?

magtak
sumber

Jawaban:

4

Solusi sederhana adalah menambahkan bidang yang hanya memiliki huruf dan grup pertama.

Tampilan juga mendukung melakukan glosarium, yang sedikit berbeda, tetapi memungkinkan Anda untuk mengelompokkan berdasarkan huruf pertama dan menghitung jumlah hasil dan menunjukkan fx

A (2) B (2) C (0), sebagai filter terbuka, ini dilakukan melalui konteks dalam tampilan 3.

googletorp
sumber
"Solusi sederhana adalah menambahkan bidang yang hanya memiliki huruf dan grup pertama." Saya benar-benar mengatakan bahwa dalam pertanyaan saya tetapi melihat sebagai "C" tidak memberi saya hasil apa pun dan saya masih ingin itu disajikan saya tidak bisa melihat bagaimana itu membantu saya. Saya akan melihat Glosarium.
magtak
1
@magtak Anda dapat menggunakannya untuk menambahkan huruf yang hilang
googletorp
1
bisakah Anda menjelaskannya?
magtak
Saya mencoba memahami "Solusi sederhana adalah menambahkan bidang yang hanya memiliki huruf pertama". Haruskah saya menambahkan bidang dalam tipe konten saya dan mengisinya dengan huruf untuk setiap node?
brainHax
1

Itu benar-benar membuat frustrasi tetapi pada akhirnya saya menemukan jawabannya:

Dalam file tpl gaya keluaran tampilan baris:

<?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; ?>

Ini bekerja untuk saya karena tampilan itu menampilkan semua hasil itu sehingga saya dapat dengan aman menganggap $ view-> hasil akan memiliki elemen yang sama di dalamnya sebagai $ rows. $ rows afaik adalah output dari halaman saat ini. Saya tidak yakin apakah $ view-> result berperilaku dengan cara yang sama.

magtak
sumber
0

Lihatlah artikel ini di Drupal.org. Semoga bermanfaat bagi Anda, setidaknya itu membantu saya.

http://drupal.org/node/1078962

Andrew Smith
sumber
stumbled atas itu selama ekspedisi google saya - tidak dapat menemukan sesuatu yang berguna untuk masalah khusus saya tetapi seperti yang saya sebutkan di atas saya sudah memperbaikinya :)
magtak
0

Kami sebenarnya menambahkan kode di bagian "Header" pada tampilan kami (pilih metode input ke kode PHP). Inilah kode php kami yang melakukan apa yang Anda cari (dan itu tidak memerlukan file templat terpisah).

<?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>
bobmct
sumber
sangat mirip dengan solusi bertema saya :)
magtak