phpcms v9自带的手机门户网站,有时候我们需要用到组图功能$pictureurls,我在做的时候发现,如果$pictureurls中只有一张图片会正常显示,但是如果有两张或两张以上的图片的时候,就会出现错误,调用组图的代码为:
{loop $pictureurls $k $v}
- <img src="{$v[url]}"
width="380" height="286" alt="{$title}"/>
{/loop}
当有多个图片时:
此时我们会发现,组图的图片路径没有被真正读取,所以就得需要简单的二次修改了!
打开phpcmsmoduleswapindex.php,找到大概121-160行
if($pictureurls) {
$pictureurl = pic_pages($pictureurls);
$isshow = 0;
//进行图片分页处理
$PIC_POS = strpos($pictureurl, '[page]');
if($PIC_POS !== false) {
$this->url = pc_base::load_app_class('wap_url', 'wap');
$pictureurls = array_filter(explode('[page]', $pictureurl));
$pagenumber = count($pictureurls);
if (strpos($pictureurl, '[/page]')!==false && ($CONTENT_POS<7)) {
$pagenumber--;
}
for($i=1; $i<=$pagenumber; $i++) {
$pageurls[$i] = $this->url->show($id, $i, $catid, $typeid);
}
$END_POS = strpos($pictureurl, '[/page]');
if($END_POS !== false) {
if(preg_match_all("|[page](.*)[/page]|U", $pictureurl, $m, PREG_PATTERN_ORDER)) {
foreach($m[1] as $k=>$v) {
$p = $k+1;
$titles[$p]['title'] = strip_tags($v);
$titles[$p]['url'] = $pageurls[$p][0];
}
}
}
//当不存在 [/page]时,则使用下面分页
$pages = content_pages($pagenumber,$page, $pageurls, 0);
//判断[page]出现的位置是否在第一位
if($CONTENT_POS<7) {
$pictureurl = $pictureurls[$page];
} else {
if ($page==1 && !empty($titles)) {
$pictureurl = $title.'[/page]'.$pictureurls[$page-1];
} else {
$pictureurl = $pictureurls[$page-1];
}
}
}
}
这段代码意思是当$pictureurls存在时,需要对$pictureurls进行分页处理,这样就导致了组图读取不出来的情况,如果你的组图属性属于自定义的属性,你可以对$pictureurls重新命名,比如改成$pictureurls2等等,还有一种方法比较干脆就是直接注释掉或者删除掉以上这些代码,这样就不需要对$pictureurls做任何处理,直接读取出来,但是这样也就是丧失了图片分页功能(一般也没多大用,分页可以用幻灯片效果实现),ok 完成!