Pagination 用列表器分页

Pagination 用列表器分页,pagination,atk4,Pagination,Atk4,我大约在2小时前开始使用敏捷工具包,但我无法解决一个问题: 我需要将分页添加到博客主页和分类页面,这是我的方式: $lister = $this->add('Lister_Paginated',null,'Posts','Posts'); $lister->setSource('posts'); $lister->dq->where('published = FALSE')->order('date',true); $lister-&

我大约在2小时前开始使用敏捷工具包,但我无法解决一个问题:
我需要将分页添加到博客主页和分类页面,这是我的方式:

    $lister = $this->add('Lister_Paginated',null,'Posts','Posts');
    $lister->setSource('posts');
    $lister->dq->where('published = FALSE')->order('date',true);
    $lister->addPaginator(5);
模板文件

<?Posts?>
   <?rows?>
    <?row?>
    <div class="post">
      <a href="/read/<?slug?>slug<?/?>.html"><img src="/uploads/img/<?previewIMG?>empty.jpg<?/?>" width="180" height="182"/></a><br />
      <span class="postTitle"><a href="/read/<?slug?>slug<?/?>.html"><?title?>Заголовок поста<?/?></a></span>
    </div>
    <?/row?>
   <?/rows?>
   <?$paginator?> 
  <?/Posts?>



但是paginator不起作用(内容不变)

在Lister中没有这样的方法。您应该只使用此方法表单并将其添加到项目列表器中


lib/Lister/Paginated.php

class Lister_Paginated extends CompleteLister {
    public $paginator;
    function addPaginator($ipp = 25, $options = null) {
        // adding ajax paginator
        if ($this->paginator) {
            return $this->paginator;
        }
        $this->paginator = $this->add('Paginator', $options);
        $this->paginator->ipp($ipp);
        return $this;
    }
    function defaultTemplate() {
        return array('view/lister/paginated');
    }
}
view/lister/paginated.html

<<?element?>ul<?/?> class="atk-lister <?$class?>" id="<?$_name?>">
<?rows?>
    <?row?>
        <<?row_element?>li<?/?> class="atk-lister-row <?$odd_even?>">
            <h3><?$name?></h3>
        </<?row_element?>li<?/?>>
    <?/row?>
    <?totals?>
    <<?row_element?>li<?/?> class="atk-lister-totals">
         Total: <?$row_count?> row<?$plural_s?>
    </<?row_element?>li<?/?>>
    <?/totals?>
<?/rows?>
<?$Content?>
<?$paginator?>     <---------------------------
</<?element?>ul<?/?>>

您使用的是Lister还是CompleteLister类


不要使用addPaginator,因为它已经很旧了。使用$lister->add('Paginator')->ipp(2);它可以与CompleteLister配合使用。

你能给我一个工作示例吗?我得到了新的错误-没有这样的点将点“paginator”添加到列表器模板:)我得到了新的错误:(应用程序错误:找不到paginator BaseException的源代码,代码:0 atk4\lib\paginator\Basic.php:83谢谢!现在我没有错误,但paginator没有更改内容:(请参阅主题问题,我更新了Source我尝试这样做,但出现错误:“应用程序错误:在所有者模板中找不到Spot”BaseException,代码:0其他信息:Spot:paginator…..但我已将此Spot添加到视图中:(因此,您将spot添加到了错误的模板中。您需要将spot添加到此特定类中指定的相应模板中。向我们展示更多代码,我们将能够帮助您。请参阅本主题中的问题,我添加了逻辑和模板代码。您正在使用大量不推荐的代码。您使用的ATK版本是什么?请尝试下载。)正在从github master branch加载最新版本,并查看是否在那里工作。模板文件的名称是什么?可能您正在查看错误的模板文件?
$lister = $this->add('Lister_Paginated');
$lister->->addPaginator();