it-swarm.it

Drupal 7 - Elimina l'output dei nodi nelle pagine di tassonomia

C'è un modo per sopprimere l'output dei nodi nelle pagine della tassonomia, senza dover installare un modulo (cioè solo in template.php)?

I nodi contrassegnati con un termine di tassonomia compaiono nella "Pagina dell'indice di tassonomia" (ad es. Yoursite.com/taxonomy/term/[id]).

Novità in Drupal 7, alle pagine dell'indice tassonomia possono essere associati dei campi. Tuttavia, se si tenta di superare la pagina della tassonomia con una vista (ad esempio, per controllare come vengono visualizzati i nodi) , i campi nelle pagine dell'indice tassonomia non verranno visualizzati.

Pertanto, ho posizionato la mia Visualizzazione tassonomia come blocco nella pagina Indice tassonomia. In questo modo, posso controllare come vengono visualizzati i nodi e avere ancora i campi della pagina Indice tassonomia.

Per questo motivo, la pagina della tassonomia sta ancora emettendo i suoi nodi. Posso nasconderli impostando il teaser dei nodi su nascosto, ma carica comunque i nodi (e quindi qualsiasi CSS/Jquery collegato ai nodi anche se i nodi non vengono visualizzati). Come posso eliminare la visualizzazione dei nodi, idealmente dall'interno di template.php?

10
big_smile

Lo so, che voleva una soluzione senza modulo, ma in Drupal 7, c'è un modulo che fa esattamente ciò di cui hai bisogno: Disabilita termine Node Listings

Ti consente di scegliere per vocabolario, se desideri disabilitare l'output del termine elenco.

5

Soluzione di http://www.wardontheweb.com/remove-node-lists-from-taxonomy-pages-in-drupal-7/ funziona bene per me:

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']);
   }
}

Nota: è necessario ripristinare la cache del sito.

8

Devi rimuovere i nodi dalla variabile $ page.

In template.php puoi farlo in questo modo:

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

Nel tuo page.tpl.php usa questo codice:

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

Ciò rimuove i nodi da tutti i vocabolari e i termini. Se si desidera rimuoverli solo a determinati termini o tutti i termini da un vocabolario, utilizzare arg(2) che contiene tid per caricare il termine e quindi aggiornare l'istruzione if.

2

Stavo usando CSS per nascondere le cose della tassonomia, ma impostando la loro visualizzazione su custom e blanking che sembra un'opzione migliore.

0
Joseph Coco

Puoi fare praticamente qualsiasi cosa in template.php, ma questo non è raccomandato. Il punto di usare un CMS è separare dati, comportamento e aspetto. Il file template.php fa parte del livello tematico e dovresti usarlo per regolare lo stile visivo del tuo sito.

Se si desidera regolare il comportamento di un sito (in questo caso: controllare quali elementi vengono visualizzati in un determinato elenco) è necessario modificare il comportamento, quindi installare e configurare i moduli. Se desideri creare elenchi personalizzati di contenuti, il modulo Views è esattamente ciò di cui hai bisogno.

Nel tuo caso (se ho capito bene) vuoi che i campi del termine tassonomia vengano visualizzati sopra l'elenco dei nodi taggati con quel termine. Puoi ricrearlo nella tua vista creando un blocco di viste che prende il termine ID dall'URL e visualizza le informazioni necessarie.

0
marcvangend