LiteSite/signup
出自六年制學程
用於調查、報名、連署
○、版本
- 2020.4:「學前教育公共化」研討會(signupDoings)
- 2021.3:「自主學習輔導平台建構」選主題分享(signupDoings)
- 2021.1:跨校選修學習需求調查(signupDoings)
- 2020.10:海星共識營(signupDoings)
- 2020.7:「不錯學群」新生面談預約(signupDoings2)
- 2020.6:「不錯學群」招生說明會(signupDoings)
- 2021.8:「海星的回顧與修改」(/EM/signupDoings/thisDoing.php)
- 2021.10:自帶培籌備活動3報名(/EMEP/ALPartner/signupDoings/thisDoing.php)
- 2022.1:「自主學習三日譚」註冊(/EMEP/20220124/signupDoings/thisDoing.php)
- 2022.2:「動手學科學」招募實習生(/s4e/signupDoings/thisDoing.php)
- 2022.3:均優2022議程人員自填資料(/2022/signupDoings/thisDoing.php)
- 2022.4:振鐸40週年籌備茶會(/jendo/40years/signupDoings/thisDoing.php)
- 2022.11:「開門辦教育落花生」報名(/EMEP/peanut/signupDoings/thisDoing.php)
- 2023.5:「教育再公共化聯盟」成立紀者會報名(/ggp/signupDoings)
一、檔案清單
(一)程式列表
thisDoing.php 當前活動設定檔 signupCommon.php 各活動通用設定檔,各系統不同點主要是前置字和郵寄伺服器 signup.php 首次報名 signupE.php 修改報名資料,即依帳號選擇並維護個人資料 signupE.php?buttonWord=按鈕字樣 signupPerson.php 管理者看報名者一覽表 signupPersonR.php 公眾看報名者一覽表 signupComment.php 報名者意見留言,依不同的 siteGrp ,調整常數prefix,Doings,變數$ET->formType['commentCategory'] participantNotice.php 寄行前通知 showIntroduction.php 秀簡介 活動管理.php 問卷結果.php 廣宣清單.php
(二)近期使用
- 海星共識營報名:/EM/signupDoings
- 跨校選修學習需求調查:/NL/signupDoings
- 不錯學群報名及面談登記:/NL/signupDoings、signupDoings2
- 學前教育公共化研討會報名
- 部分班級實驗教育客廳會報名
二、signupCommon.php
(○)1~3表
連結資料庫:
- 靠 theme.php 連結資料庫
- 如果要使用預設資料庫之外的資料庫,才下「DB::connect("mysql://…");
三資料表:
- $tbl:人員資料表
- $tbll:關係資料表
- $tbll."KeyValue":相依於 $lKeyValue 陣列(在 thisDoing.php 中設定),為每活動每報名者的問巻題目答案
- $tblo:關係資料表所連的另一主體資料表
(一)主程式
- 載入常數、布景直到連上資料庫
- 設定表名:$tbl=$prefix.'Signup'.$suffix;
- 安排欄屬性:
- 不使用欄:$dropField=array(…);
- 欄代名:$alias=array('欄名'=>'提示',…);
- 須查欄:$fields=array('欄名'=>'提示',…);由資料表衍生
- 必填欄:$mustField=array('欄名',…);
- mail欄:$emailField=array('欄名');
- 預設值欄:$defaultField=array('欄名'=>'預設值',…);
- 設定欄的 formType
- 是否欄:$radioyn=array('欄名',…);
- 核取欄:$checkbox=array('欄名',…);
- 隱藏欄:$hidden=array('欄名'=>'後送值',…);
- 多值欄:$bitCheckbox=array('欄名'=>array(值=>提示,…));
- 認證欄與認證條件:
- $idField
- $psdField
- $郵址
- $姓名
- $idKey:辨識欄=輸入值
- $idKeyE:辨識欄=輸入值 且 密碼欄=輸入值
- $tbll及$tblo相關諸欄
- 可套用選項:$options
- $options['職業屬性']
- $options['city']
- $options['device']
- $options['OS']
- $options['學校職務']
- $options['rule']
- phpmailer 路徑
- 設定提示字:
- $surveyTitle:整個調查、報名、連署的總名稱,如:跨校選修/「留下小孩唸書的錢,台灣才有翻身的希望」
- $FromName:通知的寄信人,如:丁志仁
- $mailHead:各項用\n間隔開,最後一項末尾也要加\n
- Content-Type: text/html; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- From: 丁志仁 <admin@science4everyone.net>
- $surveyExplain:表單之上文字,如:/為求連署有效,請以真實姓名,真實 Email 連署。
- $surveyShortTitle:signup的性質,如:選課/報名/調查/連署
- $surveyQueryTitle:各問題之上的抬頭,如:可選課程一覽表:/我要連署
- $surveySubmit:後送按鈕,如:選課/連署
- $surveyContact:聯絡人,如:'系統聯絡人:
林青高:0910100693 E-mail:inorganicom@gmail.com'; - $signupPeriod:報名截止時間,如:mktime(13,55,59,10,29,2019)
- $expiredMsg:報名截止後提示,如:報名時間已過
- $surveyR0Msg:報名成功頁面秀出文字,說明聯絡事宜。
- $surveyR1Msg:已報名過頁面秀出之提示字
- $surveyR2Msg:報名成功頁面秀出文字,說明 signup 已成功。
- $surveyR3Msg:寄通知之主旨
- $surveyR4Msg:寄通知之信文
- $surveyR5Msg:寄通知之寄件者
- $surveyE1Msg:驗證未通過之提示
- $surveyER0Msg:說明聯絡事宜
- $surveyER1Msg:修改成功頁面秀出文字
- $surveyER2Msg:寄修改通知之主旨
- $surveyER3Msg:寄修改通知之信文
- $surveyER4Msg:驗證未過之提示
- $n:通知計數上限,只能由此行改動,不准由 URL 輸入值
- $surveyN1Msg:行前通知互動提示,如:沒有需要發通知的人。
- $surveyN2Msg:行前通知主旨
- $surveyN3Msg:行前通知信文
- 調製調查問題 $surveyQuery=array()
- $str
- javascript
- 調查或報名相關說明
- 表單前半
- 函式 basicInformation
- 函式 surveyQuery
(二)$str
①javascript
- chkForm():
- 從必填欄中,檢查 email 及必填
- 檢查核取必填欄
- isEmail(待檢字串):檢查
- showHide(核取物件,顯隱物件ID):顯隱切換
②$surveyExplain
③form
- 導向自己的程式名
- name=調查表
④表前半部
- 跨三欄
- $surveyShortTitle
⑤表後半部
(三)basicInformation($fields,$dropField,$mustField,$fieldValue=array(),$取消報名=0)
諸引數:
- $fields
- $dropField
- $mustField
- $fieldValue=array()
- $取消報名=0
全域變數
- $str
- $radioyn
- $checkbox
- $hidden
- $options
- $checkField
- $alias
每一個$fields元素做一次,但排除用餐、住宿、交通、ip:
- 非隱藏欄須做提示,提示空字串不加「:」,必填欄加「*」
- $checkField做顯隱
- $checkbox後送1
- $bitCheckbox:1byte後送多值
- 提示為「性別」做男女 radio
- $radioyn做是否 radio
- 提示為「職業屬性、學校職務、行動裝置、作業系統、學生戶籍」套用選項,做 select
- 欄值為「city、role」套用選項,做 select
- 欄值為「idOfSchool」:即時追踪使用者輸入的字串,蒐索校名縮小範圍,選定之後送 sid
- $hidden後送設定值
- 其他做 input/text
(四)surveyQuery($surveySubmit='修改',$fieldValue=array())
諸引數:
- $surveySubmit='修改'
- $fieldValue=array():各問題項的值,索引為問題項的 ID
全域變數
- $str
- $surveyQueryTitle:問題項的總抬頭,可以是空字串
- $surveyShortTitle
- $surveyQuery:問題項陣列
- $surveyQueryVchar
- $surveyQueryCheckbox
- $surveyDimensions:調查維度,0維沒有問題項;一維就一排問題項;二維問題項,問題有分類
- $categoryItem
- $lField:關係資料表每一筆的待問設定
- 簡答:$lField['varchar']=array('欄名'=>'提示','欄名'=>'提示',…);
- 核取:$lField['checkbox']=array('欄名'=>'提示','欄名'=>'提示',…);
- $lKeyValue
每一個可以被選的問題項(如一門課)做一次:
- 選取問題項的核取方塊
- 造出所有的 $lField['checkbox']
- 造出所有的 $lField['varchar'],每一欄一行
- 之後處理 $lKeyValue
- 須要以下全域變數:$tbl,$tblKey,$idKey,$tbll,$tblKey,$tbloKey
- 目前 'formType' 有:
- text:填字
- textarea:多行填字
- checkbox:複選
三、signup.php
四、signupE.php
(一)共同前置處理
- 將 $_REQUEST['buttonWord'] 轉成常數「surveyQuerySubmit」,預設為「修改」。
- 將傳入值全部化為變數。必須先於載入 signupCommon.php ,因 signupCommon.php 中的 $idKey 會用到這些變數。
- 載入 signupCommon.php 。