Skriva ut Taxonomy terms vid sök

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

Vid en sökning på en sajt som jag bygger så skulle jag behöva skriva ut alla de taxonomy terms som varje artikel har, vilka sätt finns det att göra detta på ett enkelt sätt?

Comments

Hej

vikom's picture

Kan du vara lite mer specifik på vad du vill göra?

  1. Det jag tror du menar: Du vill att när man sökt efter artiklar så listas träffarna och där vill du att artiklarnas taxonomy terms ska finnas med?
  2. Eller vill du att alla taxonomy terms som artiklarna har ska listas på sidan för sökning?

Lösningar:

  1. Om artiklarna är en egen innehållstyp och du kör cck kan du ställa in taxonomy efter ett cck-fält sedan kan du välja att visa fältet när noden ses som teaser. Kolla cck tilläggsmodulen content taxonomy.

  2. Använd Views och skapa ett block. Ställ in så att taxonomi-termer för din innehållstyp visas. Du kan också kolla på views cloud modulen om du vill ha det i ett annat format.

Hoppas att det hjälpte.

Viktor Miranda | NodeOne

Content Taxonomy eller mallfil

zoo33's picture

Hej Mikke!

När det gäller Viktors lösning 1 skulle jag nog säga att det spelar ingen roll för sökresultatsidan vad man ger fälten för Display setting för teasers. Det är inte vanliga teasers man ser på söksidan. Däremot finns det en Sök-flik under Display settings där man kan ange vilka fält som ska indexeras och vilka som ska visas i resultaten. Men det kräver som Viktor skriver att du använder Content Taxonomy för att koppla termerna till noderna.

Om man vill använda standardsystemet för taxonomier, eller om man föredrar att styra visningen med en mallfil, så kan man använda filen search-result.tpl.php som man kopierar till sitt tema på sedvanligt sätt. Högst upp i filen står en massa tillgängliga variabler angivna, men det som inte nämns där är variabeln $result, vilket är en array som bland annat innehåller $result['node'], $result['node']->taxonomy osv.

Lykka till!!!

/ Hannes Lilljequist – SthlmConnection

Tack

misc's picture

Ah , tack.

Hannes - $result var precis vad jag behövde, tack!

så här gjorde jag

// $result['node']->taxonomy har info om alla taxonomiers id som ingår, samla dem i en ny array,
$taxNumberArray = $result['node']->taxonomy;
$termKeys = array_keys($taxNumberArray);
//lagra namnen på taxonomierna i en ny array, termarray
foreach ( $termKeys as $tid ) {
$termarray[] = $result['node']->taxonomy[$tid]->name;
}
//skriv ut dem med ett komma och ett mellanslag emellan

print implode(", ", $termarray);

Förresten - finns det någon dokumentation kring vad som mer finns tillgängligt att använda sig av?

/* Mikke Schirén, https://digitalist/ */

preprocess-funktioner

zoo33's picture

Det verkar inte som det finns så mycket dokumentation om det förutom det som står i kommentarerna högst upp i filen. Det säkraste sättet att få veta vilka variabler som finns är att undersöka variabeln $variables i mallens motsvarande preprocess-funktion. (Eller: använd en debugger och sätt en breakpoint i mallen.)

Kan inte säga exakt på rak arm, men du bör kunna skapa en funktion som heter typ {temanamn}_preprocess_search_result(&$variables). $variables är en array som innehåller det som blir till enskilda variabler i mallfilen. Så du kan dels undersöka den variabeln och dels modifiera den om du vill.

Din kod ovan bor kanske helst i en preprocess-funktion faktiskt, så du kan alltså skapa t ex $variables['mina_taxonomier'] och sen skriva ut dem i mallen som $mina_taxonomier. Snyggt och prydligt! Drupalgudarna ler.

/ Hannes Lilljequist – SthlmConnection

$variables var mycket

misc's picture

$variables var mycket användbar, den öppnar upp en hel dörrar. preprocess-funktion för det bli :-)

/* Mikke Schirén, https://digitalist/ */

Sweden

Group notifications

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