转自 http://blog.csdn.net/tgh1981/article/details/10394059

ecshop 添加新页面

给ecshop后台增加管理功能页面

比如我们增加一个统计报表叫做 物流费用统计报表

放在后台“报表统计”栏目中

具体操作步骤:

第一步,我们要添加一个菜单到后台,然后设置语言项,最后设置权限,这样,后台就有了一个可以点击的链接,并且可以分配权限;

第二步,新增链接文件,包括模板文件和后台操作文件,也需要新增语言项;

第三步,测试;

好,我们一步一步完成它。

我们先在后台添加菜单。

打开language\zh_cn\admin\commn.php

例如新菜单要加在报表统计下,添加如下代码:

$_LANG['report_profit'] = '利润统计报表';

$_LANG['report_logistics'] = '物流费用统计报表';

然后打开admin\includes\modules\inc_menu.php

为新菜单添加动作/链接

插入以下代码:

$modules['06_stats']['report_profit']               = 'report_profit.php?act=list';
$modules['06_stats']['report_logistics'] = 'report_logistics.php?act=list';

到这步后,清空缓存,后台左侧菜单列表中,就已经有了刚刚添加的菜单,如果不需要权限分配到这里就可以用了。

现在为新添加的菜单加入权限控制的功能

打开language\zh_cn\admin\priv_action.php

找到订单管理部分权限说明,在下面添加:

$_LANG['sale_order_report1'] = '查看利润统计报表';

$_LANG['sale_order_report2'] = '查看物流费用统计报表';

然后打开admin\includes\inc_priv.php

添加:

    $purview['report_profit']           = 'sale_order_report1';
$purview['report_logistics'] = 'sale_order_report2';

最后,在数据库中添加权限记录:

在esc_admin_action表中插入新的一条记录

如下图这样

插入的代码参考:

INSERT INTO `ecshop`.`ecs_admin_action` (

`action_id` ,
`parent_id` ,
`action_code` ,
`relevance`
)
VALUES (
'136', '6', 'sale_order_report1', ''
);

parent_id就是所属大菜单的ID,这里以订单管理举例就写6。action_id按照已有的id加一排下去。

到这里所有的工作已经结束了,如果没有生效的话可以再清理缓存刷新一下。

管理员权限设置中就增加了:


刚才我们添加了两个链接文件,如:

$modules['06_stats']['report_profit'] = 'report_profit.php?act=list';

$modules['06_stats']['report_logistics'] = 'report_logistics.php?act=list';

report_profit.php,还有report_logistics.php,分别对应

report_profit.php -- 利润统计报表

report_logistics.php -- 物流费用统计报表

这两个文件建议自己做,但是可以先参考系统现有的文件,如 sale_list.php

复制 sale_list.php 为 report_profit.php

将 ECSHOP 销售明细列表程序 修改为 ECSHOP 利润统计报表程序

找到 language\zh_cn\admin\statistic.php 打开,在最后添加:

/* 物流费用统计 */

$_LANG['order_id'] = '序列';

$_LANG['logistics_name'] = '物流名称';

$_LANG['logistics_cost'] = '运费';

$_LANG['download_logistics'] = '下载运费明细报表';

$_LANG['all_logistics_cost'] = '总运费';

$_LANG['logistics_reingewinn'] = '物流利润';

/* 利润统计 */

$_LANG['profit_name'] = '利润';

$_LANG['suoshu_order_sn'] = '所属订单';

$_LANG['goods_kosten'] = '成本';

$_LANG['all_goods_kosten'] = '总成本';

$_LANG['all_goods_price'] = '总售价';

$_LANG['goods_reingewinn'] = '净利润';

$_LANG['download_profit'] = '下载利润统计报表';

保存。

找到 $smarty->assign('ur_here', $_LANG['sale_list']); 修改为

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

是在report_profit.php中

另一个report_logistics.php则:

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

修改完之后,刷新并访问,会发现:右侧页面相关名称被修改了。

权限方面的检查:

在report_profit.php中

/* 检查权限 */

check_authz_json('sale_order_report1');

在report_logistics.php中

/* 检查权限 */

check_authz_json('sale_order_report2');

注意,有两处,都要修改。

接下来,新增 repost_profit.htm 和 report_logistics.htm 两个模板文件。

同样,我们之前是复制 sale_list.php 文件,那么,这里也复制它的 sale_list.htm文件,在admin/templates 里面。

这里要根据你所需要的内容进行修改,如report_logistics是物流费用统计报表,

那么,所需要的字段是序列、商品名称、物流名称、数量、运费、售出日期等,最后再来一个总运费

在report_logistics.php文件中,就必须从数据库中获取到相关数据。

修改sql:

    $sql = 'SELECT og.goods_id, og.goods_sn, og.goods_name, og.goods_number AS goods_num, oi.shipping_fee '.
'AS logistics_price, oi.add_time AS sales_time, oi.order_id, oi.order_sn , oi.shipping_name '.
"FROM " . $GLOBALS['ecs']->table('order_goods')." AS og, ".$GLOBALS['ecs']->table('order_info')." AS oi ".
$where. " ORDER BY sales_time DESC, goods_num DESC";

增加了oi.shipping_fee AS logistics_price 这个,还有 oi.shipping_name

建议增加时查看数据库表结构

然后,在report_logistics.htm中就可以去获取相应的内容。

     <tr>
<th>{$lang.goods_name}</th>
<th>{$lang.order_sn}</th>
<th>{$lang.logistics_name}</th>
<th>{$lang.amount}</th>
<th>{$lang.logistics_cost}</th>
<th>{$lang.sell_date}</th>
</tr>
{foreach from=$goods_sales_list item=list}
<tr align="center">
<td align="left"><a href="../goods.php?id={$list.goods_id}" target="_blank">{$list.goods_name}</a></td>
<td><a href="order.php?act=info&order_id={$list.order_id}">{$list.order_sn}</a></td>
<td align="right">{$list.shipping_name}</td>
<td align="right">{$list.goods_num}</td>
<td align="right">{$list.logistics_price}</td>
<td>{$list.sales_time}</td>
</tr>

注:这里 {$lang.goods_name} 是在 language\zh_cn\admin\statistic.php 文件中添加的内容

{$list.shipping_name} 这个就是sql里面的字段名了

同时,还需要在report_logistics.php文件 里面修改下载xls文件的内容,也类似:

/* 文件标题 */
echo ecs_iconv(EC_CHARSET, 'GB2312', $_REQUEST['start_date']. $_LANG['to'] .$_REQUEST['end_date']. $_LANG['sales_list']) . "\t\n"; /* 序列,订单号,物流名称,数量,运费,销售日期 */
echo ecs_iconv(EC_CHARSET, 'GB2312', $_LANG['order_id']) . "\t";
echo ecs_iconv(EC_CHARSET, 'GB2312', $_LANG['order_sn']) . "\t";
echo ecs_iconv(EC_CHARSET, 'GB2312', $_LANG['logistics_name']) . "\t";
echo ecs_iconv(EC_CHARSET, 'GB2312', $_LANG['amount']) . "\t";
echo ecs_iconv(EC_CHARSET, 'GB2312', $_LANG['logistics_cost']) . "\t";
echo ecs_iconv(EC_CHARSET, 'GB2312', $_LANG['sell_date']) . "\t\n"; $i = 0; foreach ($goods_sales_list['sale_list_data'] AS $key => $value)
{
$i++;
echo $i . "\t";
//echo ecs_iconv(EC_CHARSET, 'GB2312', $i . "\t";
echo ecs_iconv(EC_CHARSET, 'GB2312', '[ ' . $value['order_sn'] . ' ]') . "\t";
echo ecs_iconv(EC_CHARSET, 'GB2312', $value['shipping_name']) . "\t";
echo ecs_iconv(EC_CHARSET, 'GB2312', $value['goods_num']) . "\t";
echo ecs_iconv(EC_CHARSET, 'GB2312', $value['logistics_price']) . "\t";
echo ecs_iconv(EC_CHARSET, 'GB2312', $value['sales_time']) . "\t";
echo "\n";
}

注:以上部分是在 if ($_REQUEST['act'] == 'download') 一节里面

ecshop 添加后台页面以及设置权限的更多相关文章

  1. 【JavaWeb项目】一个众筹网站的开发(八)后台页面详细设置

    一.user.jsp改造 删除引入菜单 抽取导航栏 nav-bar.jsp,删除引入导航栏 删除引入main.jsp的到好烂 数据库里添加url 报错,url不对 没有/ url正确 action=& ...

  2. Linux添加FTP用户并设置权限

    在linux中添加ftp用户,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test 2.建用户,命令行状态下,在root用户下: 运 ...

  3. CentOS7 添加FTP用户并设置权限

    step 1 安装配置Vsftp服务器 一.配置防火墙,开启FTP服务器需要的端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewal ...

  4. mysql用户密码修改,用户添加、删除及设置权限

    一下的示例所用用户名和密码为:test,111111 Mysql密码修改: Mysql修改密码需要root的权限,先执行mysql -uroot -p(密码); 1)使用set password方式来 ...

  5. Linux创建ftp并设置权限以及忘记ftp帐号(密码)修改

    忘记ftp密码修改方法: 1.登录服务器 cd  /etc/vsftpdcat ftpusers找到对应的ftp用户名 (如果用户名也忘记了 那么 cd /etc 然后cat passwd 查看用户和 ...

  6. Linux创建ftp并设置权限以及忘记ftp帐号(密码)修改 (转)

      忘记ftp密码修改方法:1.登录服务器 cd  /etc/vsftpdcat ftpusers找到对应的ftp用户名 (如果用户名也忘记了 那么 cd /etc 然后cat passwd 查看用户 ...

  7. Ecshop:后台添加新功能栏目以及管理权限设置

    一.添加菜单项 打开 /admin/includes/inc_menu.php文件(后台框架左边菜单),在最后添加一行如下: $modules['17_other_menu']['sns_list'] ...

  8. ecshop后台新功能及权限的添加

    1.在后台"推荐管理"里添加"推荐人分成"."会员分成"两个操作功能以及权限 index.php?act=menu incluedes/in ...

  9. 在Linux系统中如何设置APACHE服务器里的后台页面只允许某个IP地址访问

    补充资料 本网络中使用LINUX服务器,web服务器是由APACHE搭建,IP地址为192.168.1.5,后台页面为/admin/login.jsp . 如何设置后台页面LOGIN.JSP只允许19 ...

随机推荐

  1. python中对列表和循环使用的小练习

    #author devilf product_list = [ (), (), (), (), () ] shop_list = [] salary = input('pls enter your s ...

  2. spring和hibernate集成事物管理配置方法

    spring+hibernate,采用声明式事务 1.声明式事务配置 * 配置SessionFactory * 配置事务管理器 * 事务的传播特性 * 那些类那些方法使用事务 2.编写业务逻辑方法 * ...

  3. Day5-----------------vi编辑器

    1.操作模式 1).命令行模式 2).编辑模式 3).扩展模式 2.命令行模式 1).删除与复制 dd 删除光标所在行 ndd 删除光标向下n行 yy 复制光标所在行 nyy 复制光标乡下n行 2). ...

  4. 解决Javascript中$(window).resize()多次执行

    有些时候,我们需要在浏览器窗口发生变化的时候,动态的执行一些操作,比如做自适应页面时的适配.这个时候,我们需要在窗口拖动的时候去执行代码.但是有些时候,执行的操作比较复杂,我们只希望在窗口拖动完毕之后 ...

  5. Sudo的用法和Visudo设置

    身为程序员,你可以活在一个没有Windows的世界,当你离不开Unix(Linux,Mac...).而在Unix下面,你离不开terminal,离不开sudo. 你知道sudo command,然后输 ...

  6. webpack-clean-webpack-plugin

    在webpack中打包生成的文件会覆盖之前的文件,不过生成文件的时候文件名加了hash之后会每次都生成不一样的文件,这就会很麻烦,不但会生成很多冗余的文件,还很难搞清楚到底是哪个文件,这就需要引入该插 ...

  7. Spark的HA部署

    一.安装JDK.Scala 二.安装zookeeper 三.安装Hadoop 四.安装Spark 1.修改spark/conf/spark-env.sh export JAVA_HOME=/usr/j ...

  8. 【linux】ubuntu下crontab无效解决方法

    在Debain的docker中启用crontab,踩了一整天的坑,特地记录一下.Debain和ubuntu差不多,故算在ubuntu下面了. 1.第一个坑,安装crontab apt-get inst ...

  9. spring + quartz定时任务,以及修改定时任务

    spring4+quartz2.2.3,定时任务弄好了,修改定时任务没折腾起,没找到合适的解决方案. 最终使用库spring-context-support 3.2.17.RELEASE +  qua ...

  10. centos java tomcat 中文乱码解决办法

    现象: cenos 部署java web 程序 ,java类中有中文 出现乱码现象 即使使用: System.getProperty("中文") 控制台都出现  ??????  乱 ...