phpcms v9自带的手机门户网站,有时候我们需要用到组图功能$pictureurls,我在做的时候发现,如果$pictureurls中只有一张图片会正常显示,但是如果有两张或两张以上的图片的时候,就会出现错误,调用组图的代码为:
- {loop $pictureurls $k $v}
- <img class="string" src="<span"><img src="{$v[url]}" width="380" height="286" alt="{$title}"/>
- {/loop}
当有多个图片时:
此时我们会发现,组图的图片路径没有被真正读取,所以就得需要简单的二次修改了!
打开phpcms\modules\wap\index.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 完成!