Valahogy érzem, hogy jól fog ez még jönni.. Ha node_displays által szeretnél content taxonomy mezőt listázni, akkor kb az alábbi gyári megoldásokból választhatsz: Linkkel, vagy anélkül. Ezeknek valami ilyesmi lesz a kimenete:
Label: term1
term2
term3
Én ilyet akartam:
Label: term1, term2, term3
Erre viszont nincsen alapértelmezetten formatter (vagy legalábbis én nem találtam..)
Megoldás: Letölteni a custom_formatters modult, az admin/settings/formatters/add oldalon egy 'advanced' típusú új formattert létrehozni, elkeresztelni embernek és gépnek egyaránt, majd bepöttyinteni a következő kódot a phpkód mezőbe:
$output = ''; $count = 0; foreach (element_children($element) as $key) { $output .= theme_content_taxonomy_formatter_link($element[$key]); $count++; if (isset($element[$count])) { $output .= ', '; } } return $output;
És update via boobaa && hosszukalman + megjegyzés. Tényleg eszembe juthatott volna az implode.. Az alapot a theme_views_content_multiple_field() szolgáltatta, abból is egy általam felülírt verzió. Úgyhogy kvázi ennek a lebutítása történt, az eredti függvényben nem mehet imploda a sok extra class miatt, ám itt tényleg ez az ötös.
Kálmántól meg azt tudtam meg, hogy a theme_content_taxonomy_formatter_link() és a theme('content_taxonomy_formatter_link') közötti az, hogy csak a másodikat lehet felülírni sminkben - és ez is teljesen jogos, ezt sem vettem észre, amíg jobban bele nem néztem a theme() függvénybe.
Szóval így a tisztább, szárazabb, boldogabb érzés:
$output = array(); foreach (element_children($element) as $key) { $output[] = theme('content_taxonomy_formatter_link', $element[$key]); } return implode(', ', $output);
Hozzászólások
Köszi fijjúk! :D
Köszi fijjúk! :D
Ez egyszerűbbnek
Ez egyszerűbbnek tűnik:
És akkor már le lehetne
És akkor már le lehetne cserélni ezt:
<?php
$output[] = theme_content_taxonomy_formatter_link($element[$key]);
?>
erre:
<?php
$output[] = theme('content_taxonomy_formatter_link', $element[$key]);
?>
Hozzászólás