Drupal Views2 Ausgesetzt Form zu wechseln, wie
Ich habe eine View mit einem exposed form . Ich bin versucht, ein paar Dinge auf. Idealerweise würde ich gerne eine dropdown-Liste, feuert das Formular mit "Nein". Wenn das nicht möglich ist dann würde ich gerne den text der Schaltfläche, die etwas anderes als gelten.
Ich gehackt es für jetzt und ändern views_form in Aussicht.Modul, aber das scheint nicht der richtige Weg, es zu tun. Ich habe nur eine offene form, was aber wenn ich weitere hinzufügen?
Finden Sie http://www.wiredvillage.ca/News für mein Beispiel.
Ich bin stochern drupal.org und Sie sieht, wie andere mit dem gleichen problem, aber keine Lösungen bisher. Nicht sicher, wo der beste Ort, um Drupal zu helfen ist.
Hier ist die änderung, die ich bisher gemacht:
function views_exposed_form(&$form_state) {
//Make sure that we validate because this form might be submitted
//multiple times per page.
$form_state['must_validate'] = TRUE;
$view = &$form_state['view'];
$display = &$form_state['display'];
$form_state['input'] = $view->get_exposed_input();
//Let form plugins know this is for exposed widgets.
$form_state['exposed'] = TRUE;
$form['#info'] = array();
if (!variable_get('clean_url', FALSE)) {
$form['q'] = array(
'#type' => 'hidden',
'#value' => $view->get_url(),
);
}
//Go through each filter and let it generate its info.
foreach ($view->filter as $id => $filter) {
$view->filter[$id]->exposed_form($form, $form_state);
if ($info = $view->filter[$id]->exposed_info()) {
$form['#info']['filter-' . $id] = $info;
}
}
//I CHANGED The VALUE OF THIS SUBMIT BUTTON TO GO
$form['submit'] = array(
'#name' => '', //prevent from showing up in $_GET.
'#type' => 'submit',
'#value' => t('go'),
);
$form['#action'] = url($view->get_url());
$form['#theme'] = views_theme_functions('views_exposed_form', $view, $display);
$form['#id'] = views_css_safe('views_exposed_form-' . check_plain($view->name) . '-' . check_plain($display->id));
// $form['#attributes']['class'] = array('views-exposed-form');
//If using AJAX, we need the form plugin.
if ($view->use_ajax) {
drupal_add_js('misc/jquery.form.js');
}
views_add_js('dependent');
return $form;
}
InformationsquelleAutor Brian G | 2009-01-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, in der Dropdown-Feuer, würde ich JavaScript verwenden, anstatt hacken das Modul als Eaton schlägt.
Grundsätzlich können Sie den text ändern mit hook_form_alter als Eaton schlägt, dann verwenden Sie in der gleichen hook_form_alter, fügen Sie einen Aufruf von drupal_add_js mit Ihrem benutzerdefinierten JS verbirgt die-Taste und sendet das Formular auf der onChange-handler für die select-drop-down. Sie wollen, dass submit-button gibt es für die 10% der Anwender, für die die JS Fehler.
Haben Sie, ändern Sie die select-drop-down-hinzufügen einer onChange-handler?
Nur wenn Sie die entfernen-Taste, ansonsten gibt es keine Möglichkeit für Drupal, um zu wissen, die Ansicht ausgesetzt-filter wurde aktualisiert. Sie nicht brauchen, um die Seite senden, obwohl, wenn Sie sind das laden der Daten per Ajax, Sie könnten in der Lage sein, um hook in das, aber eine Art onChange-handler wird notwendig sein.
InformationsquelleAutor David Wees
Oder könnten Sie ein Vorverarbeiten Funktion zum ändern der form, noch bevor Sie es bauen. Ich wollte ändern Sie den text auf der Schaltfläche, also Tat ich dies:
InformationsquelleAutor
Beide der oben genannten sind gut, aber ich fand heraus, dass die Veränderung der form vielleicht nicht immer zu den gewünschten Ergebnissen führen, vor allem, weil die exponierten Filter werden Themen mit einem spezifischen Thema-template. Der richtige Weg, das zu ändern das Thema wäre das überschreiben der
views-exposed-form.tpl
- Datei in Ihrem theme-Ordner. Beachten Sie, dass dies für alle gelten exponierten filter bildet, um Thema, eine bestimmte, müssen Sie einen anderen Namen verwenden, für die, die mit dem Namen, wie:und einige andere, können Sie die Thema: Informationen Abschnitt Ihrer Ansichten für die Vorlage Namenskonventionen.
InformationsquelleAutor Mescalito
Bietet dieses Modul eine auto-submit unter anderem http://drupal.org/project/views_hacks
Dieses Modul ist ideal zur Verbesserung der exponierten Filter http://drupal.org/project/better_exposed_filters
InformationsquelleAutor doublejosh
Sollten Sie in der Lage sein zu verwenden hook_form_alter () ( http://api.drupal.org/api/function/hook_form_alter ), die form zu ändern, wie es gebaut wird, ändern Sie die Felder in Frage, wenn bestimmte Ansicht angezeigt wird. Sie können nuke den Absenden-button, fügen Sie ein #Thema-Funktion, die ruft die drupal_add_js () - Funktion, und so weiter.
Solange die GET-params in die Quere kommen Ansichten von Ihnen erwarten, alles funktioniert Prima-es war entworfen, um zu erlauben, bookmarking-Seiten mit exposed filter-Einstellungen, etc. Der wichtige Teil ist, um sicherzustellen, du machst die form mangeln in Ihrem eigenen Modul hook_form_alter () - Funktion, so dass es nicht machen, andere Ansichten getrieben Zeug ersticken.
InformationsquelleAutor Eaton