LiteSite/signup

出自六年制學程
在2020年6月21日 (日) 13:52由丁志仁對話 | 貢獻所做的修訂版本

跳轉到: 導覽搜尋

用於調查、報名、連署

○、程式清單

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	秀簡介

一、signupCommon.php

(○)1~3表

連結資料庫:

  1. 靠 theme.php 連結資料庫
  2. 如果要使用預設資料庫之外的資料庫,才下「DB::connect("mysql://…");

三資料表:

  1. $tbl:人員資料表
  2. $tbll:關係資料表
  3. $tblo:關係資料表所連的另一主體資料表

(一)主程式

  1. 載入常數、布景直到連上資料庫
  2. 設定表名:$tbl=$prefix.'Signup'.$suffix;
  3. 安排欄屬性:
    • 不使用欄:$dropField=array(…);
    • 欄代名:$alias=array('欄名'=>'提示',…);
    • 須查欄:$fields=array('欄名'=>'提示',…);由資料表衍生
    • 必填欄:$mustField=array('欄名',…);
    • mail欄:$emailField=array('欄名');
    • 預設值欄:$defaultField=array('欄名'=>'預設值',…);
  4. 設定欄的 formType
    • 是否欄:$radioyn=array('欄名',…);
    • 核取欄:$checkbox=array('欄名',…);
    • 隱藏欄:$hidden=array('欄名'=>'後送值',…);
    • 多值欄:$bitCheckbox=array('欄名'=>array(值=>提示,…));
  5. 認證欄與認證條件:
    • $idField
    • $psdField
    • $郵址
    • $姓名
    • $idKey:辨識欄=輸入值
    • $idKeyE:辨識欄=輸入值 且 密碼欄=輸入值
  6. $tbll及$tblo相關諸欄
  7. 可套用選項:$options
    • $options['職業屬性']
    • $options['city']
    • $options['device']
    • $options['OS']
    • $options['學校職務']
    • $options['rule']
  8. phpmailer 路徑
  9. 設定提示字:
    • $surveyTitle:整個調查、報名、連署的總名稱,如:跨校選修/「留下小孩唸書的錢,台灣才有翻身的希望」
    • $FromName:通知的寄信人,如:丁志仁
    • $mailHead:各項用\n間隔開,最後一項末尾也要加\n
      1. Content-Type: text/html; charset=UTF-8
      2. Content-Transfer-Encoding: 8bit
      3. 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:行前通知信文
  10. 調製調查問題 $surveyQuery=array()
  11. $str
    • javascript
    • 調查或報名相關說明
    • 表單前半
  12. 函式 basicInformation
  13. 函式 surveyQuery

二、$str

(一)javascript

  1. chkForm():
    • 從必填欄中,檢查 email 及必填
    • 檢查核取必填欄
  2. isEmail(待檢字串):檢查
  3. showHide(核取物件,顯隱物件ID):顯隱切換

(二)$surveyExplain

(三)form

  1. 導向自己的程式名
  2. name=調查表

(四)表前

  1. 跨三欄
  2. $surveyShortTitle

三、basicInformation()

諸引數:

  1. $fields
  2. $dropField
  3. $mustField
  4. $fieldValue=array()

全域變數

  1. $str
  2. $radioyn
  3. $checkbox
  4. $hidden
  5. $options
  6. $checkField
  7. $alias

每一個$fields元素做一次,但排除用餐、住宿、交通、ip:

  1. 非隱藏欄須做提示,提示空字串不加「:」,必填欄加「*」
  2. $checkField做顯隱
  3. $checkbox後送1
  4. $bitCheckbox:1byte後送多值
  5. 提示為「性別」做男女 radio
  6. $radioyn做是否 radio
  7. 提示為「職業屬性、學校職務、行動裝置、作業系統、學生戶籍」套用選項,做 select
  8. 欄值為「city、role」套用選項,做 select
  9. 欄值為「idOfSchool」:即時追踪使用者輸入的字串,蒐索校名縮小範圍,選定之後送 sid
  10. $hidden後送設定值
  11. 其他做 input/text