Ich habe eine Ansicht mit einer Reihe von exponierten Filtern erstellt, aber sie sieht ziemlich hässlich aus.
Ich möchte das Theming verbessern, einschließlich des Einwickelns des Ganzen in ein Feldset sowie des Gruppierens einiger anderer Elemente (wie das Koppeln der veröffentlichten und aktualisierten Eingaben), bin mir aber nicht sicher, wie ich vorgehen soll.
Ich habe versucht, das Formular mit var_dump zu versehen, aber es scheint ewig zu dauern, und mein Browser stürzt ab, sodass ich auf diese Weise nicht einfach etwas über das Formular erfahren kann.
Ich habe auch versucht, das Formular als Fieldset-Kind in ein anderes Formular zu setzen, aber das Abrufen aller Formular-ID-Informationen usw. erwies sich als problematisch (obwohl ich das Fieldset-Styling erhalten habe).
Hat jemand Hinweise?
Aktualisieren:
Ich habe die Vorlage vom Modul in das Themenverzeichnis meiner Site kopiert und einen Anfang gemacht.
<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>
Ich kann anscheinend nicht herausfinden, wie die Datumsfelder gekoppelt werden sollen. Ich muss die Widget-Eigenschaften irgendwie ändern, damit ich sie in HTML einschließen kann (die Verwendung von hook_form_alter funktioniert nicht, da #prefix und #suffix hinzugefügt werden, $widget->widget
damit sie hinzugefügt werden Ausgabe unterbrechen)
views-exposed-form--view_id.tpl.php
oder überschreibenviews-exposed-form--view_id--display_id.tpl.php
- weitere InformationenSchauen Sie sich auch das Modul Better Exposed Filters an . Sie benötigen die Version -dev, um die Option für zusammenklappbare Filter zu erhalten, obwohl ich hoffe, bald eine ordnungsgemäße Version 1.1 herauszubringen ...
quelle
Sie sollten sich ansehen, was in dem
form['#theme']
Artikel enthalten ist. Ein besserer Weg, dies zu tun (besser alsvar_dump()
), wäre die Verwendungdsm($form)
oder sogarkpr($form)
, diese Funktionen werden verfügbar sein, nachdem Sie das Entwicklungsmodul installiert haben ( http://drupal.org/project/devel ).form['#theme']
sollte ein Array von etwa 7 Elementen sein. Diese Elemente sind Namen von Themen-Hooks, die beim Rendern dieses Formulars aufgerufen werden. Sie können sie verwenden, um Ihre eigene Art der Gestaltung eines Formulars zu implementieren.Einer der Gegenstände wird aufgerufen
views_exposed_form__VIEW_NAME__DISPLAY_ID
.In Ihrem Modul (falls vorhanden) sollte eine Implementierung von hook_theme () vorhanden sein.
quelle
In früheren Situationen habe ich Hook_form_alter () verwendet, um Präfix und Suffix hinzuzufügen, um Elemente zu bilden, um sie in div zu verpacken, die dann gestylt werden können. Ich bin mir jedoch nicht sicher, ob ich Feldsätze einschließen soll.
z.B.
quelle
Verwenden Sie Drupals hook_form_FORM_ID_alter, um das Formular zu ändern. Dies hat mein Problem gelöst, meinem Preisfeld ein £ -Zeichen voranzustellen (fügen Sie dies in Ihr benutzerdefiniertes Modul ein):
quelle
Das D7-Modul ( Views Exposed Form Layout ) hilft Ihnen bei der Belichtung von Ansichten.
quelle
Auf der Bearbeitungsseite einer Ansicht können wir die Themeninformationen überprüfen (untere rechte Ecke). Es enthält Informationen zu den Vorlagendateien, die Drupal zum Rendern der verschiedenen Teile der Ansicht auf dem Bildschirm verwendet. Standardmäßig werden die vom Ansichtsmodul (in seinem Themenordner) bereitgestellten Vorlagendateien verwendet. Wenn wir jedoch die Darstellung einer Ansicht ändern möchten, können wir diese Vorlagendateien mit benutzerdefinierten Vorlagendateien überschreiben, die wir in unser Modul einfügen können eigener benutzerdefinierter Themenordner (oder das Thema, das zum Anzeigen dieser Ansicht verwendet werden soll)
Diese Themeninformationen zeigen uns, wie Sie eine Datei entsprechend der Hierarchie benennen (oder den Umfang der Auswirkung der Vorlagendatei, die Sie überschreiben möchten, um die eigenen Vorlagen der Ansichten zu überschreiben).
In diesen Themeninformationen werden möglicherweise nicht alle Vorlagendateien angezeigt, die die Ansicht zum Rendern dieser bestimmten Ansicht verwendet.
Gehen Sie also zu sites / all / modules / views / theme und kopieren Sie die Datei views-exponed-form.tpl.php (da wir in diesem Fall die Standardeinstellung für das Rendern von Filtern überschreiben möchten!) und fügen Sie sie in Ihren eigenen Themenordner ein. Jetzt müssen Sie dieselbe Methode anwenden, um die Auswirkung dieser überschreibenden Vorlagendatei zu steuern, die Sie in Ihren eigenen Themenordner eingefügt haben, indem Sie sie entsprechend umbenennen. zB Ansichten-Exposed-Form - Ihr Ansichts-Namensfenster name.tpl.php (Sie werden die Nomenklatur verstehen, indem Sie sich das Thema ansehen: Informationen auf der Bearbeitungsseite der Ansicht)
Jetzt können Sie einzelnen Widgets (die von Filterhandlern generiert werden) in dieser Vorlagendatei CSS hinzufügen. Diese Einstellungen werden auf die Filter angewendet.
Besuchen Sie http://eureka.ykyuen.info/2011/07/25/drupal-theme-the-exposed-filter-in-views/
quelle