Stworzyłem widok z wieloma odsłoniętymi filtrami, ale wygląda dość brzydko.
Chciałbym poprawić temat, w tym zawinąć całość w zestaw pól, a także pogrupować niektóre inne elementy (takie jak parowanie opublikowanych i zaktualizowanych danych wejściowych), ale nie jestem pewien, jak sobie z tym poradzić.
Próbowałem var_dump formularza, ale wydaje się, że trwa on wiecznie, a moja przeglądarka blokuje się, więc nie mogę łatwo dowiedzieć się niczego o formularzu w ten sposób.
Próbowałem również umieścić formularz jako dziecko zestawu pól w innej formie, ale uzyskanie wszystkich informacji o identyfikatorze formularza i tak dalej okazało się problematyczne (chociaż dostałem stylizację zestawu pól).
Czy ktoś ma jakieś wskazówki?
Aktualizacja:
Skopiowałem szablon z modułu do katalogu motywów mojej witryny i zacząłem.
<fieldset>
<legend>Filters</legend>
<div class="views-exposed-form">
<div class="views-exposed-widgets clear-block">
<?php foreach($widgets as $id => $widget): ?>
<div class="views-exposed-widget">
<?php if (!empty($widget->label)): ?>
<label for="<?php print $widget->id; ?>">
<?php print $widget->label; ?>
</label>
<?php endif; ?>
<?php if (!empty($widget->operator)): ?>
<div class="views-operator">
<?php print $widget->operator; ?>
</div>
<?php endif; ?>
<div class="views-widget">
<?php print $widget->widget; ?>
</div>
</div>
<?php endforeach; ?>
<div class="views-exposed-widget">
<?php print $button ?>
</div>
</div>
</div>
</fieldset>
I nie wydaje się, aby dowiedzieć się, jak powiązać się pola date - Muszę jakoś zmodyfikować właściwości widgetów więc mogę zawinąć je w HTML (używając hook_form_alter nie działa, ponieważ #prefix i #suffix dodaje się $widget->widget
więc przerwać wyjście)
views-exposed-form--view_id.tpl.php
lubviews-exposed-form--view_id--display_id.tpl.php
, lub więcej informacjiZobacz także moduł Better Exposed Filters . Będziesz potrzebować wydania -dev, aby uzyskać opcję zwijanych filtrów, ale mam nadzieję, że wkrótce wydam właściwe wydanie 1.1 ...
źródło
Powinieneś sprawdzić, co jest w
form['#theme']
elemencie. Lepszym sposobem na to (lepszym niżvar_dump()
) byłoby użyciedsm($form)
lub nawetkpr($form)
, te funkcje będą dostępne po zainstalowaniu modułu devel ( http://drupal.org/project/devel ).form['#theme']
powinna być tablicą około 7 elementów. Te elementy to nazwy zaczepów kompozycji, które są wywoływane podczas renderowania tej formy. możesz ich użyć do zaimplementowania własnego stylu tworzenia motywów w formularzu.Jeden z przedmiotów zostanie nazwany
views_exposed_form__VIEW_NAME__DISPLAY_ID
.W twoim module (jeśli go masz) powinna być implementacja hook_theme ()
źródło
W poprzednich sytuacjach użyłem Hook_form_alter (), aby dodać prefiks i sufiks, aby utworzyć elementy, aby zawinąć je w div, które można następnie stylizować. Nie jestem jednak pewien co do zawijania w zestawach pól.
na przykład.
źródło
Użyj hook_form_FORM_ID_alter Drupala, aby zmodyfikować formularz. To rozwiązało mój problem z prefiksem znaku £ w polu ceny (umieść to w swoim module niestandardowym):
źródło
Moduł układu odsłoniętego widoku (D7) pomoże ci z widokami odsłoniętymi z tematów.
źródło
na stronie edycji widoku możemy sprawdzić informacje o motywie (prawy dolny róg). Podaje informacje dotyczące plików szablonów używanych przez Drupal do renderowania różnych części widoku na ekranie. Domyślnie używane są pliki szablonów dostarczone przez moduł widoków (w folderze motywu), ale w przypadku, gdy chcemy zmodyfikować sposób wyświetlania widoku, możemy zastąpić te pliki szablonów niestandardowymi plikami szablonów, które możemy umieścić w naszym własny niestandardowy folder motywów (lub motyw, który będzie używany do wyświetlenia tego widoku)
Te informacje o motywie pokazują nam, jak nazwać plik zgodnie z hierarchią (lub zakresem efektu pliku szablonu, który zastąpisz własne szablony widoków).
Teraz te informacje o kompozycji mogą nie pokazywać wszystkich plików szablonów używanych przez widok do renderowania tego konkretnego widoku.
więc przejdź do strony / all / modules / views / theme i skopiuj views -posed-form.tpl.php (ponieważ w tym przypadku chcemy zastąpić domyślne ustawienia renderowania filtrów!) i wkleić go do własnego folderu motywów, teraz musisz zastosować tę samą metodę, aby kontrolować efekt tego nadpisującego pliku szablonu, który umieściłeś w swoim własnym folderze motywu, odpowiednio zmieniając jego nazwę. np. views -posed-form - twoja nazwa panelu widoku name.tpl.php (nomenklaturę zrozumiesz patrząc na motyw: informacje na stronie edycji widoku)
teraz możesz dodać css do poszczególnych widżetów (generowanych przez programy obsługi filtrów) w tym pliku szablonu, a te ustawienia zostaną zastosowane do filtrów.
odwiedź http://eureka.ykyuen.info/2011/07/25/drupal-theme-the-exposed-filter-in-views/
źródło