ecshop:给文章添加关联文章——添加相关的文章根据当前文章的关键字

1.首先修改SQL语句:注意数据表前缀,我这里使用的是默认前缀 ecs_,你使用的时候要修改成你的数据表前缀

INSERT INTO  `ecs_shop_config` (`id` , `parent_id` , `code` , `type` , `store_range` , `store_dir` , `value` , `sort_order`)
VALUES ( '399',  '3',  'article_related',  'select',  '0,1',  '',  '1',  '1');
ALTER TABLE  `ecs_article` ADD INDEX (  `keywords` );

2.需要增加的新文件:/themes/default/library/article_related.lbi

将以下代码复制另存为article_related.lbi,然后上传到/themes/default/library/目录下(要注意这个文件里面的编码,我的编码是charset=gbk,这里你要改成你程序文件的编码,否则会乱码。如果编码正确文件出现乱码,可以新建记事本,复制代码到记事本里面,把编码改成你的编码后,后缀名改为.lbi,另存为lbi文件就不会乱码了!)
<?php
$sql_where = " where is_open=1 and article_id != '" .$GLOBALS['article']['article_id'] . "' ";
if ( $GLOBALS['_CFG']['article_related'] == '1' )
{
$sql_where .= " and cat_id = '" . $GLOBALS['article']['cat_id'] . "' ";
}
elseif ( $GLOBALS['_CFG']['article_related'] == '0' )
{
//通过关键字关联
if ($GLOBALS['article']['keywords'])
{
  $GLOBALS['article']['keywords'] = str_replace(",",  "," , $GLOBALS['article']['keywords']);
  $key_list=explode(",", $GLOBALS['article']['keywords']);
  $key_id=0;
  $sql_or="";
  foreach ($key_list as $keyword)
  {   
   $sql_or .= $key_id ? " or " : "";
   $sql_or .= " keywords like '%" . trim($keyword) . "%' ";
   $key_id++;
  }
  $sql_or = " ( ". $sql_or ." ) ";
  $sql_where .= " and " . $sql_or ;
}
}
$sql="select article_id, cat_id, title, open_type, file_url from " . $GLOBALS['ecs']->table('article') . " $sql_where limit 0,10 ";
//echo $sql;
$res_art_rel=$GLOBALS['db']->query($sql);
while ( $row_art_rel = $GLOBALS['db']->fetchRow($res_art_rel) )
{
$row_art_rel['url']=$row_art_rel['open_type'] != 1 ? build_uri('article', array('aid'=>$row_art_rel['article_id']), $row_art_rel['title']) : trim($row_art_rel['file_url']);
$art_rel_list[]=$row_art_rel;
}
$GLOBALS['smarty']->assign('art_rel_list', $art_rel_list);
?>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<style>
.art_rel_tit{clear:both;width:98%;font-size:17px;font-weight:bold;padding:8px 0; margin-top:15px; text-align:left; border-bottom:1px solid #ccc;}
.art_rel_box{width:98%;padding:8px 0;}
.art_rel_box ul{width:100%;}
.art_rel_box ul li{float:left;width:300px;height:25px;}
.art_rel_box ul li a{text-decoration:none;color:#000;}
.art_rel_box ul li a:hover{text-decoration:underline;color:#ff3300;}
</style>
<div class="art_rel_tit">相关文章</div>
<div class="art_rel_box">
<ul>
{foreach from=$art_rel_list item=art_rel}
<li>? <a href="{$art_rel.url}" target="_blank">{$art_rel.title}</a></li>
{/foreach}
</ul>
</div>
<div style="clear:both;"><br></div>


第三步、

需要修改的文件:
/languages/zh_cn/admin/shop_config.php
/themes/default/article.dwt

修改细节:
用代码编辑软件(例如:editplus)打开需要修改的文件,

首先打开article.dwt,搜索 “  <!-- {if $article.content } -->{$article.content}<!-- {/if} --> ” ,在下面加上以下代码:
<!-- #BeginLibraryItem "/library/article_related.lbi" --><!-- #EndLibraryItem -->

然后打开shop_config.php,在文件的最后部分加上以下代码:

$_LANG['cfg_name']['article_related'] = '相关文章来源';
$_LANG['cfg_desc']['article_related'] = '设定文章详情页 “相关文章” 如何关联';
$_LANG['cfg_range']['article_related'][0] = '通过关键字关联';
$_LANG['cfg_range']['article_related'][1] = '通过文章类别关联';

OK,完成了~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值