ecshop如何实现文章排序

在我们利用ecshop进行商城网站建设的时候常常用到文章,ecshop中的文章功能相对于其他的cms要弱的很多不过以基本满足了网站商城中文章发布的应用,但是ecshop文章的推荐功能只有普通、置顶功能,这些相对来说对我们平时文章的管理与现实是不够的,今天我们就来做一下ecshop网站商城的文章排序功能。

1、首先在数据库中执行如下语句:
ALTER
TABLE `ecs_article` ADD
`orderid` INT NOT NULL
AFTER
`description`

orderid为你所存储的ecshop中的文章排序的字段值。

2、打开文章修改的模板
在给ecshoop网站商城中添加字段的时候我通常习惯先做修改模板,因为这样可以省去每次进行添加内容的测试直接修改添加的内容比添加一个要快的多,等修改的功能完成了添加的功能也就很容易了。

我们通过点击文章修改的链接得到:article.php?act=edit&id=52
,我们可以通过这个链接找到我们的修改模板为:article_info.html
在模板中添加一个文本框添加后如下图:


模板添加完成后我们在去对程序进行修改。

3、修改程序文件
当我们点击确定按钮后系统是把数据提交个了article.php页面传递的动作是update,这个从模板中就可以看到。
这个时候我们要修改一下article.php中
if ($_REQUEST['act'] =="update") 这个位置的代码

从程序中看到我们只要修改一下:

if
($exc->edit("title="$_POST[title]", cat_id="$_POST[article_cat]",
article_type="$_POST[article_type]", is_open="$_POST[is_open]",
author="$_POST[author]", author_email="$_POST[author_email]", keywords
="$_POST[keywords]", file_url ="$file_url", open_type="$open_type",
content="$_POST[FCKeditor1]", link="$_POST[link_url]", description =
'$_POST[description]'",
$_POST['id']))

这里边的代码就可以了。

我们修改后的代码如下:

if
($exc->edit("orderid="$_POST[orderid]",title="$_POST[title]",
cat_id="$_POST[article_cat]", article_type="$_POST[article_type]",
is_open="$_POST[is_open]", author="$_POST[author]",
author_email="$_POST[author_email]", keywords ="$_POST[keywords]", file_url
="$file_url", open_type="$open_type", content="$_POST[FCKeditor1]",
link="$_POST[link_url]", description = '$_POST[description]'",
$_POST['id']))

这样我们点击确定后数据库中就有值了。

4、优化程序
不过我们这样做,如果orderid中没有对他输入内容那么我们点击确定按钮后数据库中就没有内容了,当我们在前台调用的时候,如果要按照
orderid排序就会不准确,这个时候我们可能再加入通过文章id来拍下的条件,为了省去这个步骤,我们可以这样来操作,当我们没有给他输入值的时候他可以存入这个文章的id存入orderid字段中。

我们可以再程序中加入:

if(empty($_POST['orderid'])){
 
$_POST['orderid'] = $_POST['id'];

}

这样我们的修改语句就完成了。


5、对添加文章动作进行程序修改

添加动作执行的是if
($_REQUEST['act'] == 'insert') 这个个if语句中的内容进行修改,修改部分是:


$add_time = gmtime();
if
(empty($_POST['cat_id']))

{
$_POST['cat_id'] =
0;
}
if
(empty($_POST['orderid']))

{

$_POST['orderid'] = 0;


}

$sql = "INSERT INTO
".$ecs->table('article')."(orderid,title, cat_id,
article_type, is_open, author,
".

"author_email, keywords, content, add_time, file_url, open_type, link,
description)
".
"VALUES
('$_POST[orderid]','$_POST[title]',
'$_POST[article_cat]', '$_POST[article_type]', '$_POST[is_open]',
".

"'$_POST[author]', '$_POST[author_email]', '$_POST[keywords]',
'$_POST[FCKeditor1]',
".

"'$add_time', '$file_url', '$open_type', '$_POST[link_url]',
'$_POST[description]')";

为了让orderid中没有值的时候插入文章的id可以加入一下的语句:


$article_id = $db->insert_id();
$sql =
"UPDATE " . $ecs->table('article') . " SET orderid = '$article_id' WHERE
article_id = $article_id";


$db->query($sql);

posted on 2012-11-14 16:42  ECshop商城二次开发博客  阅读(2048)  评论(0编辑  收藏  举报

导航