Пример #1
0
 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;
 }
Пример #2
0
 public static function create_module_processor($name)
 {
     $classname = "{$name}_Module_Processor";
     if (!class_exists($classname)) {
         $file = WX_Utility::root_path() . "/{$name}/processor.php";
         if (!is_file($file)) {
             trigger_error('ModuleProcessor Definition File Not Found ' . $file, E_USER_ERROR);
             return null;
         }
         require $file;
     }
     if (!class_exists($classname)) {
         trigger_error('ModuleProcessor Definition Class Not Found', E_USER_ERROR);
         return null;
     }
     $o = new $classname();
     if ($o instanceof WX_Module_Processor) {
         return $o;
     } else {
         trigger_error('ModuleProcessor Class Definition Error', E_USER_ERROR);
         return null;
     }
 }