【问题标题】:Concrete 5 Pagination (Page List Blogs)具体5分页(页面列表博客)
【发布时间】:2015-01-04 04:23:32
【问题描述】:

是否可以在具体 5 中的 URL 中进行某种分页。我看到许多 CMS,例如 Wordpress 和 Drupal 等都具有这样的功能。

目前我的博客如下:

/blog?ccm_paging_p_b348=2

而我想要的方式是:

/blog/page/1 ... /blog/page/2 等(或类似的东西)

任何提示或建议将不胜感激

【问题讨论】:

    标签: php wordpress pagination concrete5


    【解决方案1】:

    您唯一的选择是为您的博客页面创建一个自定义页面类型,然后为处理分页的页面创建一个自定义控制器。

    请看这个页面: http://www.concrete5.org/documentation/developers/pages/mvc-approach

    尤其是“控制器”下的“页面类型”部分。它解释了如何创建页面类型控制器。对于他们,您可以创建与普通单页类似的功能,因此您可以根据从 URL 获得的参数对结果进行分页。

    此示例适用于 5.6 及更早版本:

    <?php
    class BlogPageTypeController extends Controller {
    
      public function view($page=1) {
        $pageIndex = intval($page)-1;
        if ($pageIndex < 0) {
          $pageIndex = 0;
        }
    
        $pageList = new PageList();
        $pageList->setItemsPerPage(25);
        $this->set('pages', $pageList->getPage($pageIndex));
      }
    
    }
    

    然后您将在视图中使用$pages 变量来浏览页面:

    <?php foreach($pages as $page) : ?>
      <h2><?php echo $page->getCollectionName()</h2>
    <?php endforeach; ?>
    

    【讨论】:

    • 这是正确答案。添加更多细节:您可以通过将此定义添加到您的 config/site.php 文件中,将 ccm_paging_p 查询字符串 arg 更改为其他内容(例如 pagep):define('PAGING_STRING', 'whatevs');
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 2017-07-26
    • 2013-04-10
    • 2012-09-18
    • 1970-01-01
    相关资源
    最近更新 更多