2010-10-15 78 views
3

我發現了MediaWiki的一些擴展,它允許你在你的MediaWiki網站上放置一個Google搜索框來搜索網頁。但是,他們似乎沒有一個選項可以啓用建議,該選項根據用戶迄今輸入的內容填充可能的搜索項的下拉菜單。我怎樣才能做到這一點?如何在MediaWiki上安裝帶有建議的Google搜索框?

我發佈到Stackoverflow,因爲解決方案很可能需要編程。

僅供參考,我發現現有的擴展名是: - http://www.mediawiki.org/wiki/Extension:GoogleSiteSearch - http://www.mediawiki.org/wiki/Extension:Google

回答

2

首先,你需要一個新的文件添加到您的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.com 下載的jQuery然後你需要得到這個插件: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>