POST TIME:2020-03-30 17:08
最近給一兄弟做一個(gè)類似DZ的archiver功能的插件。
經(jīng)過我的3次誤解,終于把程序弄好了。。。
然后我對DedeCMS 5.3也有了一些了解。下面隨便扯扯心得,高手莫笑。
發(fā)布單頁文檔和更新單頁文檔時(shí),斷點(diǎn)設(shè)在inc_archives_functions.php中MakeArt函數(shù)處。
$reurl = $arc->MakeHtml();
從這行跟進(jìn)去到arc.archives.class.php中。
這個(gè)類文件是個(gè)關(guān)鍵類文件,用于處理提交上來的文章。(靜態(tài)動態(tài)都處理,不是只生成HTML)
LoadTemplet()方法,看名字就知道作用是載入模板。具體追進(jìn)去可以看到需要哪些變量載入。這個(gè)對我來說比較重要,因?yàn)橐l(fā)一篇文章用到2中模板的話,需要看看需要哪些變量以確定模板的路徑和名稱。
為了兼容PHP4,織夢的CLASS都是PHP4的風(fēng)格,沒有privite protect的聲明,默認(rèn)的function和var在類外面都是可見和可修改的。
于是追出了具體的變量,我在類外面進(jìn)行修改,然后再調(diào)用MakHtml()方法即可完成我想要的效果--載入另一個(gè)模板生成到指定路徑。
細(xì)細(xì)看看每行代碼,可以看到代碼還是有些不規(guī)范的,不說變量命名規(guī)則,比較顯而易見的是類似$GLOBALS["cfg_basedir"]的寫法,同一文件中別的地方數(shù)組的字符下標(biāo)那里都用得單引號,這里用的卻是雙引號 。。。規(guī)范化的路還是有一段要走,呵呵。
更新所有文檔時(shí)的動作在 makehtml_archives_action.php 中,斷在$rurl = $ac->MakeHtml(); 原理和上面說的一樣。
上一篇:dede的使用技巧 我的使用心得