0

我正在创建一个多语言 Drupal 站点并尝试实现一个搜索功能,该功能仅以当前语言显示结果,用户正在通过该功能查看该站点。

在 /search/node 使用 Drupals 自己的搜索功能,可以通过“高级搜索”选项选择要搜索的语言,并且效果很好。但是,我不想公开这些语言选择框,我只想让它只自动搜索当前语言。

这样做的最佳选择是什么?

我有一个解决方案,我创建了一个 hook_form_alter 函数,它将语言选择框中的#default_value 设置为当前语言,然后在 css 中隐藏整个“高级选项”。不过,这似乎不太正确。

我认为最干净的解决方案是挂钩 Drupals 表单处理过程并将 ex“语言:en”附加到输入文本,但我无法让它工作。

有谁知道是否可以通过 Drupal 表单相关的更改功能之一来获取输入文本并在 drupal 对其进行最终处理之前对其进行更改?

4

1 回答 1

1

为了具体回答您的问题,在使用“hook_form_alter”时,您有一个名为“$form_state”的引用变量。这会将值存储在表单中,并且将进一步传递任何更改。

还,

我认为设置默认值并隐藏该字段是一个很好的解决方案,只是,如果你隐藏它,你应该在服务器端进行,同时更改表单。您设置默认值的同一字段。像这样:$fieldname['#type'] = 'hidden'。

于 2013-06-10T17:48:26.120 回答