使用 InputBox 向 MediaWiki 搜索查询添加额外的搜索文本
Posted
技术标签:
【中文标题】使用 InputBox 向 MediaWiki 搜索查询添加额外的搜索文本【英文标题】:Adding extra search text to a MediaWiki search query using InputBox 【发布时间】:2012-04-29 15:06:13 【问题描述】:我们正在使用InputBox 扩展名。我们希望有一个使用两个复选框的搜索功能,如下所示:
因此,用户可以不选择任何一个、一个或两个复选框来引用页面上的特定文本。也就是说,如果用户选择“Platform 1.0”,搜索将返回页面上带有“Platform 1.0”的页面。 (实际上:它们将使用特定语义属性返回页面,从而在页面上生成文本。)
所以我们想要一种方法来搜索平台文本和在搜索框中输入的文本。
我们已经尝试过:
将这些页面分类,但我们使用模板(模板中的类别)which does not make them searchable using incategory。 使用命名空间/前缀代码为 InputBox 编写新的 php 代码,但显然这些都使用搜索 API 中的特定词。我们不能将特定的词添加到例如搜索网址。 使用 Semantic 的按属性搜索,但我们无法向该查询添加自定义文本(由用户输入)。非常欢迎提出想法!
【问题讨论】:
【参考方案1】:困难的是,您可以尝试使用 javascript 在选中每个复选框时添加您想要的关键字。像这样:(jQuery 用于舒适,但如果不是一个选项,也可以使用普通 JS):
$("#search").submit(function(e)
var search_value = $('input[type="text"]', this).val();
if ($("#checkbox1").checked) search_value = "SomeValue " + search_value;
if ($("#checkbox2").checked) search_value = "SomeOtherValue " + search_value;
$('#search input[type="text"]').val(search_value);
$(this).submit();
e.preventDefault();
);
注意,如果用户出于某种原因禁用 JavaScript,您的功能将被损坏,这始终是一种不好的做法。仅在您确实提取了所有其他可能性时才使用它。
【讨论】:
我们快速浏览了一下,您的解决方案看起来很棒,但还没有机会进行测试。当我们这样做时,我会在这里发布。谢谢! 我花了很长时间才接受,因为我必须尝试很多才能让它工作,但现在我终于有了(另见链接问题)。非常感谢!以上是关于使用 InputBox 向 MediaWiki 搜索查询添加额外的搜索文本的主要内容,如果未能解决你的问题,请参考以下文章