pbootcms二次開發增加例子
增加一個【續費客戶】菜單:
重新登錄后,就可以看到側欄菜單。
五、新建控制器
默認情況,我們新建模塊,需要在 apps/admin/controller 目錄下新建控制器
例如:RenewalController.php
配置好命名空間后即可訪問。
但是我們看上面的配置都是分模塊的,例如:content,member,system,這個在哪里配置呢?
分模塊配置,需要單獨的配置路由:
位置:apps / common / route.php
六、get 函數
在使用PbootCMS進行二次開發的時候,經常會看到使用 get 函數,例如:
$id = get('id', 'int');$mcode = get('mcode', 'var');$keywords = get('keywords', 'vars');
通過該 get 函數,可以用于接收參數,并且制定類型,具體函數類型:core / function / helper.php
然后是這個 filter 方法:
function filter($varname, $condition) { // 變量名稱文本 if (array_key_exists($varname, $condition) && $condition[$varname]) { $vartext = $condition[$varname]; } else { $vartext = $varname; } // 數據源 if (array_key_exists('d_source', $condition)) { switch ($condition['d_source']) { case 'post': $data = @$_POST@[$varname]; break; case 'get': $data = @$_GET@[$varname]; break; case 'cookie': $data = @$_COOKIE[$varname]; break; case 'session': $data = session($varname); break; case 'both': $data = @$_POST@[$varname] ?: @$_GET@[$varname]; break; case 'string': $data = $varname; default: error($vartext . '數據獲取方式設置錯誤!'); } // 去空格 if (is_string($data)) $data = trim($data); } else { $data = $varname; // 沒有數據源指定時直接按照字符串過濾處理 } // 數據為空時,進行是否允許空檢測 if (! $data && array_key_exists('d_none', $condition) && $condition['d_none'] === false) { error($vartext . '不能為空!'); } // 判斷是否強制檢測,為true時,意味著如果數據不滿足要求直接報錯,否則返回null if (array_key_exists('d_require', $condition) && $condition['d_require'] == true) { $require = true; } else { $require = false; } // 數據類型檢測 if (array_key_exists('d_type', $condition)) { switch ($condition['d_type']) { case 'int': if (! preg_match('/^[0-9]+$/', $data)) { $err = '必須為整數!'; } break; case 'float': if (! is_float($data)) { $err = '必須為浮點數!'; } break; case 'num': if (! is_numeric($data)) { $err = '必須為數字!'; } break; case 'letter': if (! preg_match('/^[a-zA-Z]+$/', $data)) { $err = '只能包含字母!'; } break; case 'var': if (! preg_match('/^[\w\-\.]+$/', $data)) { $err = '只能包含字母、數字、劃線、點!'; } break; case 'bool': if (! is_bool($data)) { $err = '必須為布爾類型!'; } break; case 'date': if (! strtotime($data)) { $err = '必須為日期類型!'; } break; case 'array': if (! is_array($data)) { $err = '必須為數組類型!'; } break; case 'object': if (! is_object($data)) { $err = '必須為對象類型!'; } break; case 'vars': if (! preg_match('/^[\x{4e00}-\x{9fa5}\w\-\.,\s]+$/u', $data)) { $err = '只能包含中文、字母、數字、橫線、點、逗號、空格!'; } break; default: if ($condition['d_type']) error($vartext . '數據類型設置錯誤!'); } } // 非必須或必須但無錯誤時執行 if ((! $require || ($require && ! isset($err)))) { // 正則匹配 if (array_key_exists('d_regular', $condition)) { if (! preg_match($condition['d_regular'], $data)) { $err = '不符合正則表達式規則!'; } } // 最大值匹配 if (array_key_exists('d_max', $condition)) { if (is_numeric($data)) { if ($data > $condition['d_max']) { $err = '不能大于' . $condition['d_max']; } } else { if (mb_strlen($data) > $condition['d_max']) { $err = '長度不能大于' . $condition['d_max']; } } } // 最小值匹配 if (array_key_exists('d_min', $condition)) { if (is_numeric($data)) { if ($data < $condition['d_min']) { $err = '不能小于' . $condition['d_min']; } } else { if (mb_strlen($data) < $condition['d_min']) { $err = '長度不能小于' . $condition['d_min']; } } } } // 如果為必須且有錯誤,則顯示錯誤,如果非必須,但有錯誤,則設置數據為null if ($require && isset($err)) { error($vartext . $err); } elseif (isset($err)) { $data = null; } // 如果設置有默認值,默認值 if (array_key_exists('d_default', $condition)) { $data = (! is_null($data)) ? $data : $condition['d_default']; } if (is_string($data)) { $data = trim($data); // 去空格 $data = preg_replace_r('/()|()/', '', $data); // 去十六進制括號 $data = preg_replace_r('/pboot@if/i', 'pboot@if', $data); // 過濾插入cms條件語句 $data = preg_replace_r('/pboot@sql/i', 'pboot@sql', $data); // 過濾插入cms條件語句 $data = preg_replace_r('/GET\[/i', 'GET@[', $data); $data = preg_replace_r('/POST\[/i', 'POST@[', $data); } // 銷毀錯誤 unset($err); // 返回收據 return escape_string($data); }
到此,基本上就可以用PbootCMS做二次開發了。
如果您的問題還未解決可以聯系站長付費協助。

有問題可以加入技術QQ群一起交流學習
本站vip會員 請加入無憂模板網 VIP群(50604020) PS:加入時備注用戶名或昵稱
普通注冊會員或訪客 請加入無憂模板網 技術交流群(50604130)
客服微信號:15898888535
聲明:本站所有文章資源內容,如無特殊說明或標注,均為采集網絡資源。如若內容侵犯了原著者的合法權益,可聯系站長刪除。