分页(Pagination)


分页代码是写在pages里面的,并可以自定义对应的文字

<!-- pagelist -->
<cms:if k_paginated_bottom>
   <div class="uk-width-1-1 pagelist">
   <cms:paginator prev_text='上一页' next_text='下一页' />
   </div>
</cms:if>

页面搜索评论标签可以提取比 limit 参数设置的项目多得多的项目。
在这种情况下,通常以分页方式显示项目,即分页到多个页面中,并提供导航按钮来访问页面。
除了设置用于描述正在循环访问的当前项的变量外,这些标记还设置了多个变量,这些变量提供有关标记循环的当前状态的信息。其中许多变量可用于以分页方式显示提取的项目。

为了解释这些变量,我们将使用以下代码片段 -

<cms:pages masterpage='blog.php' limit='10' paginate='1'>
    <!-- All the variables can be accessed here -->
</cms:pages>

虽然我们使用的是 [__*pages*__](../../tags-reference/pages.html) 标记来解释分页,请记住,以下讨论同样适用于 [__*search*__](../../tags-reference/search.html) 和 [__*comments*__](../../tags-reference/comments.html) 标记。

假设给定代码段总共提取了 23 条记录。
由于限制已设置为 10,因此将总数拆分为 10 条记录的块将导致需要 3 页来显示所有记录。

当标签遍历每个提取的项目时,将设置以下变量 -

k_total_records

获取的记录总数 - 在我们的示例中为 23 条

k_count

每页上的范围从 1 到 10。因此,它指向当前记录在页面上的相对位置。
可以通过设置“startcount”参数进行更改。
因此,如果“startcount”设置为 0,则每页上k_count范围为 0-9。

k_record_from

页面上的第一条记录。因此,第 1 页为 1,第 11 页为 2,第 21 页为 3。
可以通过设置“startcount”参数进行更改。
因此,如果“startcount”设置为 0,则第 0 页的 k_record_from 将为 1,第 10 页为 2,第 20 页为 3。

k_current_record

第 1 页的范围为 10-1,第 11 页的范围为 20-2,第 21 页的范围为 23-3。
因此,它始终指向当前记录的绝对位置。
可以通过设置“startcount”参数进行更改。
因此,如果“startcount”设置为 0,则第 0 页的 k_current_record 范围为 9-1,第 10 页的范围为 19-2,第 20 页的范围为 22 到 3。

k_record_to

页面上的最后一条记录。因此,第 10 页为 1,第 20 页为 2,第 23 页为 3。
可以通过设置“startcount”参数进行更改。
因此,如果“startcount”设置为 0,则第 9 页的 k_record_to 将为 1,第 19 页为 2,第 22 页为 3。

k_total_pages

总页数 - 在我们的示例中为 3 页。

k_current_page

当前页码 - 在我们的示例中将从 1 更改为 3。

k_paginated_top

在我们的示例中,“Pages”标记循环遍历每个页面上的 10 条记录。
k_paginated_top设置为每页的第一条记录。
它可用于在循环开始时输出某些内容。

k_paginated_bottom

在我们的示例中,“Pages”标记循环遍历每个页面上的 10 条记录。
k_paginated_bottom设置为每页的最后一条记录。
它可用于在循环的最末端输出一些东西。

k_paginator_required

当提取的页面总数超过“limit”参数设置的最大值
(并且还设置了“paginate”参数)时,提取的页面集将拆分到多个页面,并
设置k_paginator_required以指示这一点。
它可用于确定何时显示仅在这种情况下才有意义的文本,
例如“下一个”和“转发”链接或“第 1 页,共 3 页”。

链接到下一页(如果有)

链接到上一页(如果有)

例子:

<cms:pages masterpage='blog.php' limit='10' paginate='1'>
    <cms:if k_paginated_top>
        <cms:if k_paginator_required >
            Page <cms:show k_current_page /> of <cms:show k_total_pages /><br>
        </cms:if>
        <cms:show k_total_records /> Pages Found.
        Displaying: <cms:show k_record_from />-<cms:show k_record_to />
    </cms:if>

    <!-- All the page variables can be accessed here -->

    <cms:if k_paginated_bottom >
        <cms:if k_paginate_link_prev >
            <a href="<cms:show k_paginate_link_prev />">prev</a>
        </cms:if>
        <cms:if k_paginate_link_next >
            <a href="<cms:show k_paginate_link_next />">next</a>
        </cms:if>
    </cms:if>
</cms:pages>

无需手动编码“下一个”和“上一个”按钮来浏览页面,而是可以使用分页器标记 -

<cms:pages masterpage='blog.php' limit='10' paginate='1'>
    <cms:if k_paginated_top>
        <cms:if k_paginator_required >
            Page <cms:show k_current_page /> of <cms:show k_total_pages /><br>
        </cms:if>
        <cms:show k_total_records /> Pages Found.
        Displaying: <cms:show k_record_from />-<cms:show k_record_to />
    </cms:if>

    <!-- All the page variables can be accessed here -->

    <cms:paginator />
</cms:pages>

如果使用分页器标记来生成导航按钮,则可以使用以下 CSS 代码来正确设置按钮样式 -

/*
    Paginator -
    Source: http://www.strangerstudios.com/sandbox/pagination/diggstyle.php (strangerstudios.com)
*/

div.pagination {
    padding: 3px;
    margin: 3px;
}

div.pagination a {
    padding: 2px 5px 2px 5px;
    margin: 2px;
    border: 1px solid #AAAADD;
    zoom: 100%;
    text-decoration: none; /* no underline */
    color: #000099;
}
div.pagination a:hover, div.pagination a:active {
    border: 1px solid #000099;

    color: #000;
}
div.pagination span.page_current {
    padding: 2px 5px 2px 5px;
    margin: 2px;
    border: 1px solid #000099;

    * zoom: 100%;

    font-weight: bold;
    background-color: #000099;
    color: #FFF;
}
div.pagination span.page_disabled {
    padding: 2px 5px 2px 5px;
    margin: 2px;
    border: 1px solid #EEE;

    * zoom: 100%;

    color: #DDD;
}

* span.elipsis {zoom:100%}

以下是分页器标记的示例输出