Posted by Gisselsson-gdo on February 11, 2009 at 7:47pm
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
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
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Ja, ledsen om jag var lite
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
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
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Det kanske finns någon
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
Som vanligt finns det många vägar till samma stad...
Stort tack för hjälpen!