開平食材採購系統/etable
出自福留子孫
目錄
[隱藏]原汁 etable
MVC 分離
全伺服器共用(model)
- constant.php
- etable class 的網址及檔案系統位置(絕對路徑)
- 進入資料庫的帳密。
- wiki 的文字過濾器。
- MediaWiki 及 資料表欄位內容投射:webContent($path)
- etable 三層類別,工作程式必載入其中一層程式。
- DB.php 連結資料庫
- login.php 載入 DB.php 並提供登入登出功能。
- etable.php 載入 login.php 並提供完整功能。
全 CMS site共用(view)
- siteConstant.php 全 site 共用常數。
- theme.php 載入 siteConstant.php ,定義頁頭、頁尾
- style.css 給 theme 用。
- menu.css 下拉表單的 css ,給 theme 用。
- index.php
- 載入 constant.php
- 載入 theme.php
- 載入 DB.php ,並連結資料庫
- echo 頁頭、webContent($path)、頁尾
工作程式(control)
- 載入 constant.php
- 載入 theme.php
- 載入 三層類別其中之一
- 工作:
- 捕捉使用者按鍵,去資料庫找,然後產生業面新選單。
- 如為「插畢」則檢查條件:
- 條件如成立 echo 'alert("警告訊息");';再echo "window.location='目的地';";
- 條件未成立,則為一般工作。
- 一般工作:new 類別,設屬性,輸出頁首,main(),輸出頁尾。
森茂版 etable
- 改 constant.php
- 去掉 wiki 解譯
- 去掉 webContent (可投射wiki頁、投射資料表內容)
- 增加 load_template 函式
- 載入並表現表頭:load_template("header.php")
- 載入並表現表尾:load_template("footer.php")
- 沒有 theme.php
固定位置
- /config/constant.php 根本常數檔
- /config/etable-lib.php
- 載入 config/constant.php
- 載入 etable.php
- new $ET
- 指定 $ET 的登出錨點
- /views/template/header.php 頁首
- /views/template/footer.php 頁尾
工作程式說明(以 food.php 為例)
基本載入
- config/etable-lib.php
- 載入 config/constant.php
- 不載入 wiki 解譯函式 wiki.php
- 缺函式 webContent :可投射wiki頁、投射資料表內容
- 多函式 load_template :可載入指定的 view
- 載入 etable.php
- new $ET
- 指定 $ET 的登出錨點
- 載入 config/constant.php
- models/order.php
- 載入 models/db-lib.php
- 函式 query($sql):傳回查詢結果。
- 函式 select_query($sql):傳回查詢結果之陣列(使用 mysql_fetch_assoc )。
- 常用函式製備
- 載入 models/db-lib.php
- models/login.php:指定 $ET->loginTable
- 取用 $_REQUEST['workControl']['o1id']
工作
- 若 catchText 載入 models/searchSelect.php
- models/searchSelect.php :由食材資料表找食材造 select 表單區塊,並 echo 出來。
- 若剛完成插入一筆,則檢查請購單是否已有這筆食材,
- 如果有以 javascript 送出 alert
- 如果沒有則載入 food-list.php ( 請購單 main() 後再 load_template("footer.php"))
- 若非 catchText 也非剛完成插入一筆則:load_template("header.php") 再載入 food-list.php
文件
- 開平wiki
- google 雲端硬碟/與我共用的項目
- 食材系統操作手冊
- 程式手冊
- php程式說明
- 食材系統資料庫表格欄位說明
- qq/0資訊中心123/食材系統暫存資料夾
- 上段四文件
- 可由此查到所有的校內文件
其中「程式手冊」主要是寫PDF,內容摘要如下:
PDF產生流程:參考 order2pdf.php
- 在 models/pdf-fax.php(直印)或 models/pdf.php(橫印)產生 TCPDF 物件,並設定PDF相關資料,例如直印或橫印、紙張大小、邊界寬度、是否自動分頁、使用的字型等
- 把要轉換成PDF的資料,例如食材清單等,都以HTML格式並加到變數 $html 中
- 把變數 $html 透過 TCPDF 物件的方法 writeHTML() 暫存到記憶體中
- 使用 TCPDF 物件的方法 Output 執行輸出 PDF。Output() 第一個參數是輸出的 PDF 檔名,如果如要指定儲存到伺服器的哪個資料夾中,則寫成「./資料夾名稱/PDF檔名」。第二個是輸出 PDF 的方式,I:使用瀏覽器顯示,D:下載到使用者的電腦中,F:儲存到伺服器
傳真流程:參考 fax.php
- 中華電信網路傳真只接受上傳 PDF 檔,所以把要傳真的資料轉成PDF檔,儲存到伺服器上的資料夾 files_upload
- 準備傳真所需的參數:廠商傳真號碼($receiver)、上傳的PDF檔名($msgbody)、是否立即傳真($sendtype)、預定傳真時間($sendtime,立刻傳真,就給空值)
- 使用 function fax_sent() 執行傳真,執行完畢會回傳「傳真代碼」(一個數字),儲存到資料庫中,以供後續查詢是否傳真成功,因為傳真機大約1、2分鐘才會接收到傳真要求。fax_sent() 的定義在 models/fax-lib.php
- 中華電信會自動重試三次,如果都沒有傳真成功,才會回傳失敗。
- 執行 fax-result-all.php ,抓取資料庫中的傳真代碼,以查詢並更新傳真結果。如果傳真不成功,則會回傳失敗,否則只會是『已點選連結「傳真」』
- 資料夾 files_upload 的 PDF 檔使用 cron 指令每天晚上刪除,避免佔用過多伺服器硬碟空間