zoukankan      html  css  js  c++  java
  • phpcms v9二级栏目生成到根目录后三级栏目无法访问的解决办法

    这个栏目问题折腾了我一天多,可怜我这个美工又不会程序!!!

    我的问题是:

    我的栏目设置如下:

    一级栏目[生成到根目录(是)]> 二级栏目[生成到根目录(是)] > 三级栏目[生成到根目录(否)]

    这样出现的问题是:

    页面文件生成的路径是mysite/一级栏目/二级栏目/三级栏目/index.html;

    但实际上页面生成的url地址是mysite/二级栏目/三级栏目/index.html;

    2个地址不一致,导致我的三级栏目不能访问。

    首先我看到数据库里面arrparentid和url路径前面居然不一样,难怪打不开了。

    然后我就到处找生成parentdir和url字段的方法。

    可怜我不会程序啊,几乎花了我一天的时间找,昨天晚上终于被我找着了。

    分别是在phpcmsmodulesadmincategory.php中的get_parentdir方法

    和phpcmsmodulescontentclassesurl.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

  • 相关阅读:
    git命令-切换分支
    Git SSH Key 生成步骤
    12个非常有用的JavaScript技巧
    project 2013 删除资源
    project 2013 工时完成百分比不会自动更新填充
    project 2013 显示标题
    project 2013 任务显示编号
    project 2013 设置工期为1个工作日,但开始时间与结束时间不是同一天
    ecplise properties文件 中文转码
    Jeesite 代码生成
  • 原文地址:https://www.cnblogs.com/wawahaha/p/3551011.html
Copyright © 2011-2022 走看看