織夢(mèng)5.7版本“內(nèi)容模型管理”自帶有分類信息模板,今天修改了其“信息類型”的聯(lián)動(dòng)類別,在“核心”->"頻道模型"->"聯(lián)動(dòng)類別管理",修改了信息類別,但是發(fā)現(xiàn)修改完了后,“更新所有枚舉緩存”、“系統(tǒng)緩存“、”更新欄目HTML“,這些全部更新后,發(fā)現(xiàn)列表頁(yè)調(diào)用的地方還是沒(méi)有更新,還是保持原來(lái)修改前的信息類型。
解決方案:
我們修改的聯(lián)動(dòng)類別的”緩存組名“是叫"infotype",打開(kāi)data/enums目錄,找到infotype.php文件和“infotype.js”,這兩個(gè)就是前臺(tái)調(diào)用的聯(lián)動(dòng)類型,全是有系統(tǒng)自動(dòng)生成。點(diǎn)擊打開(kāi),發(fā)現(xiàn)infotype.php 已經(jīng)更新為最新的,但是infotype.js 還是保持為原來(lái)的老的信息,這可能也是織夢(mèng)的一個(gè)小BUG,就是再更新的時(shí)候只更新了php腳本,而沒(méi)有去更新js腳本,我們可以復(fù)制infotype.php中的內(nèi)容到infotype.js中,并按照js規(guī)則重寫,然后更新下”系統(tǒng)緩存“和”更新列表HTML“,發(fā)現(xiàn)前臺(tái)已經(jīng)更新為最新的聯(lián)動(dòng)信息。
對(duì)于infotype.php、infotype.js這兩個(gè)文件,在多次測(cè)試織夢(mèng)聯(lián)動(dòng)類別之后發(fā)現(xiàn)一些規(guī)律(時(shí)而會(huì)發(fā)生,不是每次發(fā)生):
1、新建的聯(lián)動(dòng),在第一次更新時(shí)會(huì)同時(shí)更新
2、在對(duì)已有的聯(lián)動(dòng)進(jìn)行修改后,更新時(shí),只更新infotype.php
3、在對(duì)已有聯(lián)動(dòng)進(jìn)行添加多級(jí)聯(lián)動(dòng)時(shí),比如對(duì)一級(jí)聯(lián)動(dòng)添加為二級(jí)或者三級(jí)時(shí),系統(tǒng)會(huì)對(duì)infotype.php、infotype.js同時(shí)更新。
解決*.js聯(lián)動(dòng)不更新的問(wèn)題,的方法如下:
文件includeenums.func.php
查找 if(empty($issign)) WriteEnumsJs($egroup);
替換為
//if(empty($issign)) WriteEnumsJs($egroup);
//修復(fù)更新緩存不更聯(lián)動(dòng)js 這里的empty $issign 為空的時(shí)候才更新js ,但是根據(jù)代碼,$issign 不可能為空,無(wú)法理解。
WriteEnumsJs($egroup);