首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

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

2013-10-08 
给ecshop后台增加管理功能页面给ecshop后台增加管理功能页面比如我们增加一个统计报表叫做 物流费用统计报

给ecshop后台增加管理功能页面
给ecshop后台增加管理功能页面
比如我们增加一个统计报表叫做 物流费用统计报表
放在后台“报表统计”栏目中
具体操作步骤:
第一步,我们要添加一个菜单到后台,然后设置语言项,最后设置权限,这样,后台就有了一个可以点击的链接,并且可以分配权限;第二步,新增链接文件,包括模板文件和后台操作文件,也需要新增语言项;第三步,测试;

好,我们一步一步完成它。
我们先在后台添加菜单。

打开language\zh_cn\admin\commn.php
例如新菜单要加在报表统计下,添加如下代码:

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

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



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

为新菜单添加动作/链接

插入以下代码:



插入的代码参考:






============================================

刚才我们添加了两个链接文件,如:
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']);
修改完之后,刷新并访问,会发现:
给ecshop后盾增加管理功能页面


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

右侧页面相关名称被修改了。


权限方面的检查:
在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') 一节里面

大致内容是这样的。呵呵。呵呵。