コード例 #1
0
ファイル: api.php プロジェクト: ChainBoy/wxfx
 private function receive($par, $keyword, $response)
 {
     global $_W;
     if (in_array($this->message['event'], array('subscribe', 'unsubscribe')) || in_array($this->message['type'], array('subscribe', 'unsubscribe'))) {
         $modules = uni_modules();
         $core = array();
         $core['name'] = 'core';
         $core['subscribes'] = array('core');
         array_unshift($modules, $core);
         foreach ($modules as $m) {
             if (!empty($m['subscribes'])) {
                 if ($m['name'] == 'core' || in_array($this->message['type'], $m['subscribes']) || in_array($this->message['event'], $m['subscribes'])) {
                     $obj = WeUtility::createModuleReceiver($m['name']);
                     $obj->message = $this->message;
                     $obj->params = $par;
                     $obj->response = $response;
                     $obj->keyword = $keyword;
                     $obj->module = $m;
                     $obj->uniacid = $_W['uniacid'];
                     $obj->acid = $_W['acid'];
                     if (method_exists($obj, 'receive')) {
                         @$obj->receive();
                     }
                 }
             }
         }
     } else {
         $row = array();
         $row['uniacid'] = $_W['uniacid'];
         $row['acid'] = $_W['acid'];
         $row['dateline'] = $par['message']['time'];
         $row['message'] = iserializer($par['message']);
         $row['keyword'] = iserializer($keyword);
         unset($par['message']);
         unset($par['keyword']);
         $row['params'] = iserializer($par);
         $row['response'] = iserializer($response);
         $row['module'] = $par['module'];
         $row['type'] = 1;
         pdo_insert('core_queue', $row);
     }
 }
コード例 #2
0
ファイル: subscribe.ctrl.php プロジェクト: aspnmy/weizan
                    $module_subscribes[$module['name']] = $module['subscribes'];
                }
            }
        }
    }
    $mtypes = ext_module_msg_types();
    $module_ban = $_W['setting']['module_receive_ban'];
    if (!is_array($module_ban)) {
        $module_ban = array();
    }
    template('extension/subscribe');
}
if ($do == 'check') {
    load()->classs('account');
    $modulename = $_GPC['modulename'];
    $obj = WeUtility::createModuleReceiver($modulename);
    if (empty($obj)) {
        exit('error');
    }
    $obj->uniacid = $_W['uniacid'];
    $obj->acid = $_W['acid'];
    if (method_exists($obj, 'receive')) {
        @$obj->receive();
        exit('success');
    }
}
if ($do == 'ban') {
    $modulename = $_GPC['modulename'];
    $ban = $_GPC['ban'];
    if (empty($modulename)) {
        message('请设置模块名', referer(), 'error');
コード例 #3
0
ファイル: subscribe.ctrl.php プロジェクト: hahamy/we7
            $message['keyword'] = iunserializer($message['keyword']);
            $qids .= $message['qid'] . ',';
        }
        $qids = trim($qids, ',');
        $sql = 'DELETE FROM ' . tablename('core_queue') . " WHERE `qid` IN ({$qids})";
        pdo_query($sql);
        load()->model('module');
        $modules = uni_modules();
        $core = array();
        $core['name'] = 'core';
        $core['subscribes'] = array('core');
        array_unshift($modules, $core);
        foreach ($messages as $msg) {
            foreach ($modules as $m) {
                if (!empty($m['subscribes'])) {
                    if ($m['name'] == 'core' || in_array($msg['message']['type'], $m['subscribes'])) {
                        $obj = WeUtility::createModuleReceiver($m['name']);
                        $obj->message = $msg['message'];
                        $obj->params = $msg['params'];
                        $obj->response = $msg['response'];
                        $obj->keyword = $msg['keyword'];
                        $obj->module = $m;
                        if (method_exists($obj, 'receive')) {
                            $obj->receive();
                        }
                    }
                }
            }
        }
    }
}
コード例 #4
0
ファイル: api.php プロジェクト: wisemyth/weizan
 private function receive($par, $keyword, $response)
 {
     global $_W;
     $subscribe = cache_load('module_receive_enable');
     $modules = uni_modules();
     $obj = WeUtility::createModuleReceiver('core');
     $obj->message = $this->message;
     $obj->params = $par;
     $obj->response = $response;
     $obj->keyword = $keyword;
     $obj->module = 'core';
     $obj->uniacid = $_W['uniacid'];
     $obj->acid = $_W['acid'];
     if (method_exists($obj, 'receive')) {
         @$obj->receive();
     }
     if (!empty($subscribe['subscribe']) && ($this->message['event'] == 'subscribe' || $this->message['type'] == 'subscribe')) {
         foreach ($subscribe['subscribe'] as $modulename) {
             $obj = WeUtility::createModuleReceiver($modulename);
             $obj->message = $this->message;
             $obj->params = $par;
             $obj->response = $response;
             $obj->keyword = $keyword;
             $obj->module = $modules[$modulename];
             $obj->uniacid = $_W['uniacid'];
             $obj->acid = $_W['acid'];
             if (method_exists($obj, 'receive')) {
                 @$obj->receive();
             }
         }
     } elseif (!empty($subscribe['unsubscribe']) && ($this->message['event'] == 'unsubscribe' || $this->message['type'] == 'unsubscribe')) {
         foreach ($subscribe['unsubscribe'] as $modulename) {
             $obj = WeUtility::createModuleReceiver($modulename);
             $obj->message = $this->message;
             $obj->params = $par;
             $obj->response = $response;
             $obj->keyword = $keyword;
             $obj->module = $modules[$modulename];
             $obj->uniacid = $_W['uniacid'];
             $obj->acid = $_W['acid'];
             if (method_exists($obj, 'receive')) {
                 @$obj->receive();
             }
         }
     } else {
         $modules = $subscribe[$this->message['type']];
         if (!empty($modules)) {
             foreach ($modules as $modulename) {
                 $row = array();
                 $row['uniacid'] = $_W['uniacid'];
                 $row['acid'] = $_W['acid'];
                 $row['dateline'] = $_W['timestamp'];
                 $row['message'] = iserializer($this->message);
                 $row['keyword'] = iserializer($keyword);
                 $row['params'] = iserializer($par);
                 $row['response'] = iserializer($response);
                 $row['module'] = $modulename;
                 $row['type'] = 1;
                 pdo_insert('core_queue', $row);
             }
         }
         if (date('N') == '1') {
             pdo_query("DELETE FROM " . tablename('core_queue') . " WHERE dateline < '" . ($_W['timestamp'] - 2592000) . "'");
         }
     }
 }
コード例 #5
0
ファイル: engine.php プロジェクト: yunsite/my-we7
 private function subscribe($subscribes)
 {
     global $_W;
     foreach ($subscribes as $m) {
         $obj = WeUtility::createModuleReceiver($m['name']);
         $obj->message = $this->message;
         $obj->params = $this->params;
         $obj->response = $this->response;
         $obj->keyword = $this->keyword;
         $obj->module = $m;
         if (method_exists($obj, 'receive')) {
             $obj->receive();
         }
     }
 }