phpcms v9手机站不支持组图($pictureurls)的修改

phpcms v9自带的手机门户网站,有时候我们需要用到组图功能$pictureurls,我在做的时候发现,如果$pictureurls中只有一张图片会正常显示,但是如果有两张或两张以上的图片的时候,就会出现错误,调用组图的代码为:

  1. {loop $pictureurls $k $v} 
  2. <img  class="string" src="<span"><img src="{$v[url]}"  width="380" height="286"  alt="{$title}"/> 
  3. {/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 完成!

posted @ 2019-03-25 11:09  yuan9580  阅读(169)  评论(0编辑  收藏  举报