線上書籍

Home

XOOPS模組開發記錄

一、說明

當新增記錄後,一般會轉向至列表或顯示單筆

二、流程

  1. 使用 switch:switch 語句用於基於不同條件執行不同動作。
  2. Switch 語句

    如果您希望有選擇地執行若干代碼塊之一,請使用 Switch 語句。

    使用 Switch 語句可以避免冗長的 if..elseif..else 代碼塊。

  3. 語法
     

    switch (expression) { case label1: code to be executed if expression = label1; break; case label2: code to be executed if expression = label2; break; default:     # ---- 目前網址 ----     $_SESSION['return_url'] = getCurrentUrl();     $op = "opList";     opList(); }

     

  4. 工作原理:
    對表達式(通常是變數$op)進行一次計算
    把表達式的值與結構中 case 的值進行比較
    如果存在匹配,則執行與 case 關聯的代碼
    代碼執行後,break 語句阻止代碼跳入下一個 case 中繼續執行
    如果沒有 case 為真,則使用 default 語句,並給予$op預設值 opList
    若執行轉向或AJAX請用 exit 

三、函數

  1. global global $xoopsDB,$xoopsTpl;

     

  2. 引入 #---- 過濾資料 -------------------------- $myts = &MyTextSanitizer::getInstance();

     

  3. 外鍵 #外鍵 $ForeignKeyMainOption = get_ForeignKeyMainOption("ugm_stk_staff",$staff, false); $ForeignKey=" <div class='row my-2'> <div class='col-sm-3'> <select name='staff' id='staff' onchange=\"location.href='?staff='+this.value\" class='form-control'> $ForeignKeyMainOption </select> </div> </div> "; $xoopsTpl->assign("ForeignKey", $ForeignKey);

     

  4. 撈資料 $andKey = $staff ? "where a.`staff`='{$staff}'":""; #撈資料 $sql="select a.`sn`,a.`no`,a.`title`,a.`tel`,a.`fax`,a.`contact`,b.`title` as `staff_title`,a.`uniform`,a.`enable` from " . $xoopsDB->prefix("ugm_stk_vendor") . " as a left join ". $xoopsDB->prefix("ugm_stk_staff") ." as b on a.staff = b.sn $andKey order by a.`sort` desc,a.`date` desc";//die($sql);

     

  5. 分頁 //getPageBar($原sql語法, 每頁顯示幾筆資料, 最多顯示幾個頁數選項); $p_count = 20; $PageBar = getPageBar_b4($sql, $p_count, 10); $bar = $PageBar['bar']; $sql = $PageBar['sql']; $total = $PageBar['total']; $bar = $total > $p_count ? "<hr>".$bar : ""; $xoopsTpl->assign("bar", $bar);

     

  6. 整理記錄 $result = $xoopsDB->query($sql) or redirect_header($_SERVER['PHP_SELF'], 3, web_error()); $rows = array(); while ($row = $xoopsDB->fetchArray($result)) { // $row['sn'] = intval($row['sn']);//客戶流水號 $row['no'] = $myts->htmlSpecialChars($row['no']);//公司編號 $row['title'] = $myts->htmlSpecialChars($row['title']);//公司名稱 $row['tel'] = $myts->htmlSpecialChars($row['tel']);//公司電話 $row['fax'] = $myts->htmlSpecialChars($row['fax']);//公司傳真 $row['contact'] = $myts->htmlSpecialChars($row['contact']);//聯絡人 $row['staff_title'] = $myts->htmlSpecialChars($row['staff_title']);//業務員 $row['uniform'] = $myts->htmlSpecialChars($row['uniform']);//統一編號 $row['enable'] = intval($row['enable']);//啟用 $rows[] = $row; } $xoopsTpl->assign("rows", $rows);

     

  7.  

四、樣板

  1. boostrap3 面板
    https://v3.bootcss.com/components/#panels
  2.