怎么生成二级页面的列表啊?

#1 yuanjianhua

由于在一个菜单下有几个小菜单,

怎么生成小菜单的静态地址,我是这样写的,能生成页面,但是分页和菜单的地址都没有生成到静态的地址,所有根本就没有链接上生成的静态页面!

function test_mark(){
        header('Content-Type:text/html;charset=utf-8');
        $urls = array();
        if( $result = spClass("lib_menu")->get_menu("news")){//这个是获取到新闻栏目下的二级菜单
            
            foreach($result as $value){ // 循环
                $content = spClass("lib_content");
                $total = $content->findCount(array('catid'=>$value['id'],'status'=>1));
               
                $perpage = 5;
                $pagenum = ceil($total/$perpage);
                for($i = 1;$i <= $pagenum;$i++){
                    $urls[] =  array(
                        array('content','index',array('catid'=>$value['id'],'offset'=>$value['offset'],'p'=>$i))  // 这里和spUrl的参数是相同的
                    );
              }
            
            }
        }
        spClass('spHtml')->makeAll($urls); // 使用makeAll来制作
        echo "新闻中心二级栏目页生成完毕!
";
    }


  页面代码是:

     {if $pager}  
          {pager pager=$pager myclass="badoo" c="content" a="index" catid=$params.catid|default:'0'  offset=10}  
     {/if}




大侠们,帮帮忙,很急啊

2010-08-11 16:10:23

#2 yuanjianhua

怎么没人回答啊

2010-08-11 21:18:41

#3 jake

问题挺复杂的,关于页码生成,楼主是做对了。不过可以再试试
$urls[] =  array(
array('content','index',array('catid'=>$value['id'],'offset'=>$value['offset'],'p'=>(string)$i))  // 这里和spUrl的参数是相同的
                    );
看这样行不行。

另外就是用最新的sp试试看。

2010-08-11 22:01:59

#4 yuanjianhua

回复 3 jake


    那二级菜单的页面我该怎么生成啊,难道还是这样再写一个?

2010-08-11 22:12:57

#5 jake

不清楚你说的二级目录是什么意思,不过基本上需要生成的页面都需要先make一次才行。

2010-08-11 23:01:08

#6 yuanjianhua

回复 3 jake


   帮帮忙吧,我的要上线了

2010-08-11 23:01:42

#7 yuanjianhua

回复 3 jake


   Fatal error: Maximum execution time of 30 seconds exceeded in D:\wamp\www\CBD\SpeedPHP\Core\spView.php on line 152

2010-08-11 23:07:30

#8 yuanjianhua

回复 5 jake


   我说的是二级菜单,就是说

   新闻
   |----国际新闻
   |----国内新闻

这样的,怎么把列表页也生成静态页面,


因为
新闻
   |----国际新闻

   |----国内新闻
这些都是动态生成的!所以。。。。


其实这里就是生成列表页


希望jake能尽快帮我解决这个问题,谢谢先那

2010-08-11 23:46:10

#9 jake

回复  jake


   Fatal error: Maximum execution time of 30 seconds exceeded in D:\wamp\www\CBD\Speed ...
yuanjianhua 发表于 2010-8-11 23:07
每一个需要生成静态页的页面都生成一次,这是一个正常的逻辑。上面应该是太多循环了导致PHP运行超时,你可以参考类似DEDECMS或者PHPCMS的生成HTML方式,用分批生成的方式来生成每一个分类下的文章以及全部分类本身。

2010-08-12 08:54:02

#10 yuanjianhua

回复 9 jake


    我说的是二级菜单,就是说

   新闻
   |----国际新闻
   |----国内新闻

这样的,怎么把列表页也生成静态页面,


因为
新闻
   |----国际新闻

   |----国内新闻
这些都是动态生成的!所以。。。。


其实这里就是生成列表页


希望jake能尽快帮我解决这个问题,谢谢先那



/**
     * 生成新闻列表静态页
     */
    function news_list_mark(){
        header('Content-Type:text/html;charset=utf-8');
        echo "开始新闻中心二级栏目页生成!
";
      
        $urls = array();
        if( $result = spClass("lib_menu")->get_menu("news")){
            foreach($result as $value){ // 循环
                spClass('spHtml')->make(array('content','index',array('catid'=>$value['id'])),'../a/cat_'.$value['id'].'.html');//难道是在这里在生成一个列表,但是分页还是没用
                $content = spClass("lib_content");
                $total = $content->findCount(array('catid'=>$value['id'],'status'=>1));
               
                $perpage = 5;
                $pagenum = ceil($total/$perpage);
                for($i = 1;$i <= $pagenum;$i++){
                    $urls[] =  array(
                        array('content','index',array('catid'=>$value['id'],'offset'=>$value['offset'],'p'=>(string)$i)),'../a/news_'.$i.'.html'  // 这里和spUrl的参数是相同的
                    );
               }
            }
        }
        spClass('spHtml')->makeAll($urls); // 使用makeAll来制作
        echo "新闻中心二级栏目页生成完毕!
";
    }

2010-08-12 09:55:52

#11 jake

请用心看我的回复!

另外,我只能指出解决问题的方向,问题始终还是得自己解决的

2010-08-12 10:00:15

#12 yuanjianhua

回复 11 jake


前面的明白了!   

再问个问题,就是分页的问题,


for($i = 1;$i <= $pagenum;$i++){
                    $urls[] =  array(array('content','index',array('catid'=>$value['id'],'offset'=>10,'p'=>(string)$i)),'../a/news_'.$value['id']."_".$i.'.html');// 这里和spUrl的参数是相同的
               }

加上去了也没有用

2010-08-12 10:21:02

#13 jake

注释已经很明白了。(// 这里和spUrl的参数是相同的)

你输出这里的$urls的第一个参数,还有你希望访问的那个页面的spUrl地址,对比一下看看。

2010-08-12 10:38:50

#14 yuanjianhua

回复 13 jake

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => content
                    [1] => index
                    [2] => Array
                        (
                            [catid] => 10
                            [offset] => 10
                            [p] => 1
                        )

                )

            [1] => ../a/news_10_1.html
        )

    [1] => Array
        (
            [0] => Array
                (
                    [0] => content
                    [1] => index
                    [2] => Array
                        (
                            [catid] => 10
                            [offset] => 10
                            [p] => 2
                        )

                )

            [1] => ../a/news_10_2.html
        )

)



访问的地址http://localhost/CBD/index.php?c=content&a=index&catid=10&p=2&offset=10


没啥区别啊!郁闷

2010-08-12 11:22:10

#15 jake

你的框架版本?有没有用到最新版本?

2010-08-12 11:25:50

#16 yuanjianhua

define('SP_VERSION', '3.0.21'); // 当前框架版本

2010-08-12 11:34:22

#17 yuanjianhua

回复 15 jake


    define('SP_VERSION', '3.0.21'); // 当前框架版本

2010-08-12 11:34:33

#18 jake

现在最新的3.0.73,在首页下载来试试吧。

2010-08-12 11:49:58

#19 yuanjianhua

回复 18 jake


    还是 一样,:'(

2010-08-12 14:36:14

#20 jake

之前遇到的额问题是序列化中类型不匹配的问题,不过sp3开始使用了json数据来记录页面列表,应该没这个问题了。

我能提出的两个地方就是,1. ../a/news_10_2.html 不用..的上级目录,或者先不要自行设置文件位置,让它自动生成目录。2. 看看tmp里面的静态文件列表文件和对应的url地址,看能不能看出点什么来。

2010-08-12 14:58:51

#21 yuanjianhua

回复 20 jake


   还是一样的,

生成出来的页面分页地址:
< Prev12Next >

2010-08-12 17:51:33

#22 yuanjianhua

同时也很奇怪,生成出来的二级菜单的地址三个页面都不一样。

          

  •              NOTICE
          

  •         

  •             新橋新聞
          

  •         

  •               生活小常識
          

  •   




应该是执行的顺序问题应该!

2010-08-12 17:56:01

#23 jake

是否打开Path_info?关了它看看。url_path_info

2010-08-12 20:03:41

#24 yuanjianhua

回复 23 jake


    22楼的问题怎么解决呢?

2010-08-13 00:39:30

#25 yuanjianhua

回复 23 jake


    二级页面的地址现在都不变成静态地址了!郁闷了,一天啊

2010-08-13 00:48:54

#26 yuanjianhua

回复 23 jake


    content|index|{"catid":"9","offset":"10","p":"1"}||/CBD/articles/2010/8/13/163139929.html|D:\wamp\www\CBD/articles/2010/8/13/163139929.html
content|index|{"catid":"10","offset":"10","p":"1"}||/CBD/articles/2010/8/13/163140090.html|D:\wamp\www\CBD/articles/2010/8/13/163140090.html
content|index|{"catid":"11","offset":"10","p":"1"}||/CBD/articles/2010/8/13/1631400782.html|D:\wamp\www\CBD/articles/2010/8/13/1631400782.html
content|index|{"catid":"10","offset":"10","p":"2"}||/CBD/articles/2010/8/13/1631401726.html|D:\wamp\www\CBD/articles/2010/8/13/1631401726.html";





          

  •            NOTICE
          

  •       

  •               新橋新聞
          

  •       

  •                 生活小常識
            
  • 2010-08-13 00:51:59