插件作者:高飞
QQ:56667115
QQ群:61291160
技术支持:www.dtmoban.com
官网: www.dtapi.com
安装步骤
01. 上传api目录到网站根目录覆盖
02. 把下面函数加到 api/extend.func.php
//dtapi.com dtmoban.com 关健词提取函数
function keyup_tag($title,$content='',$flag=' '){
require_once DT_ROOT.'/api/DTapi/app/dtapi.com/keyup/ext/phpanalysis.php';
$alis = new \dtapp\keyup\ext\phpanalysis();
$content = strip_tags($content);
$size = $r->all('size','int',5);
$flag = $r->all('flag','null',' ');
$data = $title.$title.$title.$title.$content;
$alis->LoadDict();
$alis->SetSource($data);
$alis->StartAnalysis(true);
$tags = $alis->GetFinallyKeywords($size); // 获取文章中的五个关键字
$tags = str_replace(',',$flag,$tags);
return $tags;
}
03. 给资讯频道后台添加手动提取tag功能
打开 module\article\admin\template\edit.tpl.php
找到
<tr>
<td class="tl"><span class="f_hid">*</span> 关键词(Tag)</td>
<td><input name="post[tag]" type="text" size="60" value=http://www.dtmoban.com/skin/dtmoban/image/nopic.gif echo $tag;?>"/><?php tips('多个关键词请用空格隔开');?></td>
</tr>
替换成
<tr>
<td class="tl"><span class="f_hid">*</span> 关键词(Tag)</td>
<td><input name="post[tag]" type="text" size="60" value=http://www.dtmoban.com/skin/dtmoban/image/nopic.gif echo $tag;?>" id="tag"/><?php tips('多个关键词请用空格隔开');?> <input type="button" value="提取""tag_up('tag',' ');"></td>
</tr>
在<?php load('clear.js'); ?>的上面 添加如下代码
<script src=http://www.dtmoban.com/skin/dtmoban/image/nopic.gif echo DT_PATH;?>/api/DTapi/app/dtapi.com/keyup/js/keyup.js"></script>
04.给资讯频道会员中心添加
打开 template\模板目录\member\my_article.htm
找到
<tr title="提示:多个关键词请用空格分隔">
<td class="tl">关键词(Tag)</td>
<td class="tr"><input name="post[tag]" type="text" size="60" value="{$tag}"/></td>
</tr>
修改成
<tr title="提示:多个关键词请用空格分隔">
<td class="tl">关键词(Tag)</td>
<td class="tr"><input name="post[tag]" type="text" size="60" value="{$tag}" id="tag"/> <input type="button" value="提取""tag_up('tag',' ');"></td>
</tr>
在 {if $action == 'add' || $action == 'edit'} 的上面 添加如下代码
<script src=http://www.dtmoban.com/skin/dtmoban/image/nopic.gif echo DT_PATH;?>/api/DTapi/app/dtapi.com/keyup/js/keyup.js"></script>
提示:以上方法为通过ajax在页面,手动提取关健词,好处是可以立即看到提取结果,不对的可以立即修改
如果要改成php中自动提取,请参考05
其它频道使用的话,因为没有tag字段,所以需要先小小的二次开发,做出和资讯tag一样的功能,请自行研究修改。
05.php中自动提取
好处是不用每次都点提取按钮,坏处是要信息发布后,然后点修改看结果。
还是以资讯频道为例,因为其它频道没有保存tag的字段功能
找开module/article/article.class.php
找到 function set($post) 函数
搜索 $post = dhtmlspecialchars($post);
在上面添加
$post['tag'] = $post['tag'].keyup_tag($post[title],$content,' ');
06. 在前端页面中实时提取
04 05 是在发布时把信息的关健词抓取出来,保存到数据库里,但是必须要先添加一个 mysql字段,除了文章频道,其它频道使用起来都不方便
需要有一定的php和dt二开基础
所以我们增加06在前端直接调用提取的方法, 使用简单,但是性能不如04 05 方法
0001. 在文章详情页面直接提取
打开前端详情模板,以供应频道详情为例:
template/default/show.htm
在你要调用关健词的位置添加这段代码
{$keytag = keyup_tag($title,$content,',');}
循环调用关健词方法,要位于上面代码的下面
{php $keytags = explode(',',$keytag);}
<div class="keytags">
{loop $keytags $k $tag}
<a href="{$MOD[linkurl]}search.php?kw={$tag}" target="_blank">{$tag}</a>
{/loop}
</div>
根据提取的关健词调用相关文章
{php $keytag = str_replace(',','|',$keytag);}
<!--{$tags=tag("moduleid=$moduleid&condition=status=3 and title REGEXP '$keytag'&order=addtime desc&pagesize=10&template=null");}-->
<div class="keytags">
{loop $tags $k $t}
<a href="{$MOD[linkurl]}search.php?kw={$tag}" target="_blank">{$tag}</a>
{/loop}
</div>
因为是直接查询mysql性能不太好,文章相关度也不是最优,如果要高性能,高相关度,可以购买DT模板堂开发的 分词搜索插件
购买地址:http://www.dtmoban.com/down/1/70.html