public function respond() { global $_SGLOBAL, $wx; $level = array(); if (!empty($wx->weixin['account']['modules'])) { foreach ($wx->weixin['account']['modules'] as $row) { if (!empty($row['displayorder'])) { $level[$row['displayorder']] = $row; } } } if (!empty($level)) { $response = ''; foreach ($level as $k => $v) { if (!empty($response)) { $wx->response['module'] = $wx->weixin['module']; return $response; break; } if (empty($level[$k])) { continue; } $wx->weixin['module'] = $level[$k]['name']; $processor = WX_Utility::create_module_processor($wx->weixin['module']); $processor->message = $wx->message; $processor->module = $wx->weixin['account']['modules'][$wx->weixin['module']]; $response = $processor->respond(); } } if (!$response) { $wx->weixin['module'] = 'basic'; $processor = WX_Utility::create_module_processor($wx->weixin['module']); $processor->message = $wx->message; $processor->module = $wx->weixin['account']['modules'][$wx->weixin['module']]; $response = $processor->respond(); } return $response; }
private function process() { $response = false; if (empty($this->response['module']) || !in_array($this->response['module'], $this->modules)) { return false; } $processor = WX_Utility::create_module_processor($this->response['module']); $processor->message = $this->message; $processor->module = $this->weixin['account']['modules'][$this->response['module']]; $response = $processor->respond(); if (empty($response)) { return false; } return $response; }