Visa block beroende på taxonomi term

Events happening in the community are now at Drupal community events on www.drupal.org.
Gisselsson-gdo's picture

Hej,

Jag har precis satt upp en drupal 6.9 installation och bl.a. skapat en del block.
För att bestämma var blocket ska visas kan jag ju naturligtvis knacka in en massa URLs men jag skulle väldigt gärna göra visningen beroende på taxonomi term. Har hittat lite PHP snippets här och där men ingen som jag fått att funka med 6.9.

Någon därute som har ett bra förslag?

/Calle

PS jag är ingen hejare på kodning... DS

Comments

Kan du utvecklad vad du

solipsist's picture

Kan du utveckla vad du menar med taxonomi-term? Vill du visa termens beskrivning eller innehåll som är taggad term? Är det sökvägar av typ taxonomi/term/tid du vill visa block på?


Jakob Persson - NodeOne

Ja, ledsen om jag var lite

Gisselsson-gdo's picture

Ja, ledsen om jag var lite otydlig. Jag tar ett steg tillbaka och beskriver exakt vad jag är ute efter.

Säg att jag går in på www.mysite.com/admin/content/taxonomy/add/vocabulary
och lägger till taxonomin/vokabulären "sport"
under "sport" listar jag en massa termer tex. "fotboll", "hockey", "varpa" osv som jag kan märka mina artiklar med.

Säg sen att jag skapar ett block som innehåller reklam för fotbollsskor, detta är ju inte så intressant för dem som läser artiklarna om "varpa", men väl för dem som läser artiklarna om "fotboll", men jag kanske har massor av artiklar på min site så istället för att knacka in sökvägarna till alla artiklar som handlar om "fotboll" vill jag på ett enkelt sätt göra så att mitt block om fotbollsskor visas både på taxonomy/term/tid sidan OCH när man går in och läser de enskilda artiklarna om fotboll.

Är detta tydligare?

Det finns faktiskt en

solipsist's picture

Det finns faktiskt en prydlig lösning och den kallas Context. Du kan antingen använda Panels-modulen och dess kontext-funktion eller modulen Context. Med den modulen kan du göra precis detta och mycket därtill.
http://drupal.org/project/context
http://drupal.org/project/panels


Jakob Persson - NodeOne

Det kanske finns någon

henrrrik's picture

Det kanske finns någon modul som löser det här på ett elegant sätt nuförtiden, men här är en snabb och smutsig lösning...

Gå in under respektive blocks inställningar och välj "Visa om följande PHP-kod returnerar TRUE (PHP-läge, bara för experter)." under Sidspecifika inställningar.

Klistra in den här kodsnutten i fältet "Sidor":

<?php
$tid
= 2; // Den aktuella termens id
if (arg(0) == 'node' && is_numeric(arg(1)))
{
 
$nid = arg(1);
  if (
$result = db_fetch_object(db_query("SELECT nid FROM {term_node} WHERE nid=%d AND tid=%d", $nid, $tid))) {
    return
TRUE; // Vi visar blocket
 
}
  else {
    return
FALSE; // Vi visar inte blocket
 
}
}
?>

Du kan se vilket id en term har på adressen till termen (taxonomy/term/id) eller på länkarna till termerna på vokabulärens sida under admin/content/taxonomy.

Tack

Gisselsson-gdo's picture

Som vanligt finns det många vägar till samma stad...

Stort tack för hjälpen!

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week