Toggle main menu visibility
新聞
下載
教材
影音
討論
其他選單
好站連結
行事曆
電子相簿
常見問題
萬用表單
即時留言簿
友站消息
社大學員
:::
登入
登入
帳號
密碼
登入
重整畫面
:::
所有書籍
「[1102] PHP全端開發」目錄
MarkDown
1-2-2 安裝 Visual Studio Code 的相關套件
1. 開發環境與XOOPS模組結構
1-1 第一節 完成開發環境設定
1-1-1 開發環境需求
1-1-2 UniFormServer 常用功能重要目錄介紹
1-1-3 讓 UniForm Server 可以寄信
1-1-4 初步認識XOOPS
1-2 第二節 安裝開發工具
1-2-1 安裝 Visual Studio Code 文字編輯器
1-2-2 安裝 Visual Studio Code 的相關套件
1-2-3 新增程式碼片段
1-2-4 VSCode 常用快捷鍵
1-3 第三節 建立模組基本架構
1-3-1 下載 XOOPS250ModuleConversionFiles
1-3-2 xoops_version.php 基本設定
1-3-3 將專案發布至GitHub
1-4 第四節 完成圖示及資料表設計
1-4-1 用inkscape設計logo
1-4-2 常用資料庫的欄位類型
1-4-3 建立資料表
1-5 第五節 了解類別(class)架構及邏輯
1-5-1 修改預先載入設定 preloads\core.php
1-5-2 修改用來操控資料表的類別(class)
1-5-3 模組物件.php
1-5-4 PHP簡易的物件導向觀念
1-6 第五節 前台相關檔案
1-6-1 前後臺的基本樣板檔
1-6-2 前台頁面的基本架構
1-6-3 認識模組中的 header.php
1-6-4 認識 interface_menu.php
1-6-5 $xoopsUser 使用者物件
2. 製作前台活動管理功能
2-1 第一節 完成模組首頁預設動作
2-1-1 讓畫面顯示新增活動按鈕
2-1-2 安裝模組
2-2 第二節 各種內建的常用物件
2-2-1 關於 Xmf\Request 變數過濾物件
2-2-2 關於 $xoopsDB 資料庫物件
2-2-3 關於 $xoopsTpl 樣板物件
2-2-4 關於各種XOOPS會用到超級全域變數,如 $GLOBALS['xoops']
2-3 第三節 建立活動的表單
2-3-1 解析建立活動表單的方法
2-3-2 建立活動表單樣板檔
2-4 第四節 完成新增活動
2-4-1 表單初步權限判斷及設定預設值
2-4-2 寫入活動到資料庫中
2-4-3 關於 MyTextSanitizer 資料過濾物件
2-4-4 eguide表單語法
2-5 第五節 顯示單一活動內容
2-5-1 完成顯示活動
2-5-2 完成顯示單一活動的樣板
2-5-3 關於 css/module.css
2-6 第六節 修改活動功能
2-6-1 活動編輯表單加入隱藏編號
2-6-2 完成活動修改功能
3. 製作前台活動報名功能(上)
3-1 第一節 所有活動列表
3-1-1 取得所有活動資料
3-1-2 完成顯示活動列表畫面
3-2 第二節 加入刪除活動功能
3-2-1 加入刪除功能
3-2-2 刪除套用 SweetAlert
3-3 第三節 報名的架構
3-3-1 新增活動報名的資料表
3-3-2 新增 TadDataCenter 用的資料表
3-3-3 建立 Tad_signup_data 紀錄報名資料的類別檔
3-4 第四節 打造報名功能
3-4-1 新增報名表單流程
3-4-2 建立報名表的初步畫面
3-4-3 模組開發除錯方式
3-4-4 修改活動報名的 create()
3-4-5 在報名表加入活動相關資訊
3-5 第五節 完成儲存報名功能
3-5-1 TadDataCenter 常用方法
3-5-2 用 TadDataCenter 產生報名表的完整欄位
3-5-3 寫入報名資訊到資料庫
3-6 第六節 初步完成報名功能
3-6-1 取得報名資訊
3-6-2 顯示報名資訊
3-6-3 修改報名資料的流程
3-6-4 完成更新報名資料功能
3-6-5 完成取消報名功能
3-6-6 加入刪除確認功能
4. 製作前台活動報名功能(下)
4-1 第一節 顯示已報名清單
4-1-1 取得所有報名的完整資料
4-1-2 在顯示單一活動頁面顯示所有報名者
4-1-3 套用BootstrapTable強化表格
4-2 第二節 針對訪客來調整顯示內容
4-2-1 在活動列表顯示報名人數
4-2-2 訪客的能看到的東西
4-3 第三節 調整一般登入者能看到的畫面
4-3-1 登入的使用者能看到的東西
4-3-2 新增前台頁面:我的報名紀錄
4-4 第四節 自行建立物件方法及樣板
4-4-1 建立「我的報名紀錄」物件方法
4-4-2 建立「我的報名紀錄」樣板
4-4-3 讓報名者可以觀看自己的紀錄
4-5 第五節 完成各種活動管理功能
4-5-1 完成錄取功能
4-5-2 加入複製活動功能
4-6 第六節 更安全、更彈性的 get() 取得資料
4-6-1 加強資料保護
4-6-2 讓活動的 get() 可以根據情況過濾
5. 寄信、後台、權限、搜尋、偏好設定等機制用法
5-1 第一節 寄發各種通知信
5-1-1 在流程加入寄發報名通知信
5-1-2 寄信功能
5-2 第二節 針對不同狀況寄發通知信
5-2-1 產生通知信內容
5-2-2 製作HTML通知信內容
5-2-3 錄取狀態改變時的通知
5-3 第三節 新增後台界面
5-3-1 建立後台頁面 main.php
5-3-2 讓後台可以看到過期或關閉活動
5-3-3 修改樣板讓前後臺連結都適用
5-4 第四節 在後台進行權限設定
5-4-1 在後台建立權限設定頁
5-4-2 套用細部權限
5-4-3 修正可發布活動者可看到的東西
5-5 第五節 新增模組偏好設定
5-5-1 加入偏好設定
5-5-2 加入分頁工具
5-5-3 讓無法報名的活動也能顯示出來
5-6 第六節 加入搜尋功能
5-6-1 完成搜尋功能
5-6-2 套用所見即所得編輯器
6. 模組區塊及自動功能之應用
6-1 第一節 建立「可報名活動一覽」區塊
6-1-1 加入「可報名活動一覽」區塊的設定
6-1-2 建立區塊的php檔
6-1-3 建立區塊的樣板檔
6-2 第二節 加入區塊設定值
6-2-1 編輯區塊的設定函式
6-2-2 套用區塊設定值
6-2-3 勿用分頁功能來限制呈現數
6-3 第三節 可選擇活動的區塊設定
6-3-1 建立「活動報名焦點」區塊
6-3-2 建立「活動報名焦點」區塊的樣板
6-4 第四節 模組安裝時自動建立群組並完成權限設定
6-4-1 安裝模組時的自動功能
6-4-2 安裝模組時自動建立群組
6-4-3 安裝模組時自動完成群組權限設定
6-4-4 移除模組時的自動功能
6-5 第五節 模組更新時自動修改資料庫架構
6-5-1 更新模組時的自動功能
6-5-2 更新模組時的自動修改資料庫欄位
6-5-3 加入候補欄位後的基本異動
6-5-4 讓候補功能生效
6-6 第六節 用TadDataCenter 取代資料表異動
6-6-1 用 TadDataCenter 來註記候補
6-6-2 用 TadUpFiles 上傳附檔
6-6-3 顯示上傳檔案
7. HTML、CSV、Excel的匯出與匯入
7-1 第一節 HTML的匯出
7-1-1 匯出HTML及產生靜態頁面檔
7-2 匯出 CSV 檔
7-2-1 CSV 匯出及轉碼
7-2-2 產生 CSV 完整內容
7-3 第二節 CSV 的匯入
7-3-1 CSV 匯入界面
7-3-2 CSV 匯入後的資料預覽畫面
7-4 完成 CSV 匯入
7-4-1 批次匯入 CSV 報名資料
7-5 第三節 產生 Excel 檔
7-5-1 產生 Excel 檔
7-5-2 Excel 常用方法
7-5-3 產生 Excel 匯入檔
7-5-4 產生完整的 Excel 匯出檔
7-6 第四節 妝點 Excel 及匯入功能
7-6-1 設定 Excel 樣式
7-6-2 設定最適欄位寬度
7-6-3 匯入 Excel 界面
7-6-4 讀取匯入的 Excel 資料
7-6-5 產生 Excel 預覽界面並批次匯入資料
8. PDF、Word文件輸出
8-1 第一節 PDF簡易製作法
8-1-1 無痛產生PDF
8-1-2 TCPDF 基本設定
8-1-3 用 HTML 快速產生 PDF
8-2 第二節 精雕細琢產生 PDF
8-2-1 手動刻畫PDF檔內容的幾種方法
8-2-2 手刻簽到表
8-2-3 將報名欄位做成類別方法
8-3 第三節 動態產生PDF
8-3-1 用雙框挑選器來設定PDF簽到表
8-3-2 寫入 PDF 設定
8-3-3 產出套用設定的PDF檔
8-3-4 更換PDF字型為全字庫
8-4 第四節 產生 docx 檔(word)
8-4-1 產生docx或odt檔案的基本架構
8-4-2 產生各種格式的簽到表
8-5 第五節 產生 word 檔內容
8-5-1 加入內容到word檔
8-5-2 插入表格到word中
8-5-3 產生 OpenDocument(odt)檔案
8-5-4 優化操作流程
8-6 第六節 利用樣板產生 word 檔
8-6-1 製作套用樣板檔
8-6-2 將值套用到樣板檔
8-6-3 將值套用到樣板的表格中
9. API製作、操作優化並製成多國語系模組釋出
9-1 第一節 產生 API
9-1-1 建立專屬的 API 類別
9-1-2 建立 API 介接入口
9-1-3 用 API 取得所有活動
9-2 第二節 API認證及接收API
9-2-1 限制登入後才能取得資料
9-2-2 有權限的群組才能取得資料
9-2-3 接收 API 並產生頁面
9-3 第三節 做成多國語系模組
9-3-1 關於XOOPS的語系
9-3-2 建立後台語系 admin.php
9-3-2-1 admin\main.php 套用語系
9-3-2-2 admin\power.php 套用語系
9-3-3 建立設定檔語系 modinfo.php
9-3-3-1 admin\menu.php 套用語系
9-3-3-2 xoops_version.php 套用語系
9-3-4 建立區塊語系 blocks.php
9-3-4-1 blocks\action_list.php 套用語系
9-3-4-2 blocks\action_signup.php 套用語系
9-3-4-3 templates\blocks\action_list.tpl 套用語系
9-3-4-4 templates\blocks\action_signup.tpl 套用語系
9-4 第四節 建立前台語系
9-4-1 建立主要語系 main.php
9-4-2 修改所有前台PHP檔
9-4-2-1 class\Tad_signup_actions.php 套用語系
9-4-2-2 class\Tad_signup_api.php 套用語系
9-4-2-3 class\Tad_signup_data.php 套用語系
9-4-2-4 include\onInstall.php 套用語系
9-4-2-5 include\onUpdate.php 套用語系
9-4-2-6 csv.php 套用語系
9-4-2-7 excel.php 套用語系
9-4-2-8 html.php 套用語系
9-4-2-9 index.php 套用語系
9-4-2-10 interface_menu.php 套用語系
9-4-2-11 odt_signup.php 套用語系
9-4-2-12 pdf_signup.php 套用語系
9-4-2-13 pdf.php 套用語系
9-4-2-14 word_signup.php 套用語系
9-4-2-15 word.php 套用語系
9-5 第五節 製作樣及英文語系
9-5-1 修改所有前台的樣板檔
9-5-1-1 templates\op_tad_signup_actions_create.tpl 套用語系
9-5-1-2 templates\op_tad_signup_actions_index.tpl 套用語系
9-5-1-3 templates\op_tad_signup_actions_show.tpl 套用語系
9-5-1-4 templates\op_tad_signup_data_create.tpl 套用語系
9-5-1-5 templates\op_tad_signup_data_my.tpl 套用語系
9-5-1-6 templates\op_tad_signup_data_pdf_setup.tpl 套用語系
9-5-1-7 templates\op_tad_signup_data_preview_csv.tpl 套用語系
9-5-1-8 templates\op_tad_signup_data_preview_excel.tpl 套用語系
9-5-1-9 templates\op_tad_signup_data_show.tpl 套用語系
9-5-2 建立英文語系
9-6 第六節 打包模組、釋出模組
9-6-1 編寫說明檔
9-6-2 修改 xoops_version.php 的版號及發布日期
9-6-3 利用 WinMerge 來過濾 git 檔並比較和舊版差異
9-6-4 反安裝模組,並重裝模組
9-6-5 將模組發布至 https://campus-xoops.tn.edu.tw/
10. 課程補充
10-1 新增XOOPS會員
10-2 在 interface_menu.php 另外判斷群組權限的用法?
1-2-4 VSCode 常用快捷鍵
\[1102\] PHP全端開發 ================ 1. 設定→新增程式碼片段(可以加快開發速度,日後亦可將常用語法自行加入) 2. html.json ```javascript { "jquery語法": { "prefix": "jquery", "scope": "html,smarty", "body": [ "" ], "description": "jquery語法" }, "引入樣板": { "prefix": "includeq", "scope": "html,smarty", "body": [ "<{includeq file=\"\\$xoops_rootpath/modules/$WORKSPACE_NAME/templates/${2:樣板檔}.${3|tpl,html|}\"}>" ], "description": "引入樣板" }, "foreach 迴圈": { "prefix": "foreach", "scope": "html,smarty", "body": [ "<{foreach from=$${1:來源變數} key=${2:索引} item=${3:內容名稱} name=$1}>", " $BLOCK_COMMENT_START 從0開始的次數 <{$smarty.foreach.$1.index}> $BLOCK_COMMENT_END", " $BLOCK_COMMENT_START 從1開始的次數 <{$smarty.foreach.$1.iteration}> $BLOCK_COMMENT_END", " <{$$2}>:<{$$3}>", "<{/foreach}>" ], "description": "foreach 迴圈" }, "li項目": { "prefix": "li", "scope": "html,smarty,vue", "body": [ "
$CLIPBOARD
" ], "description": "li項目" }, "alert 框": { "prefix": "alert", "scope": "html,smarty,vue", "body": [ "
", " $2", "
" ], "description": "alert 框" }, "smarty語系": { "prefix": "const", "scope": "html,smarty", "body": [ "<{\\$smarty.const.${1:語系名稱}}>" ], "description": "smarty語系" }, "EasyResponsiveTabs 物件樣板": { "prefix": "tabs", "scope": "html,smarty", "body": [ "
", "
", " <{foreach from=\\$${1:來源變數} key=${2:索引} item=${3:內容名稱}}>", "
\\$$2
", " <{/foreach}> ", "
", "", "
", " <{foreach from=\\$$1 key=$2 item=$3}>", "
\\$$3
", " <{/foreach}>", "
", "
" ], "description": "EasyResponsiveTabs 物件" }, } ``` 3. xoops.json(全域) ```javascript { "重新導向": { "scope": "php", "prefix": "red", "body": [ "redirect_header(\\$_SERVER['PHP_SELF'], 3, \"${0:已成功執行!}\");" ], "description": "加入 redirect_header() 重新導向" }, "斷點列出變數值": { "scope": "php", "prefix": "dd", "body": [ "Utility::dd(\\$${1:var});" ], "description": "斷點列出變數值" }, "assign到樣板": { "prefix": "assign", "scope": "php", "body": [ "\\$xoopsTpl->assign('${1:變數名稱}', \\$$1);" ], "description": "assign到樣板" }, "產生word": { "prefix": "word", "scope": "php", "body": [ "require 'vendor/autoload.php';", "\\$phpWord = new \\PhpOffice\\PhpWord\\PhpWord();", "\\$filename = \"${1:檔名}\";", "\\$filename = iconv(\"UTF-8\", \"Big5\", \\$filename);", "\\$objWriter = \\PhpOffice\\PhpWord\\IOFactory::createWriter(\\$phpWord, 'Word2007');", "header('Content-Type: application/vnd.ms-word');", "header(\"Content-Disposition: attachment;filename={\\$filename}.docx\");", "header('Cache-Control: max-age=0');", "\\$objWriter->save('php://output');" ], "description": "產生word" }, "web_error 資料庫執行錯誤": { "prefix": "web_error", "scope": "php", "body": [ "web_error(\\$sql, __FILE__, __LINE__);" ], "description": "web_error 資料庫執行錯誤" }, "assign 變數到樣板": { "prefix": "assign", "scope": "php", "body": [ "\\$xoopsTpl->assign('$CLIPBOARD', \\$$CLIPBOARD);" ], "description": "assign 變數到樣板" }, "Request 過濾": { "prefix": "request", "scope": "php", "body": [ "use Xmf\\Request;", "\\$op = Request::getString('op');" ], "description": "Request 過濾" }, "use 物件": { "prefix": "use Utility", "scope": "php", "body": [ "use XoopsModules\\Tadtools\\Utility;" ], "description": "use 物件" }, "EasyResponsiveTabs 物件程式": { "prefix": "tabs", "scope": "php", "body": [ "use XoopsModules\\Tadtools\\EasyResponsiveTabs;", "\\$EasyResponsiveTabs = new EasyResponsiveTabs('#demoTab', '${1|default,vertical,accordion'|}');", "\\$EasyResponsiveTabs->rander();", "" ], "description": "EasyResponsiveTabs 物件" }, "sql fetchArray": { "prefix": "sql fetchArray", "scope": "php", "body": [ "\\$sql = \"SELECT * FROM `\" . \\$xoopsDB->prefix('${1:資料表}') . \"` where 1\";", "\\$result = \\$xoopsDB->query(\\$sql) or Utility::web_error(\\$sql, __FILE__, __LINE__);", "\\$data = [];", "while (false !== (\\$all = \\$xoopsDB->fetchArray(\\$result))) {", " foreach (\\$all as \\$k => \\$v) {", " \\$\\$k = \\$v;", " }", " \\$data[] = \\$all ;", "}", "return \\$data;" ], "description": "sql fetchArray" }, "sql fetchRow": { "prefix": "sql fetchRow", "scope": "php", "body": [ "\\$sql = \"SELECT * FROM `\" . \\$xoopsDB->prefix('${1:資料表}') . \"` where 1\";", "\\$result = \\$xoopsDB->query(\\$sql) or Utility::web_error(\\$sql, __FILE__, __LINE__);", "while (false !== (list(\\$${2:欄位}) = \\$xoopsDB->fetchRow(\\$result))) {", " $2;", "}" ], "description": "sql fetchRow" }, "getPageBar 分頁": { "prefix": "pageBar", "scope": "php", "body": [ "", "\\$PageBar = Utility::getPageBar(\\$sql, 20, 10);", "\\$sql = \\$PageBar['sql'];", "\\$bar = \\$PageBar['bar'];", "\\$total = \\$PageBar['total'];", "", "\\$xoopsTpl->assign('bar', \\$bar);", "\\$xoopsTpl->assign('total ', \\$total );", "" ], "description": "getPageBar 分頁" }, "載入xoops_adm.css": { "prefix": "xoops_adm", "scope": "php", "body": [ "\\$xoTheme->addStylesheet(XOOPS_URL . \"/modules/tadtools/css/xoops_adm{\\$_SESSION['bootstrap']}.css\");" ], "description": "載入xoops_adm.css" }, "getArray": { "prefix": "getArray", "scope": "php", "body": [ "\\$${1:name} = Request::getVar('${1}', [], null, 'array', 4);" ], "description": "getArray" }, } ``` 4. b34.json(獨家配方,同時支援BootStrap3、BootStrap4的寫法) ```javascript { "B34 的表單": { "prefix": "form", "scope": "html,smarty", "body": [ "
", " $0", " <{\\$token_form}>", "
\">", "
", "
", "
<{\\$smarty.const._TAD_SAVE}>", "
", "
", "
" ], "description": "B34 的表單" }, "B34 的 form-group>input": { "prefix": "form-group>input", "scope": "html,smarty", "body": [ "
", "
", " ${3:標題}", "
", "
", "
\" placeholder=\"請輸入$3\">", "
", "
" ], "description": "B34 的 form-group>input" }, "B34 的 input": { "prefix": "textarea", "scope": "html,smarty", "body": [ "
\" placeholder=\"請輸入$1\">" ], "description": "B34 的 input" }, "B34 的 form-group>textarea": { "prefix": "form-group>textarea", "scope": "html,smarty", "body": [ "
", "
", " ${3:標題}", "
", "
", "
<{$$4}>
", "
", "
" ], "description": "B34 的 form-group>textarea" }, "B34 的 textarea": { "prefix": "textarea", "scope": "html,smarty", "body": [ "
<{$$1}>
" ], "description": "B34 的 textarea" }, "B34 的 form-group>select": { "prefix": "form-group>select", "scope": "html,smarty", "body": [ "
", "
", " ${3:標題}", "
", "
", "
", "
checked<{/if}>>$6
", "
", "
", "
" ], "description": "B34 的 form-group>select" }, "B34 的 select": { "prefix": "select", "scope": "html,smarty", "body": [ "
", "
checked<{/if}>>$3
", "
" ], "description": "B34 的 select" }, "B34 的 form-group>radio": { "prefix": "form-group>radio", "scope": "html,smarty", "body": [ "
", "
", " ${3:標題}", "
", "
", "
", "
", "
checked<{/if}>>", " $5", "
", "
", "
", "
" ], "description": "B34 的 form-group>radio" }, "B34 的 radio": { "prefix": "radio", "scope": "html,smarty", "body": [ "
", "
", "
checked<{/if}>>", " $2", "
", "
" ], "description": "B34的radio" }, "B34 的 form-group>checkbox": { "prefix": "form-group>checkbox", "scope": "html,smarty", "body": [ "
", "
", " ${3:標題}", "
", "
", "
", "
", "
checked<{/if}>>", " $5", "
", "
", "
", "
" ], "description": "B34 的 form-group>checkbox" }, "B34 的 checkbox": { "prefix": "checkbox", "scope": "html,smarty", "body": [ "
", "
", "
checked<{/if}>>", " $2", "
", "
" ], "description": "B34 的 checkbox" }, "B34 的 input-group": { "prefix": "input-group", "scope": "html,smarty", "body": [ "
", "
", "
${1:文字}
", "
", "
", "
", "
${4:送出}
", "
", "
" ], "description": "B34 的 input-group" }, } ```
:::
搜尋
search
進階搜尋
QR Code 區塊
快速登入
所有討論區
「PHP全端開發」線上課程討論區
XOOPS使用討論區
一般研習學員
社大學員專用
路過哈啦區
XOOPS佈景設計
XOOPS模組開發
Tad書籍區
即時留言簿
書籍目錄
展開
|
闔起
線上使用者
52
人線上 (
8
人在瀏覽
線上書籍
)
會員: 0
訪客: 52
更多…