給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表中插入新的一條記錄
以下圖這樣
![給ecshop後臺增長管理功能頁面](http://static.javashuo.com/static/loading.gif)
插入的代碼參考:
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') 一節裏面
大體內容是這樣的。