Drupal Views2 Exposés Forme comment changer
J'ai Vue avec un exposé de la forme . Je suis en train d'un peu de choses sur elle. Idéalement, je voudrais avoir une liste déroulante qui déclenche le formulaire avec le bouton non. Si cela n'est pas possible j'aimerais avoir le texte du bouton quelque chose de différent que de l'appliquer.
J'ai piraté pour l'instant et le changement views_form dans les vues.module mais qui ne semble pas être la bonne façon de le faire. Je n'ai qu'un exposé forme en ce moment, mais si je ajouter de plus?
Veuillez voir http://www.wiredvillage.ca/News pour mon exemple.
Je suis farfouillé drupal.org et de voir d'autres avec le même problème mais pas de solution jusqu'à présent. Vous ne savez pas où le meilleur endroit pour obtenir Drupal de l'aide.
Ici, c'est le changement que j'ai fait jusqu'à présent:
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;
}
OriginalL'auteur Brian G | 2009-01-16
Vous devez vous connecter pour publier un commentaire.
Si vous voulez la liste déroulante pour le feu, je voudrais utiliser du JavaScript au lieu de piratage du module Eaton suggère.
Fondamentalement, vous pouvez modifier le texte avec hook_form_alter comme Eaton suggère, ensuite utiliser dans le même hook_form_alter, ajoutez un appel à drupal_add_js avec votre custom JS qui cache le bouton et soumet le formulaire sur le onChange gestionnaire de la liste déroulante. Vous voulez que le bouton soumettre pour ceux de 10% des utilisateurs dont le JS échoue.
Avez-vous modifier le sélectionner déroulante pour ajouter un onChange gestionnaire?
Seulement si vous retirez le bouton, sinon il n'y a aucun moyen pour Drupal pour connaître le point de vue de l'exposé de filtre a été mis à jour. Vous n'avez pas besoin de soumettre la page, si vous chargez les résultats via Ajax, vous pourriez être en mesure de crochet, mais une sorte de onChange gestionnaire va être nécessaire.
OriginalL'auteur David Wees
Ou, vous pouvez utiliser un prétraitement de la fonction de modification de la forme avant même qu'il est à construire. Je voulais changer le texte du bouton, j'ai donc fait ceci:
OriginalL'auteur
Les deux sont bien, mais j'ai trouvé que la modification de la forme peut ne pas toujours conduire à des résultats souhaitables, principalement parce que les exposés des filtres à thème à l'aide d'une certaine thème de modèle. La bonne façon de changer le thème serait de remplacer la
views-exposed-form.tpl
fichier dans votre dossier du thème. Gardez à l'esprit que cela s'applique à tous les exposés filtre de formes, de thème spécifique, vous aurez besoin d'utiliser un nom différent pour le nom de fichier, comme:et quelques autres, vous pouvez vérifier la Thème: l'Information la section de votre point de vue de modèle de conventions de dénomination.
OriginalL'auteur Mescalito
Ce module fournit une auto-submit entre autres choses http://drupal.org/project/views_hacks
Ce module est idéal pour améliorer les exposés des filtres http://drupal.org/project/better_exposed_filters
OriginalL'auteur doublejosh
Vous devriez être en mesure d'utiliser hook_form_alter() (http://api.drupal.org/api/function/hook_form_alter) pour modifier le formulaire tel qu'il est construit, en modifiant les champs en question lors de ce point de vue particulier qui est affiché. Vous pouvez nuke sur le bouton soumettre, ajouter un #thème de la fonction qui appelle la drupal_add_js() de la fonction, et ainsi de suite.
Tant que GET params venir dans le chemin du point de vue attendons d'eux, tout fonctionnera correctement-il a été conçu de cette façon afin de permettre de signets de pages avec des exposés des paramètres de filtre, etc. L'important est de s'assurer que vous êtes en train de faire la forme d'amputation dans votre propre module de hook_form_alter() de la fonction, de sorte qu'il ne fera pas d'autres points de vue conduit stuff starter.
OriginalL'auteur Eaton