ecshop后台首页mysql_ecshop 添加后台页面以及设置权限
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中就可以去獲取相應的內容。
{$lang.goods_name}{$lang.order_sn}{$lang.logistics_name}{$lang.amount}{$lang.logistics_cost}{$lang.sell_date}{foreach from=$goods_sales_list item=list}
{$list.goods_name}{$list.order_sn}{$list.shipping_name}{$list.goods_num}{$list.logistics_price}{$list.sales_time}注:這里 {$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后台首页mysql_ecshop 添加后台页面以及设置权限的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新最全的免费股票数据接口--沪深A股深
- 下一篇: 微信小程序 - 使用 uni-app 开