使用 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 搜索查询添加额外的搜索文本的主要内容,如果未能解决你的问题,请参考以下文章

使用 mediawiki api 上传文件需要哪些权限?

MediaWiki:允许用户在私人 wiki 上创建帐户

MediaWiki使用指南

mediawiki 都有哪些应用

ubuntu下mediawiki的使用

MediaWiki的安装与使用