Esempio n. 1
0
 public static function del($tags, $field = 'name', $iid = 0)
 {
     $tagArray = explode(",", $tags);
     $iid && ($sql = "AND `iid`='{$iid}'");
     foreach ($tagArray as $k => $v) {
         $tag = iDB::row("SELECT * FROM `#iCMS@__tags` WHERE `{$field}`='{$v}' LIMIT 1;");
         $tRS = iDB::all("SELECT `iid` FROM `#iCMS@__tags_map` WHERE `node`='{$tag->id}' AND `appid`='" . TAG_APPID . "' {$sql}");
         foreach ((array) $tRS as $TL) {
             $idA[] = $TL['iid'];
         }
         if ($idA) {
             $ids = iPHP::get_ids($idA, null);
             if ($ids) {
                 iPHP::app('apps.class', 'static');
                 $table = APPS::table(TAG_APPID);
                 iDB::query("\n                        UPDATE `#iCMS@__{$table}`\n                        SET `tags`= REPLACE(tags, '{$tag->name},',''),\n                        `tags`= REPLACE(tags, ',{$tag->name}','')\n                        WHERE id IN({$ids})\n                    ");
             }
         }
         self::$remove && iDB::query("DELETE FROM `#iCMS@__tags`  WHERE `{$field}`='{$v}'");
         iDB::query("\n                DELETE FROM\n                `#iCMS@__tags_map`\n                WHERE `node`='{$tag->id}'\n                AND `appid`='" . TAG_APPID . "' {$sql}");
         $ckey = self::tkey($tag->cid);
         iCache::delete($ckey);
     }
 }