phpcms v9二級欄目生成到根目錄後三級欄目沒法訪問的解決辦法

這個欄目問題折騰了我一天多,可憐我這個美工又不會程序!!!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

相關文章
相關標籤/搜索