dedecms5.1升級(jí)為5.3導(dǎo)致TAG丟失等問(wèn)題處理

字號(hào):


    已經(jīng)可以正常現(xiàn)實(shí)文章頁(yè)面的 TAG 帶鏈接哦,而且升級(jí)前文章的TAG 都已經(jīng)恢復(fù)了。下面是具體的解決方法。主要是最后的那句sql執(zhí)行以下即可。
    其實(shí)修復(fù)TAG問(wèn)題的回答論壇上很多人都已經(jīng)回答過(guò)了,可能是大家都沒(méi)有認(rèn)真的去嘗試,并不是人家提供的代碼不對(duì)
    而是你不能完全的COPY人家的代碼,很多代碼要修改數(shù)據(jù)表前綴才能使用。
    下面介紹一下我解決TAG 問(wèn)題的方法:
    首先是在文章頁(yè)面調(diào)用當(dāng)前文章的TAG代碼:
    直接用Tag: {dede:field.tags/} 替換原來(lái)的代碼
    比如說(shuō)我網(wǎng)站以前獲得當(dāng)前文章TAG代碼是這樣的注意紅色部分是代碼,黑色你自己隨便:
    Tag :{dede:tag type='current'/}
    所以現(xiàn)在的顯示TAG地方的原代碼是:
    Tag: {dede:field.tags/}
    上面是第一部,下面要修改DEDE CMS 的相關(guān)文件了,打開(kāi)\include\common.func.php這個(gè)文件
    找到 //獲得某文檔的所有tag 這一部分,把下面的這些代碼
    代碼如下:
    function GetTags($aid)
    {
    global $dsql;
    $tags = '';
    $query = "Select tag From [url=mailto:`ddmx_taglist]`ddmx_taglist[/url]` where aid='$aid' ";
    $dsql->Execute('tag',$query);
    while($row = $dsql->GetArray('tag'))
    {
    $tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']);
    }
    return $tags;
    }
    function ParamError()
    {
    ShowMsg('對(duì)不起,你輸入的參數(shù)有誤!','javascript:;');
    exit();
    }
    替換成為下面的這些代碼,期間要根據(jù)自己的實(shí)際情況修改自己的表前綴。
    注意下面的那個(gè)'dede_dedecmstaglist',根據(jù)自己的表前綴修改一下吧。
    代碼如下:
    function GetTags($aid)
    {
    global $dsql;
    $tags = '';
    $query = "Select tag From `dede_dedecmstaglist` where aid='$aid' ";
    $dsql->Execute('tag',$query);
    while($row = $dsql->GetArray('tag'))
    {
    $tags .= ($tags=='' ? "<a href=/tags.php?/{$row['tag']} target=_blank>{$row['tag']}</a>" : ','."<a href=/tags.php?/{$row['tag']} target=_blank>{$row['tag']}</a>");
    }
    return $tags;
    }
    function ParamError()
    {
    ShowMsg('對(duì)不起,你輸入的參數(shù)有誤!','javascript:;');
    exit();
    }
    OK,現(xiàn)在只要你的文章的TAG沒(méi)有丟失的話(huà),完成上面的步驟就可以在文章頁(yè)調(diào)用帶鏈接的文章TAG了。
    如果你的TAG在升級(jí)過(guò)程中丟失的話(huà),那么執(zhí)行下面的步驟吧。
    進(jìn)入你的網(wǎng)站管理后臺(tái)
    選擇“系統(tǒng)”----------“SQL命令行工具”
    運(yùn)行SQL命令:
    代碼如下:
    UPDATE dede_tagindex,dede_taglist SET dede_taglist.tag = dede_tagindex.tag WHERE dede_taglist.tid=dede_tagindex.id;
    注意不要完全COPY上面的代碼哦,更加自己的實(shí)際情況修改表前綴.