Nenhuma descrição
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

ModuleInitBehavior.php 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace app\user\behavior;
  3. use think\Config;
  4. /**
  5. * 系统行为扩展:
  6. */
  7. class ModuleInitBehavior {
  8. protected static $actionName;
  9. protected static $controllerName;
  10. protected static $moduleName;
  11. protected static $method;
  12. /**
  13. * 构造方法
  14. * @param Request $request Request对象
  15. * @access public
  16. */
  17. public function __construct()
  18. {
  19. }
  20. // 行为扩展的执行入口必须是run
  21. public function run(&$params){
  22. self::$actionName = request()->action();
  23. self::$controllerName = request()->controller();
  24. self::$moduleName = request()->module();
  25. self::$method = request()->method();
  26. $this->_initialize();
  27. }
  28. private function _initialize() {
  29. $this->vertifyCode();
  30. }
  31. /**
  32. * 注册/登录/找回密码 - 验证码
  33. * @param array $params 传入参数
  34. * @access public
  35. */
  36. private function vertifyCode()
  37. {
  38. /*只有相应的控制器和操作名才执行,以便提高性能*/
  39. $ctlActArr = array(
  40. 'user@Users@login',
  41. 'user@Users@users_select_login',
  42. 'user@Users@reg',
  43. 'user@Users@retrieve_password',
  44. 'user@Users@retrieve_password_mobile',
  45. );
  46. $ctlActStr = self::$moduleName.'@'.self::$controllerName.'@'.self::$actionName;
  47. if (in_array($ctlActStr, $ctlActArr)) {
  48. $row = tpSetting('system.system_vertify');
  49. // 获取验证码配置信息
  50. $row = json_decode($row, true);
  51. $baseConfig = Config::get("captcha");
  52. if (!empty($row)) {
  53. foreach ($row['captcha'] as $key => $val) {
  54. if ('default' == $key) {
  55. $baseConfig[$key] = array_merge($baseConfig[$key], $val);
  56. } else {
  57. $baseConfig[$key]['is_on'] = $val['is_on'];
  58. $baseConfig[$key]['config'] = array_merge($baseConfig['default'], $val['config']);
  59. }
  60. }
  61. }
  62. Config::set('captcha', $baseConfig);
  63. }
  64. }
  65. }