Mam typ zawartości z polem obrazu. To pole zwykle wypełnia się wartościami od 0 do 4. Domyślnie zwiastun tego typu treści wyświetla wszystkie obrazy od 0 do 4. Jak mogę ustawić zwiastun, aby wyświetlał tylko pierwszy obraz?
14
Utwórz moduł niestandardowy, zastąp MODULENAME
go nazwą modułu i field_image
nazwą pola:
/**
* Implements hook_entity_view().
*/
function MODULENAME_entity_view($entity, $type, $view_mode, $langcode) {
if ($view_mode == 'teaser') {
$entity->content['field_image']['#items'] = array_slice($entity->content['field_image']['#items'], 0, 1);
}
}
Więcej informacji znajduje się w dokumentacji hook_entity_view () .
if ($view_mode == 'teaser' && $entity->type == 'CONTENT_TYPE')
.Nie musisz pisać niestandardowego kodu.
Spróbuj użyć modułu wielokrotnego ograniczenia pola .
.
źródło
Jeśli używasz szablonu zwiastuna (tj .: węzeł - TYP TREŚCI - teaser.tpl.php ), działa to:
źródło
Użyłem hook_field_extra_fields () i hook_node_view (), aby utworzyć nowe pole do wyświetlania pierwszego obrazu, aby nie manipulować oryginalnym polem obrazów.
hook_field_extra_fields () inicjuje nowe pole, które pojawi się na karcie zarządzania wyświetlaniem typu węzła.
Następnie hook_node_view () służy do dodania pierwszego obrazu, który ma być zawartością nowego pola.
UWAGA: Jeśli masz włączony pakiet wyświetlania, możesz to zrobić na karcie zarządzania wyświetlaniem.
źródło