Drupal 7 - Taksonomi Sayfalarındaki düğüm çıktılarını bastır


10

Taksonomi sayfalarındaki düğümlerin çıktısını bir modül yüklemeye gerek kalmadan bastırmanın bir yolu var mı (örneğin, sadece template.php dosyasında)?

Bir sınıflandırma terimiyle etiketlenmiş düğümler "Sınıflandırma Dizini sayfasında" görünür (örn. Siteniz.com/taxonomy/term/[id]).

Drupal 7, Taxonomy Index sayfalarındaki yenilikler, bunlara ekli alanlar olabilir. Bununla birlikte, sınıflandırma sayfasını bir Görünüm ile gezmeye çalışırsanız (örneğin, düğümlerin nasıl görüntüleneceğini denetlemek için), Sınıflandırma Dizini sayfalarındaki alanlar görünmez.

Bu nedenle Taksonomi Görünümümü Taksonomi Dizini sayfasına blok olarak yerleştirdim. Bu şekilde, düğümlerin nasıl görüneceğini kontrol edebilirim ve yine de Sınıflandırma Dizini sayfa alanlarına sahip olabilirim.

Bu nedenle, sınıflandırma sayfası hala düğümlerini çıkarıyor. Düğümlerin teaser'ını gizli olarak ayarlayarak gizleyebilirim, ancak yine de düğümleri yükler (ve bu nedenle düğümler görüntülenmese bile düğümlere bağlı herhangi bir CSS / Jquery). Düğümlerin, ideal olarak template.php içinden görünmesini nasıl engelleyebilirim?


Neden bir modül kurmak istemiyorsunuz? Bazı şeyleri modüllerle başarmak daha kolaydır.
Martin Schlagnitweit

Yanıtlar:



8

Http://www.wardontheweb.com/remove-node-lists-from-taxonomy-pages-in-drupal-7/ çözümü benim için iyi çalışıyor:

function THEMENAME_preprocess_page(&$vars){
   if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))){
     unset($vars['page']['content']['system_main']['nodes']);
     unset($vars['page']['content']['system_main']['pager']);
     unset($vars['page']['content']['system_main']['no_content']);
   }
}

Not: Sitenizin önbelleğini sıfırlamanız gerekir.


NOT: bu , sitedeki herhangi bir sınıflandırma terim sayfası için düğüm listesini devre dışı bırakır .
Duncanmoo

@Peter Lozovitskiy Bunu yapıyorum ve "Uyarı: Tanımlanmamış sabit 'taksonomi" kullanımı hatası ile karşı karşıyayım!
shekoufeh

@shekoufeh, ben düzeltilmiş kodu (virgül değiştirildi) şimdi bu kodu deneyin.
Peter Lozovitskiy

2

Düğümleri $ page değişkeninden kaldırmanız gerekir.

Gelen template.php bunu şöyle yapabilirsiniz:

function MY_THEME_preprocess_page(&$variables) {
  if(arg(0) == "taxonomy" && arg(1) == "term") {
    $variables['page']['content']['system_main']['nodes'] = null;
  }
}

Sizin de page.tpl.php bu kodu kullanın:

if(arg(0) == "taxonomy" && arg(1) == "term"){
  $page['content']['system_main']['nodes'] = null;
}

Bu, düğümleri tüm kelime dağarcığı ve terimlerden kaldırır . Bunları yalnızca belirli terimlerden veya tüm terimlerden , terimi yüklemek ve sonra if deyimini güncellemek için arg(2)içeren bir kelime dağarcığı kullanımından kaldırmak istiyorsanız tid.


Çalışıyor ama hala çağrı cihazını açık bırakıyor. Bu, düğümlerin yüklendiği ve sunucu kaynaklarının boşa harcandığı anlamına gelir. Her neyse, bahşiş için teşekkürler, zaten yönteminizi kullanıyorum :) Ama teorik olarak hala daha iyi bir tane var.
int_ua

0

Template.php içinde pratik olarak her şeyi yapabilirsiniz, ancak bu önerilmez. Bir CMS kullanmanın amacı, verileri, davranışı ve görünümü ayırmanızdır. Template.php dosyası, tema katmanının bir parçasıdır ve bunu sitenizin görsel stilini ayarlamak için kullanmalısınız.

Bir sitenin davranışını ayarlamak istiyorsanız (bu durumda: belirli bir listede hangi öğelerin gösterileceğini kontrol edin) davranışı değiştirmeniz gerekir, böylece modülleri kurar ve yapılandırırsınız. Özel içerik listeleri oluşturmak istiyorsanız, Views modülü tam olarak ihtiyacınız olan şeydir.

Sizin durumunuzda (doğru anlıyorsam) sınıflandırma teriminin alanlarının o terimle etiketlenmiş düğümler listesinin üzerinde görüntülenmesini istersiniz. URL'den terim kimliğini alan ve ihtiyacınız olan bilgileri gösteren bir görünüm bloğu oluşturarak bunu görünümünüzde yeniden oluşturabilirsiniz.


Yanıtınız için teşekkürler! Sınıflandırma sayfasını geçersiz kılmak için Views'ı zaten kullanıyorum. Ancak, sınıflandırma sayfasındaki alanları görünür tutmam gerektiğinden, Görünümleri Geçersiz Kılmayı sayfa yerine blok olarak kullanıyorum. Tek sorun, sınıflandırma sayfasının hala gereksiz görünen düğümleri yüklemesidir.
big_smile

"Sınıflandırma sayfasındaki alanlar" ile ne demek istediğinizi anlamıyorum, ancak sayfa içeriğini gizlemek ve bir blokla değiştirmek doğru çözüm gibi gelmiyor. Sınıflandırma sayfasını normal bir sayfa görünümü ile geçersiz kılarsanız, tam olarak hangi işlevselliği kaçırıyorsunuz? (Belki orijinal sorunuzu güncelleyebilirsiniz ve cevabımı buna göre geliştireceğim.)
marcvangend

Cevap da güncellendi.
marcvangend

Maalesef cevabınız işe yaramıyor. Taksonomi alanlarını bir görünüme getirmeye çalışırsanız, her bir alanın içeriğini görüntüler (yalnızca görüntülenmekte olan sayfaya ait olanlar değil).
big_smile

0

Taksonomi şeylerini gizlemek için CSS kullanıyordum ama ekranlarını özel olarak ayarlayıp daha iyi bir seçenek gibi görünüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.