Ejemplo n.º 1
0
 function keywords()
 {
     return WxReplyKeyword::find(0, 100, "item_id='{$this->id}'");
 }
Ejemplo n.º 2
0
 function auto_reply($xml)
 {
     $from = $xml->FromUserName;
     $to = $xml->ToUserName;
     $type = $xml->MsgType;
     $item = null;
     if ($type == 'text') {
         $t = trim($xml->Content);
         $t = Db::escape($t);
         $kw = WxReplyKeyword::findOne("type='equal' and keyword='{$t}'", 'id desc');
         if ($kw) {
             $item = WxReplyItem::get($kw->item_id);
         } else {
             $kws = WxReplyKeyword::find(0, 1000, "type='contain'", 'id desc');
             foreach ($kws as $kw) {
                 if (stripos($t, $kw->keyword) !== false) {
                     $item = WxReplyItem::get($kw->item_id);
                     break;
                 }
             }
         }
     } else {
         if ($type == 'event') {
             $t = $xml->Event;
             $t = Db::escape($t);
             if ($t == 'CLICK') {
                 $t = $xml->EventKey;
                 $t = Db::escape($t);
                 $kw = WxReplyKeyword::findOne("type='click' and keyword='{$t}'", 'id desc');
             } else {
                 $kw = WxReplyKeyword::findOne("type='event' and keyword='{$t}'", 'id desc');
             }
             if ($kw) {
                 $item = WxReplyItem::get($kw->item_id);
             }
         }
     }
     if ($item) {
         $wrap = $item->type == 'news' ? true : false;
         $str = $item->content;
         $reply_list = @json_decode($str, 1);
         if ($reply_list) {
             $this->send_reply_list($to, $from, $reply_list, $wrap);
         }
         return true;
     }
     return false;
 }