【问题标题】:Adding extra search text to a MediaWiki search query using InputBox使用 InputBox 向 MediaWiki 搜索查询添加额外的搜索文本
【发布时间】: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 的按属性搜索,但我们无法向该查询添加自定义文本(由用户输入)。

非常欢迎提出想法!

【问题讨论】:

    标签: php search wiki mediawiki semantics


    【解决方案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,您的功能将被损坏,这始终是一种不好的做法。仅在您确实提取了所有其他可能性时才使用它。

    【讨论】:

    • 我们快速浏览了一下,您的解决方案看起来很棒,但还没有机会进行测试。当我们这样做时,我会在这里发布。谢谢!
    • 我花了很长时间才接受,因为我必须尝试很多才能让它工作,但现在我终于有了(另见链接问题)。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 2021-05-19
    • 1970-01-01
    相关资源
    最近更新 更多