私はフォームが公開されたビューを持っています。私はそれにいくつかのことを試みています。理想的には、ボタンなしでフォームを起動するドロップダウンが必要です。それが不可能な場合は、ボタンのテキストを適用とは異なるものにしたいと思います。
とりあえずハッキングして、views.module の views_form を変更しましたが、それは正しい方法ではないようです。現在公開されているフォームは 1 つだけですが、さらに追加するとどうなりますか?
私の例については、 http://www.wiredvillage.ca/Newsを参照してください。
私は drupal.org をいじっていますが、同じ問題を抱えている他の人を見ていますが、これまでのところ解決策はありません。Drupal のヘルプを得るのに最適な場所がわからない。
これまでに行った変更は次のとおりです。
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;
}