共用引入檔:inc.php

對應程式: dashboard/inc.php

業務功能

Dashboard 的核心初始化檔案,負責權限控管、全域常數/變數定義、以及 Dashboard 專用的共用函式庫。所有 Dashboard 頁面都必須 require_once 此檔案。

主要內容

1. 權限控管

  • 引入 enter_logs/inc.php(間接引入 wp-config.php、WordPress core)
  • 定義頁面存取設定 $ARY_PAGE_ACCESS_CONFIG:列舉所有 Dashboard 頁面,全部設為 PAGE_ACCESS_CONFIG_VALUE_FOR_ALL_STAFF(已登入即可存取)
  • 檢查當前頁面是否在設定中,未設定則 die()

2. 常數與全域變數

變數/常數說明
IS_DEBUG_DASH_BACKENDisset($_GET['a'])URL 帶 ?a 可啟用除錯模式
$ABSENT_TOP_N50缺席排行榜顯示前 N 名
$MAX_HOUR_IN_ONE_DAY7.5每日上課時數上限
$RELAX_HOUR_IN_ONE_DAY1每日休息時數(計算時扣除)
$CLASS_CHECKBOX_HTMLHTML 模板ClassPicker Checkbox 項目模板
$CLASS_RADIO_HTMLHTML 模板ClassPicker Radio 項目模板
$sql_tmpl_globalSQL 模板出席統計查詢的共用 SQL 模板

3. 定義的 Functions

Function說明
calc_log_datetimes_total_seconds($ary, $max, $map)計算刷卡記錄的總上課秒數,依日分組,單日上限為自訂時數
get_request_ip_location_city()透過 ipinfo.io API 取得使用者 IP 的所在城市
get_request_kind_area()依城市名判斷地區代碼(北/竹/中/南)
is_kind_inside_area($kind_name, $area)判斷班別名稱是否屬於指定地區
get_latest_kind_id_by_kind_area($area, $xlass)取得指定地區最新的班別 ID
render_student_rank($kind_id)產生缺席學員排行榜完整 HTML(含分頁、表格)
display_autocomplete_searchkind_input($part, $conf)產生班級關鍵字搜尋的 input + autocomplete JS
display_todaybox($kind_id, $color, $total, $label, ...)產生當日出席甜甜圈圖的 HTML + C3.js 初始化
display_classpicker_modal($classname, $modal_title)產生班別篩選 Modal 的 HTML

引入鏈

dashboard/inc.php
  └─ enter_logs/inc.php
       └─ wp-config.php(WordPress 設定、共用 helpers)
       └─ enter_logs/classes/ClassDates.php