Как установить окно поиска Google с предложением на MediaWiki? - PullRequest
3 голосов
/ 15 октября 2010

Я нашел несколько расширений для MediaWiki, которые позволяют разместить окно поиска Google для поиска в Интернете на вашем сайте MediaWiki.Однако ни у одного из них, похоже, нет возможности включить предложить , которая заполняет раскрывающееся меню возможных условий поиска в зависимости от того, что пользователь набрал до сих пор.Как я могу это сделать?

Я разместил это в Stackoverflow, потому что решение, скорее всего, потребует программирования.

К вашему сведению, существующие расширения, которые я нашел: - http://www.mediawiki.org/wiki/Extension:GoogleSiteSearch -http://www.mediawiki.org/wiki/Extension:Google

1 Ответ

2 голосов
/ 15 октября 2010

Сначала вам нужно добавить новый файл в вашу установку MediaWiki. Просто назовите это googleSuggest.php. Вам нужен этот файл из-за междоменных проблем с безопасностью браузера (вы можете поблагодарить разработчиков браузера)

Добавьте следующий код:

<?php
$q = strtolower($_GET["q"]);
if (!$q) return;

$url="http://suggestqueries.google.com/complete/search?qu=".$q;
$text = file_get_contents($url); //Get content from Google suggest
$text=str_replace("window.google.ac.h([\"$q\",[[","",$text); //Remove unwanted portion
$arr_items=explode("],[",$text); //Split and put it in arrary
foreach($arr_items as $items)
{            $arr_item=explode(",",$items);
            $key=$arr_item[0]; //Get the keyword, the arrary will have other details such as no.of resutls also.
            $key=trim($key,"\""); //Use to remove quotes
        if (strpos(strtolower($key), $q) !== false) {
            echo "$key\n";
        }

}
?>

Тогда вам нужно будет скачать jquery с jQuery.com Тогда вам нужно будет получить этот плагин: http://docs.jquery.com/UI/Autocomplete

Тогда вам нужно будет отредактировать раздел заголовка. Добавьте следующие строки.

<script type="text/javascript" src="PATHTOJQUERY.JS"></script>
<script type='text/javascript' src='PATHTOjquery.autocomplete.js'></script>
<link rel="stylesheet" type="text/css" href="PATHTOjquery.autocomplete.css" />

<script type="text/javascript">
var keywords=['qualitypoint','qpt','quality','one','two'];
$().ready(function() {


    $("#q").autocomplete("googleSuggest.php", {
        width: 260,
        selectFirst: false
    });

    $("#q").result(function(event, data, formatted) {
        if (data)
            $(this).parent().next().find("input").val(data[1]);
    });


});</script>

Тогда, где вы хотите, чтобы веб-поиск:

    <form method="get" action="http://google.com/search" autocomplete="off" >
        <p>

            <input type="text" id="q" />
<input type="submit" value="Google Search" />

        </p>
    </form>
...