eyoucms图集分页 | volist标签分页

eyoucms的图集在很多时候充当相册功能的作用,调用的话也很简单volist标签循环输出就可以,痛就痛在这个volist标签分页居然不支持,怎么办?

以下办法通过前端切割数据进行显示,配合eyoucms静态缓存清除,达到前端图集分页的目的:

地表最强eyoucms图集分页代码

一、数据处理:

{eyou:arclist row='1' titlelen='30'}
{eyou:arcview id='field4'}
{php}
    $p_num = 3; //每页显示条数
    $p_btn = 2; //分页按钮整数阈值,越大显示越多
    $p_con = $field4[image_list]; //图集json
    $ck = 'page'.$field4[typeid];
    $thenum = $_COOKIE[$ck];
    if(!$thenum){ $thenum = 1; }
    $p_totle = count($p_con);
    $p_list = [1];
    if($p_totle > $p_num && $p_num > 0) {
        $p_con = array_slice($p_con, ($thenum-1)*$p_num, $p_num); //内容切割
        $p_all = $p_totle/$p_num;
        $p_allint = intval($p_all);
        $p_all = $p_all > $p_allint ? $p_allint+1 : $p_allint;
        for ($c = 0; $c < $p_all; $c += 1) {
            if($c >= $thenum-$p_btn && $c < $thenum+($p_btn-1)) {
                $p_list[$c] = $c+1;
            }
        }
        $p_list[$p_all-1] = $p_all;
    }
{/php}
<script type="text/javascript">
    //放在变量$ck之后,在列表渲染之前刷新
    var url = window.location.href;
        theurl = url.indexOf("clear");
    var clear = url+'&clear=1';
    var ck = document.cookie.indexOf("{$ck}=");
    if(ck == -1 && theurl == -1){
        location.replace(clear);
    }
    function page(obj) {
        document.cookie="{$ck}="+obj.title;
        theurl == -1 ? location.replace(clear) : location.reload();
    }
</script>

{eyou:volist name="$p_con" id='field5'}
<li class="projectitem">
    <a href="{$field5.image_url}" target="_blank" class="item_link">
    <div class="project_img">
        <img src="{$field5.image_url|thumb_img=###,500,320,3}" />
    </div>
    <div class="project_info">
      <div>
        <p class="title">{$field4.title}</p>
        <p class="subtitle">{$field5.intro}</p>
      </div>
    </div>
  </a>
  <a rel="nofollow" href="javascript:;" target="_blank" class="details">more</a>
</li>
{/eyou:volist}
{/eyou:arcview}
{/eyou:arclist}

二、分页的输出:

{eyou:foreach name='$p_list' item='p'}
<a rel="nofollow" href="javascript:;"{eyou:eq name='$thenum' value='$p'} class="active"{/eyou:eq} title="{$p}" onclick="page(this)">{$p}</a>
{/eyou:foreach}

最后,明白这个原理,作用就不仅仅是图集了,任何数据输出,都可以用这个超级代码进行切割分页显示。

猜你喜欢

转载自blog.51cto.com/14747960/2616762