這個欄目問題折騰了我一天多,可憐我這個美工又不會程序!!!php
個人問題是:html
個人欄目設置以下:程序員
一級欄目[生成到根目錄(是)]> 二級欄目[生成到根目錄(是)] > 三級欄目[生成到根目錄(否)]web
這樣出現的問題是:數據庫
頁面文件生成的路徑是mysite/一級欄目/二級欄目/三級欄目/index.html;數組
但實際上頁面生成的url地址是mysite/二級欄目/三級欄目/index.html;this
2個地址不一致,致使個人三級欄目不能訪問。url
首先我看到數據庫裏面arrparentid和url路徑前面竟然不同,難怪打不開了。spa
而後我就處處找生成parentdir和url字段的方法。code
可憐我不會程序啊,幾乎花了我一天的時間找,昨天晚上終於被我找着了。
分別是在\phpcms\modules\admin\category.php中的get_parentdir方法
和\phpcms\modules\content\classes\url.class.php中的get_categorydir方法。
經比較這2段程序明顯不同,明顯是2個程序員寫的。
寫category.php頁面的程序員我就很少評價了……唉,只能說考慮不周吧。
我從數據庫裏面看到url字段裏的路徑都是對的,而parentdir裏的路徑是錯誤的。
我就參照url.class.php裏面的寫法把category.php裏的get_parentdir方法改了下。
這個改也花了我今天一天的時間唉,中間我向這個問,那個問,都無果。
只好本身慢慢磨了,程序裏面判斷都好懂,就是被數組啊,和程序裏面的這個this那個this搞的頭都暈了,還好之前有點asp的基礎。
後來卻是被我琢磨出來了,順利生成頁面,搞定。
這是我改過的地方,給遇到一樣問題的人蔘考參考,改後暫時沒發現什麼問題。
轉:http://www.ratuo.com/websitezt/experience/30582.html
欄目設置成三級欄目,二級設置爲生成到根目錄後三級生成html路徑錯誤的解決方法:
將phpcms/models/admin/category.php的get_parentdir方法中
if (strpos($url, '://')===false) { if ($setting['creat_to_html_root']) { return ''; } else { $arrparentid = explode(',', $arrparentid); $arrcatdir = array(); foreach($arrparentid as $id) { if($id==0) continue; $arrcatdir[] = $this->categorys[$id]['catdir']; } return implode('/', $arrcatdir).'/'; } }
替換成:
if (strpos($url, '://')===false) { if ($setting['creat_to_html_root']) { return ''; } else { $arrparentid = explode(',', $arrparentid); $arrcatdir = array(); foreach($arrparentid as $id) { if($id==0) continue; if($this->categorys[$id]['sethtml']==0 && $this->categorys[$id]['type']!=1) continue; $arrcatdir[] = $this->categorys[$id]['catdir']; } if($arrcatdir) { return implode('/', $arrcatdir).'/'; }else{ return ''; } } }
轉:http://bbs.phpcms.cn/thread-271429-2-1.html