怎么生成二级页面的列表啊?
发布于:2022-01-17 09:50:54
#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 还是一样的,
生成出来的页面分页地址:
2010-08-12 17:51:33
#22 yuanjianhua
同时也很奇怪,生成出来的二级菜单的地址三个页面都不一样。
应该是执行的顺序问题应该!
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";