Pagination 用列表器分页
我大约在2小时前开始使用敏捷工具包,但我无法解决一个问题: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-&
我需要将分页添加到博客主页和分类页面,这是我的方式:
$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();