cms
当前位置:首页->使用帮助
帝国CMS6.0整合站内搜索引擎接口
  • 作者:本站
  • 日期:2010-04-27
  • 出处:totcms
  • 点击:1180

本文以帝国CMS6.0为演示说明,其它版本请根据实际情况修改
1、首先安装站内搜索引擎,下载地址:/html/201004-25/20100425102129.htm

2、修改帝国CMS添加文章页面,增加数据索引接口,方法如下:

打开帝国CMS所在文件夹/e/class/hinfofun.php文件,找到第78行:$ccr=$empire->fetch1("select classid,modid,listdt,haddlist,sametitle,addreinfo,wburl,repreinfo from {$dbtbpre}enewsclass where classid='$add[classid]' and islast=1");

修改为:

$ccr=$empire->fetch1("select classid,modid,listdt,haddlist,sametitle,addreinfo,wburl,repreinfo,classpath from {$dbtbpre}enewsclass where classid='$add[classid]' and islast=1");

然后找到第111行://签发

在其前面增加以下代码:

 //索引添加开始
function posttohost($url, $data) {
 $url = parse_url($url);
 if (!$url) return "couldn’t parse url";
 if (!isset($url['port'])) { $url['port'] = ""; }
 if (!isset($url['query'])) { $url['query'] = ""; }

 $encoded = "";

 while (list($k,$v) = each($data)) {
  $encoded .= ($encoded ? "&" : "");
  $encoded .= rawurlencode($k)."=".rawurlencode($v);
 }

 $fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
 if (!$fp) return "Failed to open socket to $url[host]";

 fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'], $url['query'] ? "?" : "", $url['query']));
 fputs($fp, "Host: $url[host]\n");
 fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
 fputs($fp, "Content-length: " . strlen($encoded) . "\n");
 fputs($fp, "Connection: close\n\n");

 fputs($fp, "$encoded\n");

 $line = fgets($fp,1024);
 if (!eregi("^HTTP/1\.. 200", $line)) return;

 $results = ""; $inheader = 1;
 while(!feof($fp)) {
  $line = fgets($fp,1024);
  if ($inheader && ($line == "\n" || $line == "\r\n")) {
   $inheader = 0;
  }
  elseif (!$inheader) {
   $results .= $line;
  }
 }
 fclose($fp);

 return $results;
}
//索引接口参数
$SearchPortal="http://www.test.com/TotIndex.aspx";//搜索引擎索引接口地址
$IndexKey="totsearchengine01";//接口访问key,请通过搜索引擎中的web.config查找
//添加索引
$arrVal["key"] = $IndexKey;
$arrVal["action"] = "insert";
$arrVal["id"] = $id;
$arrVal["Title"] = mb_convert_encoding($add[title], 'utf-8', 'gb2312');
$arrVal["Content"] = mb_convert_encoding($add[newstext], 'utf-8', 'gb2312');
$arrVal["Categoryid"] = $add[classid];
$arrVal["Summary"] = mb_convert_encoding($add[newstext], 'utf-8', 'gb2312');
$arrVal["Photo"] = "";
$arrVal["ModDate"] = date('Y-m-d g:i:s');
$arrVal["LinkUrl"] = "http://".$_SERVER['SERVER_NAME']."/".$ccr[classpath]."/".$newspath."/".$id.".html";
$strTemp = posttohost($SearchPortal, $arrVal);
print_r(mb_convert_encoding($strTemp, 'gb2312', 'utf-8'));
//索引添加结束

经过上面修改后,通过帝国CMS后台添加文章,将会出现以下提示:

附件下载:hinfofun.rar

 成功添加索引:.....................

通过搜索可以看到数据成功索引到搜索引擎中