phpcms采集序列网址时开始页码不为1及动态网址的问题

作者: admin 分类: php 发布时间: 2013-05-08 03:32

自己在采集时碰到的,发出来mark一下
http://www.phpcms.cn/help/rumen/(*).html
设置页码开始是从1以上开始,如10到20;
这时生成的网址
$urls=
array (
10 => ‘http://www.phpcms.cn/help/rumen/10.html’,
11 => ‘http://www.phpcms.cn/help/rumen/11.html’,
12 => ‘http://www.phpcms.cn/help/rumen/12.html’,
13 => ‘http://www.phpcms.cn/help/rumen/13.html’,
14 => ‘http://www.phpcms.cn/help/rumen/14.html’,
15 => ‘http://www.phpcms.cn/help/rumen/15.html’,
16 => ‘http://www.phpcms.cn/help/rumen/16.html’,
17 => ‘http://www.phpcms.cn/help/rumen/17.html’,
18 => ‘http://www.phpcms.cn/help/rumen/18.html’,
19 => ‘http://www.phpcms.cn/help/rumen/19.html’,
20 => ‘http://www.phpcms.cn/help/rumen/20.html’,
)
根据\phpcms\modules\collection\node.php的280行处
$page = isset($_GET[‘page’]) ? intval($_GET[‘page’]) : 0;
$url_list = $urls[$page];
phpcms会根据
$urls[0],$urls[1].。。$urls[10]采集,而$urls是没有这些值,所以采集不了

我的解决办法:在\phpcms\modules\collection\classes\collection.class.php中的142行的
$url[$i] = str_replace(‘(*)’, $i, $config[‘urlpage’]);
改成
$url[] = str_replace(‘(*)’, $i, $config[‘urlpage’]);只是把$url[$i]的[]里的$i去掉
这同时也能解决 每次增加 不为1时的问题

还有一个是在设置时的网址为动态网址的问题
http://www.***.cn/help/rumen/list.php?a=show&page=(*)
点击测试时会发现列出的网址为
http://www.***.cn/help/rumen/list.php?a=show
后面的一段消失了
我的修改
\phpcms\modules\collection\templates\node_form.tpl.php的298行的show_url函数
改成
function show_url() {
var type = $(“input[type=’radio’][name=’data[sourcetype]’]:checked”).val();
urlpage=encodeURIComponent($(‘#urlpage_’+type).val());
url=’?m=collection&c=node&a=public_url&sourcetype=’+type+’&urlpage=’+urlpage+’&pagesize_start=’+$(“input[name=’data[pagesize_start]’]”).val()+’&pagesize_end=’+$(“input[name=’data[pagesize_end]’]”).val()+’&par_num=’+$(“input[name=’data[par_num]’]”).val()
window.top.art.dialog({id:’test_url’,iframe:url, title:’‘, width:’700′, height:’450′}, ”, function(){window.top.art.dialog({id:’test_url’}).close()});

}
只是用encodeURIComponent函数对urlpage进行处理