Example #1
0
 function reset_keywords($new_kws_str, $type = 'equal')
 {
     $ks = $this->keywords();
     $old_kws = array();
     foreach ($ks as $k) {
         $old_kws[] = $k->keyword;
     }
     $ps = explode(',', $new_kws_str);
     $kws = array();
     foreach ($ps as $p) {
         $p = trim($p);
         if (strlen($p)) {
             $kws[$p] = $p;
         }
     }
     $to_del = array_diff($old_kws, $kws);
     foreach ($to_del as $k) {
         Db::escape($k);
         $sql = "delete from wx_reply_keywords where item_id='{$this->id}' and keyword='{$k}'";
         Db::query($sql);
     }
     $to_add = array_diff($kws, $old_kws);
     foreach ($to_add as $k) {
         WxReplyKeyword::save(array('type' => $type, 'keyword' => $k, 'item_id' => $this->id));
     }
     $sql = "update " . WxReplyKeyword::table() . " set type='{$type}' where item_id='{$this->id}'";
     Db::update($sql);
 }