給ecshop後臺增長管理功能頁面_無需整理

給ecshop後臺增長管理功能頁面

好比咱們增長一個統計報表叫作 物流費用統計報表

放在後臺「報表統計」欄目中

具體操做步驟:

第一步,咱們要添加一個菜單到後臺,而後設置語言項,最後設置權限,這樣,後臺就有了一個能夠點擊的連接,而且能夠分配權限;
第二步,新增連接文件,包括模板文件和後臺操做文件,也須要新增語言項;
第三步,測試;


好,咱們一步一步完成它。

咱們先在後臺添加菜單。

打開language\zh_cn\admin\commn.php
例如新菜單要加在報表統計下,添加以下代碼:

php

$_LANG['report_profit'] = '利潤統計報表';html

$_LANG['report_logistics'] = '物流費用統計報表';mysql



而後打開admin\includes\modules\inc_menu.phpsql

爲新菜單添加動做/連接數據庫

插入如下代碼:json


$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.phppost

找到訂單管理部分權限說明,在下面添加:測試

$_LANG['sale_order_report1'] = '查看利潤統計報表';url

$_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中就能夠去獲取相應的內容。

     
       
     
     
     
     
     
     
   
  {foreach from=$goods_sales_list item=list}
   
     
     
     
     
     
     
   



注:這裏  {$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') 一節裏面


大體內容是這樣的。
{$list.sales_time}
{$list.logistics_price}
{$list.goods_num}
{$list.shipping_name}
{$list.order_sn}
{$list.goods_name}
{$lang.sell_date}
{$lang.logistics_cost}
{$lang.amount}
{$lang.logistics_name}
{$lang.order_sn}
{$lang.goods_name}
相關文章
相關標籤/搜索