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

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.

Yeni yorum veya soru gönder

Bu alanın içeriği gizlenecek, genel görünümde yer almayacaktır.
  • Glossary terms will be automatically marked with links to their descriptions. If there are certain phrases or sections of text that should be excluded from glossary marking and linking, use the special markup, [no-glossary] ... [/no-glossary]. Additionally, these HTML elements will not be scanned: a, abbr, acronym, code, pre.
  • Eklediğiniz bağlantılara rel="nofollow" eklenerek, eklediklerinizin arama motorları tarafından bu site üzerinden indexlenmesi engellenir.

  • You may insert videos with [video:URL]

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


CAPTCHA
Bu soru sizin gerçek bir ziyaretçi olup olmadığınızı anlamak için sorulmaktadır..
CAPTCHA resmi
Resimdeki karakterleri giriniz.

Yazarlarımız