ECSHOP后台开发模块步骤

91 篇文章 0 订阅
91 篇文章 0 订阅

一、建数据库

二、添加到后台导航栏并配置相关语言包

三、权限配置

四、添加增删查改

五、增加其他功能(复制,搜索(暂时调不出来页面),排序,转移,AJAX)


ECSHOP后台开发模块步骤

以添加支付信息模块为例

第一步首先我们用phpmyadmin建一个支付表,表名:ecs_pay表字段:pay_id,pay_name,pay_info,pay_bank,pay_credit,pay_state第二步添加到后台左侧导航栏并配置权限和相关语言包

共修改四个文件inc_priv.php、 inc_menu.php 、priv_action.php、common.php

1.打开languages\zh_cn\admin\common.php

找到 添加

$_LANG['18_pay'] = '支付管理';

文件末尾添加

$_LANG['02_pay_list'] = '支付人信息';

$_LANG['03_pay_charge'] = '账户充值';

$_LANG['04_pay_record'] = '流水记账';

配其他相关的语言包

$_LANG['pay_name'] = '支付人';

$_LANG['pay_info'] = '支付信息';

$_LANG['pay_bank'] = '开户银行';

$_LANG['pay_credit'] = '开户帐号';

$_LANG['pay_state'] = '状态';

2.打开admin\includes\inc_menu.php

末尾添加

$modules['18_pay']['02_pay_info'] = 'pay.php?act=list';

$modules['18_pay']['03_pay_charge'] = 'pay.php?act=charge';

$modules['18_pay']['04_pay_record'] = 'pay.php?act=record';

OK,菜单栏显示

第三步

配置权限体系(priv_action.php ,inc_priv.php)

1.在表ecs_admin_action 里面添加模块字段pay 、pay_manage、 pay_drop

parent_id = 0的为顶级栏目,其他子栏目的操作,都继承了parent_id 和顶级栏目关联起来.(注意action_id 和parent_id 的关系 )

添加一个顶级栏目 pay action_id为136 parent_id 为0;

其下子栏目 pay_manage parent_id 为136;

pay_drop parent_id 为136;

2.打开languages\zh_cn\admin\priv_action.php

下添加

$_LANG['pay'] = '支付管理';

末尾添加

//支付管理

$_LANG['pay_manage'] = '支付添加/编辑';

$_LANG['pay_drop'] = '支付删除';

3.打开admin\includes\inc_priv.php

末尾添加

//支付管理

$purview['02_pay_info'] = array('pay_manage', 'pay_drop');

$purview['03_pay_charge'] = 'pay_manage';

$purview['04_pay_record'] = 'pay_manage';

第四步,添加基本的增删改查功能

建四个文件 pay.php、pay_list、pay_info、pay_search

.添加“增加”功能

//-- 添加支付人信息

if ($_REQUEST['act'] == 'add')

{

// admin_priv('pay_manage');

$smarty->assign('ur_here', $_LANG['pay_name_add']);

//$smarty->assign('action_link', array('text' => $_LANG['pay_name_add'], 'href' => 'pay.php?act=list'));

$smarty->assign('form', 'insert');

assign_query_info();

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

}

//-- 添加支付人信息

if ($_REQUEST['act'] == 'insert')

{

//admin_priv('pay_manage');

$is_only = $exc->is_only('pay_id', $_POST['pay_id'],0, " pay_id ='$_POST[pay_id]'");

if (!$is_only)

{

sys_msg($_LANG['goods_exist'], 1);

}

if (empty($_POST['pay_id']))

{

$_POST['pay_id'] = 0;

}

$sql = "INSERT INTO ".$ecs->table('pay')."(pay_id, pay_name,pay_info, pay_bank, pay_credit) ".

"VALUES ('$_POST[pay_id]','$_POST[pay_name]', '$_POST[pay_info]', '$_POST[pay_bank]', '$_POST[pay_credit]')";

$db->query($sql);

$link[0]['text'] = $_LANG['back_list'];

$link[0]['href'] = 'pay.php?act=list';

$link[1]['text'] = $_LANG['pay_continue_add'];

$link[1]['href'] = 'pay.php?act=add';

admin_log($_POST['pay_id'],'add','exchange_goods');

clear_cache_files(); // 清除相关的缓存文件

sys_msg($_LANG['articleadd_succeed'],0, $link);

}

(首先是根据act传来的参数add,把参数insert赋值到smarty模板,放在在添加页面隐藏域中,更新也是如此)

1.根据传递过来的act的参数insert逻辑添加处理,(参数insert在添加页面的)

2.admin_priv函数判断是否具有权限,

3.$exc->is_only()判断自增号是否唯一(可去掉)

4.$db->query($sql)对数据库进行操作,

5.admin_log()函数记录操作信息

6.clear_cache_files();清除缓存

7.sys_msg()函数提示操作信息

2..添加“修改功能”

//-- 编辑

if ($_REQUEST['act'] == 'edit')

{

// admin_priv('exchange_goods');

$sql = "SELECT * FROM " . $ecs->table('pay') ." WHERE pay_id='$_REQUEST[id]'";

$pay = $db->GetRow($sql);

$smarty->assign('pay', $pay);

$smarty->assign('ur_here', $_LANG['pay_name_add']);

$smarty->assign('action_link', array('text' => $_LANG['pay_list'], 'href' => 'pay.php?act=list'));

$smarty->assign('form', 'update');

assign_query_info();

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

}

//-- 编辑

if ($_REQUEST['act'] =='update')

{

// admin_priv('pay_manage');

if (empty($_POST['pay_id']))

{

$_POST['pay_id'] = 0;

}

if ($exc->edit("pay_name='$_POST[pay_name]', pay_info='$_POST[pay_info]', pay_bank='$_POST[pay_bank]', pay_credit='$_POST[pay_credit]'", $_POST['pay_id']))

{

$link[0]['text'] = $_LANG['back_list'];

$link[0]['href'] = 'pay.php?act=list&' ;

admin_log($_POST['pay_id'], 'edit', 'pay');

clear_cache_files();

sys_msg($_LANG['pay_update_success'], 0, $link);

}

else

{

die($db->error());

}

}

(首先是根据act传来的参数edit把参数update赋值到smarty模板,放在在添加页面隐藏域中)

1.根据传递过来的act的参数update逻辑添加处理,(参数update在添加页面的)

2.admin_priv函数判断是否具有权限,

3.判断是否提交id值(为空则赋值为0)

4.$$exc->edit()对数据库进行更新操作

5.admin_log()函数记录操作信息

6.clear_cache_files();清除缓存

7.sys_msg()函数提示操作信息

3.添加“删除功能”

//-- 删除信息

elseif ($_REQUEST['act'] == 'remove')

{

//check_authz_json('pay_drop');

$id = intval($_GET['id']);

if ($exc->drop($id))

{

admin_log($id,'remove','article');

clear_cache_files();

}

$url = 'pay.php';

ecs_header("Location: $url\n");

exit;

}

act的参数为remove

check_authz_json()函数检查

$exc->drop($id)数据库进行删除操作

记录操作记录

清除缓存文件

ecs_header()跳转

4..添加“批量删除”

//-- 批量删除

elseif ($_REQUEST['act'] == 'batch_remove')

{

admin_priv('pay');

if (!isset($_POST['checkboxes']) || !is_array($_POST['checkboxes']))

{

sys_msg($_LANG['no_select_goods'], 1);

}

$count = 0;

foreach ($_POST['checkboxes'] AS $key => $id)

{

if ($exc->drop($id))

{

admin_log($id,'remove','exchange_goods');

$count++;

}

}

$lnk[] = array('text' => $_LANG['back_list'], 'href' => 'pay.php?act=list');

sys_msg(sprintf($_LANG['batch_remove_succeed'], $count), 0, $lnk);

}

5.添加“搜索”(暂时调不出页面)

6.添加"AJAX"功能

两种情况(一种点击修改状态,一种是点击修改文本框)

//-- 修改上架状态(对错状态)

elseif ($_REQUEST['act'] == 'pay_state')

{

//check_authz_json('goods_manage');

$pay_id = intval($_POST['id']);

$pay_state = intval($_POST['val']);

if ($exc->edit("pay_state = '$pay_state'", $pay_id))

{

clear_cache_files();

make_json_result($pay_state);

}

}

Html页面:

ECSHOP后台开发模块步骤

//-- 修改支付人姓名信息(点击修改文本框)

elseif ($_REQUEST['act'] == 'edit_pay_name')

{

//check_authz_json('goods_manage');

$pay_id = intval($_POST['id']);

$pay_name = json_str_iconv(trim($_POST['val']));

if ($exc->edit("pay_name = '$pay_name'", $pay_id))

{

clear_cache_files();

make_json_result($pay_name);

}

}

Html 页面

{$pay.pay_info}

7.排序问题

Php:

//-- 翻页,排序

elseif ($_REQUEST['act'] == 'query')

{

// check_authz_json('exchange_goods');

$pay_list = get_exchange_goodslist();

$smarty->assign('pay', $pay_list['arr']);

$smarty->assign('filter', $pay_list['filter']);

$smarty->assign('record_count', $pay_list['record_count']);

$smarty->assign('page_count', $pay_list['page_count']);

$sort_flag = sort_flag($pay_list['filter']);

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

make_json_result($smarty->fetch('pay_list.htm'), '',

array('filter' => $pay_list['filter'], 'page_count' => $pay_list['page_count']));

}

function get_exchange_goodslist()

{

$result = get_filter();

if ($result === false)

{

$filter = array();

$filter['sort_by'] = empty($_REQUEST['sort_by']) ? 'eg.pay_id' : trim($_REQUEST['sort_by']);

$filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'asc' : trim($_REQUEST['sort_order']);

if (isset($_POST['brand_name']))

{

$sql = "SELECT COUNT(*) FROM ".$GLOBALS['ecs']->table('pay') .' WHERE pay_name = \''.$_POST['brand_name'].'\'';

}

else

{

$sql = "SELECT COUNT(*) FROM ".$GLOBALS['ecs']->table('pay');

}

$filter['record_count'] = $GLOBALS['db']->getOne($sql);

if (isset($_POST['brand_name']))

{

if(strtoupper(EC_CHARSET) == 'GBK')

{

$keyword = iconv("UTF-8", "gb2312", $_POST['brand_name']);

}

else

{

$keyword = $_POST['brand_name'];

}

$sql = "SELECT * FROM ".$GLOBALS['ecs']->table('pay')." WHERE pay_name like '%{$keyword}%' ORDER BY sort_order ASC";

}

else

{

$sql = 'SELECT eg.* '.

'FROM ' .$GLOBALS['ecs']->table('pay'). ' AS eg '.

'WHERE 1 ' .$where. ' ORDER by '.$filter['sort_by'].' '.$filter['sort_order'];

}

$filter = page_and_size($filter);

set_filter($filter, $sql);

}

else

{

$sql = $result['sql'];

$filter = $result['filter'];

}

$arr = array();

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

while ($rows = $GLOBALS['db']->fetchRow($res))

{

$arr[] = $rows;

}

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

}

Html:

{$lang.pay_name}{$sort_pay_name}

8.复制功能

Php:

//-- 复制

if ($_REQUEST['act'] == 'copy')

{

// 商品信息

$goods['pay_id'] = 0;

$sql = "SELECT '0' AS pay_id,pay_name,pay_credit,pay_info,pay_bank" .

" FROM " . $ecs->table('pay') .

" WHERE pay_id = '$_REQUEST[pay_id]' ";

$res = $db->query($sql);

while ($row = $db->fetchRow($res))

{

$db->autoExecute($ecs->table('pay'), $row, 'INSERT');

}

}

Html页面:

ECSHOP后台开发模块步骤

因为自己研究得不是很透彻,肯定还有很多有待改善的地方,但是基本开发思路已经出来了,大家可以按照步骤一步一步研究

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前言 3 一、商圈和地区进行关联 4 二、其他页面显示购买记录的函数 5 三、多货币解决方案 6 四、仿淘宝商品详细页实现尺码颜色关联显示库存 12 五、仿淘宝商品详细页加入购物车效果 14 六、ecshop加入购物车效果(各个页面) 22 七、商品列表页面“喜欢“ 功能实现 29 八、商品列表也显示获赠消费积分 32 九、分析 ecshop 里的$GLOBALS 37 十、解决 选择属性 直接就是属性价格不需要在原价基础上加价 38 十一、商品详细页下载商品介绍相关图片 39 十二、实现后台二次开发后功能模块仍然可以分配权限 41 十三、ecshop调用bbs数据 42 十四、整理了一个 获取用户等级的函数 43 十五、商品页显示具体属性排序 44 十六、解决ecshop新建页面分页问题 49 十七、刚修改的伪静态分类URL 52 十八、ecshop批发销售 66 十九、网银支付直通插件 实现方法 69 二十、商品列表页多图切换的实现 75 二十一、完善论坛发布的qq登录插件 77 二十二、倒计时代码 78 二十三、关于ecshop回调函数应用 83 二十四、商品内容页加订单留言功能分析 84 二十五、有关商品详细页是常规显示还是显示宣传页的实现方法 85 二十六、后台添加搜索功能讲解 87 二十七、分享ec搜索出现相关商品的效果滑动效果(模仿百度) 88 二十八、修改注册发送邮件(更新) 94 二十九、新增加一调用编辑器函数 97 三十、简单实现 各个页面都可显示友情链接 97 三十一、Ecshop系统框架分析 99 三十二、二次开发技术共享 后台邮件群发共享 100 三十三、ecshop内页调用友情链接 100 三十四、项目要求在后台商品分类添加图片的功能。 102 三十五、分类按照拼音第一字母排序显示实现 102 三十六、获取分类的一级分类和二级分类 106 三十七、如何调用解决列表的购买数量 107 三十八、详情页调评论次数 108 三十九、关于购买数量 订单数量 109 四十、Ecshop ajax应用讨论 109 四十一、调用当前分类或当前分类的下级分类函数 115 四十二、在商品列表显示购买记录 118 四十三、ajax更新购物车数量 118 四十四、PHP导出excle数据 123 四十五、页面多倒计时显示最新修改 125 四十六、关于lbi文件控制原理分析 129 四十七、页面浏览历史图片调用分析 130

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值