J'ai une vue de page avec des filtres exposés. L'un des filtres est le vocabulaire des termes, et c'est une liste déroulante, l'utilisateur ne peut sélectionner qu'une seule catégorie (terme).
Je veux définir un terme par programme dans la liste déroulante lorsque je viens d'une URL spécifique. J'ai essayé avec views_query_alter
où $category
est tid
.
$set_exposed_input = array();
$set_exposed_input['field_category_tid'] = $category;
if ($set_exposed_input) {
$view->set_exposed_input($set_exposed_input);
}
Réponses:
Pour drupal 7, vous pouvez utiliser
C'est
Pour un exemple complet, vous pouvez essayer ceci:
Une autre façon consiste à utiliser la fonction vues set_option
la source
Définissez la valeur du filtre exposé comme ceci:
la source
avec Drupal 7.54 lorsque vous souhaitez traiter le filtre exposé par programme, voici comment procéder lorsque vous avez un champ à valeurs multiples. La solution pour voir comment passer le filtre exposé est de suivre la façon dont l'URL est créée.
Ici: nom_vue? Alias [1] = 1
Vous pouvez l'exécuter où vous le souhaitez. De préférence à partir du fichier module.
la source