Sayfa görünümlerinde taxonomy çıktısını değiştirmek

İlgili Konular: Drupal Temaları Drupal Genel Bilgiler     

Drupal ile yaptığımız sayfalarda yazdığımız konunun türü veya içeriği gibi bilgileri taxonomy kullanarak göstermek isteyebiliriz. Bu gibi durumlarda drupalin kullandığı standart "$terms" değişkeni ile yazdırmak işimize gelmez. Bu değişkeni kullandığımızda tüm etiketler düz bir şekilde sayfamızda yer alır.

Taxonomy çıktısını bu sayfada olduğu gibi "ilgili konular" şeklinde değiştirerek kullandım. Böyle kullanmamdaki amacım diğer rasgele etiket olarak kullandığım taxonomy etiketlerini ilgili konular bölümünden ayırmaktı. Sizinle iki türlü kod paylaşacağız. Birinde içeriğinizle alakalı tüm etiketler, diğerinde ise sadece istediğiniz etiketleri görüntüleyebilirsiniz. Aslında sadece tek bir kod parçası var ve biz onu türetiyoruz.

 

Sayfanızda tüm taxonomy etiketlerini göstermek isterseniz aşağıdaki kodu kullanabilirsiniz:

<?php if ($terms): ?>
        <?php
          $vocabularies = taxonomy_get_vocabularies();
          foreach($vocabularies as $vocabulary) {
            if ($vocabularies) {
              $terms = taxonomy_node_get_terms_by_vocabulary($node, $vocabulary->vid);
              if ($terms) {
                print '<div class="terms"><h1>' . $vocabulary->name . ':</h1> ';
                foreach ($terms as $term) {
                print l($term->name, 'taxonomy/term/'.$term->tid, array('title' => $term->description) ) . ' ';
                }
                print '</div>';
              }
            }
          }
        ?>
<?php endif; ?>

Bu kod bölümünü node.tpl.php sayfasının içersinde etiketleri görüntülemek istediğiniz yerde kullanın. Kodlarda herhangi bir değişiklik yapmanıza gerek yoktur. Ayrıca etiketlere eklediğiniz açıklama metinleri bağlantı alt değeri olarak kullanacaktır.

Sayfadaki etiketlerin görünümü aşağıdaki şekilde olacaktır:

Sözlük1 adı:
etiket1,etiket2,etiket3,...

Sözlük2 adı:
etiket1,etiket2,etiket3,...

...

Bu şekilde tüm sözlüklere ait etiketler listelenir.

 

Sadece sözlük2 etiketlerini listelemek istersek, sözlük2'in id değerini belirtmeniz gerekmektedir. Sözlük2'in id değeri "2" olsun ve biz buna göre kodumuzu hazırlayalım.

Sözlüklerinizin id'leri genellikle oluşturulma sıralarına göre oluşturulmaktadır.

 

İşimize yarayacak kod bloğu aşağıdaki gibidir:

<?php if ($terms): ?>
        <?php
              $terms = taxonomy_node_get_terms_by_vocabulary($node,2);
              if ($terms) {
                  print '<div>';
                  print 'İlgili Konular: ';
                foreach ($terms as $term) {
                  print l($term->name, 'taxonomy/term/'.$term->tid, array('title' => $term->description) ) . ' ';
                }
                print '<br /></div>';
              }
        ?>
<?php endif; ?>


Bu kod bölümünde 2 şeklinde belirtilen yere kullanmak istediğiniz sözlüğün id değerini girin ve node.tpl.php dosyasında yazdırmak istediğiniz yerde kullanın.

Yorumlar

Yeni yorum veya soru gönder

Bu alanın içeriği gizlenecek, genel görünümde yer almayacaktır.
  • PHP source code can also be enclosed in <?php ... ?> or <% ... %>.
  • You may insert videos with [video:URL]

Biçimlendirme seçenekleri hakkında daha fazla bilgi


8 + 4 =
Basit matematik sorusunuz çözünüz. Örn; 1+3= 4