| @@ -101,13 +101,26 @@ if (!function_exists('GetChannelTable')) { | |||||
| */ | */ | ||||
| if (!function_exists('GetTags')) { | if (!function_exists('GetTags')) { | ||||
| function GetTags($aid) | function GetTags($aid) | ||||
| { | |||||
| $tarr = GetTagsArray($aid); | |||||
| return count($tarr) > 0? implode(",", $tarr) : ''; | |||||
| } | |||||
| } | |||||
| /** | |||||
| * 获得某文档的所有tag数组 | |||||
| * | |||||
| * @param int $aid 文档id | |||||
| * @return array | |||||
| */ | |||||
| if (!function_exists('GetTagsArray')) { | |||||
| function GetTagsArray($aid) | |||||
| { | { | ||||
| global $dsql; | global $dsql; | ||||
| $tags = ''; | |||||
| $tags = array(); | |||||
| $query = "SELECT tag FROM `#@__taglist` WHERE aid='$aid' "; | $query = "SELECT tag FROM `#@__taglist` WHERE aid='$aid' "; | ||||
| $dsql->Execute('tag', $query); | $dsql->Execute('tag', $query); | ||||
| while ($row = $dsql->GetArray('tag')) { | while ($row = $dsql->GetArray('tag')) { | ||||
| $tags .= ($tags == '' ? $row['tag'] : ','.$row['tag']); | |||||
| $tags[] = $row['tag']; | |||||
| } | } | ||||
| return $tags; | return $tags; | ||||
| } | } | ||||
| @@ -164,8 +177,7 @@ if (!function_exists('UpIndexKey')) { | |||||
| $dsql->ExecuteNoneQuery($query); | $dsql->ExecuteNoneQuery($query); | ||||
| //处理修改后的tag | //处理修改后的tag | ||||
| if ($tags != '') { | if ($tags != '') { | ||||
| $oldtag = GetTags($id); | |||||
| $oldtags = explode(',', $oldtag); | |||||
| $oldtags = GetTagsArray($id); | |||||
| $tagss = explode(',', $tags); | $tagss = explode(',', $tags); | ||||
| foreach ($tagss as $tag) { | foreach ($tagss as $tag) { | ||||
| $tag = trim($tag); | $tag = trim($tag); | ||||
| @@ -184,6 +196,12 @@ if (!function_exists('UpIndexKey')) { | |||||
| $dsql->ExecuteNoneQuery("UPDATE `#@__taglist` SET `arcrank` = '$arcrank', `typeid` = '$typeid' WHERE tag LIKE '$tag' "); | $dsql->ExecuteNoneQuery("UPDATE `#@__taglist` SET `arcrank` = '$arcrank', `typeid` = '$typeid' WHERE tag LIKE '$tag' "); | ||||
| } | } | ||||
| } | } | ||||
| } else { | |||||
| $oldtags = GetTagsArray($id); | |||||
| foreach ($oldtags as $tag) { | |||||
| $dsql->ExecuteNoneQuery("DELETE FROM `#@__taglist` WHERE aid='$id' AND tag LIKE '$tag' "); | |||||
| $dsql->ExecuteNoneQuery("UPDATE `#@__tagindex` SET total=total-1 WHERE tag LIKE '$tag' "); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||