ecshop关键词自动内链插件

功能描述:

1、后台可以直接控制关键词、关键词对应链接、内链次数。

2、添加关键词后,文章详情页和商品详情页会根据关键词自动增加内链。

使用优势:

此插件非常符合搜索引擎习惯,使网站形成一个链接网,蜘蛛会顺着链接爬行,这样能收录很多的页面,是众多seoer的首选插件。

操作开始

1,添加表 ecs_content_key

CREATE TABLE IF NOT EXISTS `ecs_content_key` (
  `key_id` smallint(5) NOT NULL AUTO_INCREMENT,
  `key_name` varchar(255) NOT NULL,
  `sort_order` tinyint(3) unsigned NOT NULL DEFAULT '50',
  `replace_num` tinyint(3) unsigned NOT NULL,
  `key_url` varchar(255) NOT NULL,
  PRIMARY KEY (`key_id`),
  KEY `sort_order` (`sort_order`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

2,后台添加 关键词设置

1)后台目录下添加一个 content_key.php

<?php

/**
 * ECSHOP 管理中心 关键词 管理
 * ============================================================================
 * 版权所有 2005-2010 上海商派网络科技有限公司,并保留所有权利。
 * 网站地址: http://www.ecshop.com;
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
 * 使用;不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 * $Author: liuhui $
 * $Id: auction.php 17063 2010-03-25 06:35:46Z liuhui $
 */

define('IN_ECS', true);
require(dirname(__FILE__) . '/includes/init.php');
require(ROOT_PATH . 'includes/lib_goods.php');


/*------------------------------------------------------ */
//-- 关键词 列表页
/*------------------------------------------------------ */

if ($_REQUEST['act'] == 'list')
{
    /* 检查权限 */
    admin_priv('article_manage');

    /* 模板赋值 */
    $smarty->assign('full_page',   1);
    $smarty->assign('ur_here',     '关键词列表');
    $smarty->assign('action_link', array('href' => 'content_key.php?act=add', 'text' => '添加关键词'));

    $ckey_list = content_key_list();
	$smarty->assign('ckey_list',   $ckey_list['content']);
    $smarty->assign('filter',       $ckey_list['filter']);
    $smarty->assign('record_count', $ckey_list['record_count']);
    $smarty->assign('page_count',   $ckey_list['page_count']);

    assign_query_info();
    $smarty->display('content_key_list.htm');
}

/*------------------------------------------------------ */
//-- 翻页,排序
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'query')
{
    check_authz_json('article_manage');

    $ckey_list = content_key_list();

    $smarty->assign('ckey_list',    $ckey_list['content']);
    $smarty->assign('filter',          $ckey_list['filter']);
    $smarty->assign('record_count',    $ckey_list['record_count']);
    $smarty->assign('page_count',      $ckey_list['page_count']);

    $sort_flag  = sort_flag($ckey_list['filter']);
    $smarty->assign($sort_flag['tag'], $sort_flag['img']);

    make_json_result($smarty->fetch('content_key_list.htm'), '',
        array('filter' => $ckey_list['filter'], 'page_count' => $ckey_list['page_count']));
}

/*------------------------------------------------------ */
//-- 关键词 增加与修改
/*------------------------------------------------------ */

elseif ($_REQUEST['act'] == 'add')
{
	/* 检查权限 */
    admin_priv('article_manage');

     /* 模板赋值 */
    $smarty->assign('ur_here',      "添加关键词");
    $smarty->assign('action_link',  array('href' => 'content_key.php?act=list', 'text' => '关键词列表'));
    $smarty->assign('form_act',     'insert');

    /* 显示页面 */
    assign_query_info();

	$smarty->display('content_key_info.htm');

}

/*------------------------------------------------------ */
//-- 关键词添加时的处理
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'insert')
{
    /* 权限检查 */
    admin_priv('article_manage');

    /* 初始化变量 */
    $conkey['key_id']       = !empty($_POST['key_id'])       ? intval($_POST['key_id'])     : 0;
    $conkey['sort_order']   = !empty($_POST['sort_order'])   ? intval($_POST['sort_order']) : 0;
    $conkey['key_name']     = !empty($_POST['key_name'])     ? trim($_POST['key_name'])     : '';
	$conkey['key_url']     = !empty($_POST['key_url'])     ? sanitize_url($_POST['key_url'])     : '';
	$conkey['replace_num']     = !empty($_POST['replace_num'])     ? intval($_POST['replace_num'])  : 0;

    if (content_key_exists($conkey['key_name']))
    {
        /* 不能有重复的关键词 */
       $link[] = array('text' => $_LANG['go_back'], 'href' => 'javascript:history.back(-1)');
       sys_msg($_LANG['catname_exist'], 0, $link);
    }

    /* 入库的操作 */
    if ($db->autoExecute($ecs->table('content_key'), $conkey) !== false)
    {

        clear_cache_files();    // 清除缓存

        /*添加链接*/
        $link[0]['text'] = '继续添加';
        $link[0]['href'] = 'content_key.php?act=add';

        $link[1]['text'] = '关键词列表';
        $link[1]['href'] = 'content_key.php?act=list';

        sys_msg('关键词添加成功', 0, $link);
    }
 }

 /*------------------------------------------------------ */
//-- 编辑关键词信息
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'edit')
{
	$key_id = intval($_REQUEST['key_id']);
    $conkey_info = get_content_key($key_id);  // 查询分类信息数据
	$smarty->assign('ur_here',     "关键词修改");
    $smarty->assign('action_link', array('text' => "关键词列表", 'href' => 'content_key.php?act=list'));

    $smarty->assign('conkey_info',    $conkey_info);
    $smarty->assign('form_act',    'update');

    /* 显示页面 */
    assign_query_info();
    $smarty->display('content_key_info.htm');
}

 /*------------------------------------------------------ */
//-- 更新关键词信息
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'update')
{
	 /* 初始化变量 */
    $key_id              = !empty($_POST['key_id'])       ? intval($_POST['key_id'])     : 0;
    $old_key_name        = $_POST['old_key_name'];
    $conkey['sort_order']   = !empty($_POST['sort_order'])   ? intval($_POST['sort_order']) : 0;
    $conkey['key_name']     = !empty($_POST['key_name'])     ? trim($_POST['key_name'])     : '';
	$conkey['key_url']     = !empty($_POST['key_url'])     ? sanitize_url($_POST['key_url'])  : '';
	$conkey['replace_num']     = !empty($_POST['replace_num'])     ? intval($_POST['replace_num'])  : 0;

    /* 判断关键词是否重复 */

    if ($conkey['key_name'] != $old_key_name)
    {
        if (content_key_exists($conkey['key_name']))
        {
           $link[] = array('text' => "返回", 'href' => 'javascript:history.back(-1)');
           sys_msg('该关键词已经存在', 0, $link);
        }
    }

	if ($db->autoExecute($ecs->table('content_key'), $conkey, 'UPDATE', "key_id='$key_id'"))
    {
		/* 更新关键词信息成功 */
        clear_cache_files(); // 清除缓存

        /* 提示信息 */
        $link[] = array('text' => "返回列表页", 'href' => 'content_key.php?act=list');
        sys_msg("关键词修改成功", 0, $link);
	}

}

 /*------------------------------------------------------ */
//-- 删除关键词
/*------------------------------------------------------ */
if ($_REQUEST['act'] == 'remove')
{

    /* 初始化关键词ID并取得关键词名称 */
    $key_id   = intval($_GET['key_id']);


        /* 删除分类 */
        $sql = 'DELETE FROM ' .$ecs->table('content_key'). " WHERE key_id = '$key_id' ";
		$db->query($sql);

  //清除缓存

    $url = 'content_key.php?act=list&' . str_replace('act=remove', '', $_SERVER['QUERY_STRING']);
    ecs_header("Location: $urln");
    exit;
}



/*------------------------------------------------------ */
//-- PRIVATE FUNCTIONS
/*------------------------------------------------------ */

/**
 * 获取关键词列表
 *
 * @access  public
 * @return  array
 */
function content_key_list()
{
    $result = get_filter();
    if ($result === false)
    {
        /* 分页大小 */
        $filter = array();

        /* 记录总数以及页数 */
       $sql = "SELECT COUNT(*) FROM ".$GLOBALS['ecs']->table('content_key');
        $filter['record_count'] = $GLOBALS['db']->getOne($sql);

        $filter = page_and_size($filter);

        /* 查询记录 */
        $sql = "SELECT * FROM ".$GLOBALS['ecs']->table('content_key')." ORDER BY sort_order ASC";
        set_filter($filter, $sql);
    }
    else
    {
        $sql    = $result['sql'];
        $filter = $result['filter'];
    }

    $res = $GLOBALS['db']->selectLimit($sql, $filter['page_size'], $filter['start']);

    $arr = array();
    while ($rows = $GLOBALS['db']->fetchRow($res))
    {
         $arr[] = $rows;
    }

    return array('content' => $arr, 'filter' => $filter, 'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']);
}

/**
* 检查关键词是否已经存在
*
 * @param   string      $key_name       关键词名称
*
*	@return  boolean
*/
function content_key_exists($key_name)
{
    $sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('content_key').
    " WHERE  key_name = '$key_name' ";
 return ($GLOBALS['db']->getOne($sql) > 0) ? true : false;

 }

/**
 * 获得某个关键词的所有信息
 *
 * @param   integer     $key_id     指定的关键词ID
 * @return  mix
 */
function get_content_key($key_id)
{
    $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('content_key'). " WHERE key_id='$key_id' LIMIT 1";
    return $GLOBALS['db']->getRow($sql);
}
?>

2)/admin/includes/inc_menu.php 里面添加链接

$modules['11_system']['01_content_key']             = 'content_key.php?act=list';

3)/admin/includes/inc_priv.php 里面添加权限

$purview['01_content_key']       = 'content_key';

4)/languages/zh_cn/admin/common.php 里面添加语言

$_LANG['01_content_key'] = '关键词设置';

5)添加以下2个后台 关键词 的模板文件

/admin/templates/content_key_info.htm
/admin/templates/content_key_list.htm

3,修改PHP处理

1)/goods.php 找到  164行

if ($goods['brand_id'] > 0)

在它的上面加入

/* 关键字替换 By neo */
$sql="select * from ". $GLOBALS['ecs']->table('content_key') ;
$res_k = $GLOBALS['db']->query($sql);
while ($row_k=$GLOBALS['db']->fetchRow($res_k))
{
	if($row_k['replace_num'])
	{
		$goods['goods_desc']=preg_replace('/(?!<[^>]*)'.$row_k['key_name'].'(?![^<]*>)/i', '<a href="' . $row_k['key_url'] . '" target="_blank" >'.$row_k['key_name']."</a>", $goods['goods_desc'], $row_k['replace_num']);
	}
	else
	{
		$goods['goods_desc']=preg_replace('/(?!<[^>]*)'.$row_k['key_name'].'(?![^<]*>)/i', '<a href="' . $row_k['key_url'] . '" target="_blank" >'.$row_k['key_name']."</a>", $goods['goods_desc']);
	}
	$goods['goods_desc']=preg_replace('/(?!<[^>]*)'.$row_k['key_name'].'(?![^<]*>)/i', '<strong>' . $row_k['key_name'] . '</strong>', $goods['goods_desc'],1 );
}

2)/article.php 里面找到

/* 作者信息如果为空,则用网站名称替换 */
if (empty($row['author']) || $row['author'] == '_SHOPHELP')
{
	$row['author'] = $GLOBALS['_CFG']['shop_name'];
}

在它的下面加入

/* 关键字替换 By neo */
$sql="select * from ". $GLOBALS['ecs']->table('content_key') ;
$res_k=$GLOBALS['db']->query($sql);
while ($row_k=$GLOBALS['db']->fetchRow($res_k))
{
	if($row_k['replace_num'])
	{
		$row['content']=preg_replace('/(?!<[^>]*)'.$row_k['key_name'].'(?![^<]*>)/i', '<a href="' . $row_k['key_url'] . '" target="_blank" >'.$row_k['key_name']."</a>", $row['content'], $row_k['replace_num']);
	}
	else
	{
		$row['content']=preg_replace('/(?!<[^>]*)'.$row_k['key_name'].'(?![^<]*>)/i', '<a href="' . $row_k['key_url'] . '" target="_blank" >'.$row_k['key_name']."</a>", $row['content']);
	}
	$row['content']=preg_replace('/(?!<[^>]*)'.$row_k['key_name'].'(?![^<]*>)/i', '<strong>' . $row_k['key_name'] . '</strong>', $row['content'],1 );
}

done!

插件打包下载:
[fo_hide]ECSHOP关键词自动内链插件.zip 密码: qrrr[/fo_hide]

阅读剩余
THE END