zoukankan      html  css  js  c++  java
  • 给ecshop后台增加管理功能页面

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

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

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

    具体操作步骤:

    第一步,我们要添加一个菜单到后台,然后设置语言项,最后设置权限,这样,后台就有了一个可以点击的链接,并且可以分配权限;
    第二步,新增链接文件,包括模板文件和后台操作文件,也需要新增语言项;
    第三步,测试;


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

    我们先在后台添加菜单。

    打开languagezh_cnadmincommn.php
    例如新菜单要加在报表统计下,添加如下代码:

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

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



    然后打开adminincludesmodulesinc_menu.php

    为新菜单添加动作/链接

    插入以下代码:


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

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

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


    打开languagezh_cnadminpriv_action.php

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

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

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


    然后打开adminincludesinc_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 利润统计报表程序

    找到  languagezh_cnadminstatistic.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} 是在  languagezh_cnadminstatistic.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']) . " ";

            /* 序列,订单号,物流名称,数量,运费,销售日期 */
            echo ecs_iconv(EC_CHARSET, 'GB2312', $_LANG['order_id']) . " ";
            echo ecs_iconv(EC_CHARSET, 'GB2312', $_LANG['order_sn']) . " ";
            echo ecs_iconv(EC_CHARSET, 'GB2312', $_LANG['logistics_name']) . " ";
            echo ecs_iconv(EC_CHARSET, 'GB2312', $_LANG['amount']) . " ";
            echo ecs_iconv(EC_CHARSET, 'GB2312', $_LANG['logistics_cost']) . " ";
            echo ecs_iconv(EC_CHARSET, 'GB2312', $_LANG['sell_date']) . " ";

    $i = 0;


            foreach ($goods_sales_list['sale_list_data'] AS $key => $value)
            {
    $i++;
    echo  $i . " ";
                //echo ecs_iconv(EC_CHARSET, 'GB2312', $i . " ";
                echo ecs_iconv(EC_CHARSET, 'GB2312', '[ ' . $value['order_sn'] . ' ]') . " ";
                echo ecs_iconv(EC_CHARSET, 'GB2312', $value['shipping_name']) . " ";
                echo ecs_iconv(EC_CHARSET, 'GB2312', $value['goods_num']) . " ";
                echo ecs_iconv(EC_CHARSET, 'GB2312', $value['logistics_price']) . " ";
                echo ecs_iconv(EC_CHARSET, 'GB2312', $value['sales_time']) . " ";
                echo " ";
            }


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


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













  • 相关阅读:
    利用requests, beautifulsoup包爬取股票信息网站
    Mac自带编码转换工具iconv
    Flask 快速入门
    HTML模版组件
    JavaScript正则表达式及jQuery回顾
    jQuery 教程
    Document
    Document
    Document
    Document
  • 原文地址:https://www.cnblogs.com/james1207/p/3285704.html
Copyright © 2011-2022 走看看