gpt4 book ai didi

php - joomla 2.5! JPagination,不确定如何从 getLimitBox $option 检索值

转载 作者:行者123 更新时间:2023-12-04 05:40:39 24 4
gpt4 key购买 nike

所以我一直在关注本教程 JPagination在关于 JDatabase 的部分,它有一个变量 $option在线 2 "$option.limit" . (它没有在页面上的其他任何地方被引用,我不确定这个值是在哪里声明/初始化的)。

$db =& JFactory::getDBO();
$lim = $mainframe->getUserStateFromRequest("$option.limit", 'limit', 14, 'int'); //I guess getUserStateFromRequest is for session or different reasons
$lim0 = JRequest::getVar('limitstart', 0, '', 'int');
$db->setQuery('SELECT SQL_CALC_FOUND_ROWS x, y, z FROM jos_content WHERE x',$lim0, $lim);
$rL=&$db->loadAssocList();
if (empty($rL)) {$jAp->enqueueMessage($db->getErrorMsg(),'error'); return;}
else {
////Here the beauty starts
$db->setQuery('SELECT FOUND_ROWS();'); //no reloading the query! Just asking for total without limit
jimport('joomla.html.pagination');
$pageNav = new JPagination( $db->loadResult(), $lim0, $lim );
foreach($rL as $r) {
//your display code here
}
echo $pageNav->getListFooter( ); //Displays a nice footer

我在 this 等页面上查看了 joomla 文档。看看是否 $option变量与 limitBox 相关,因为 limitbox displaybox是什么设置要显示的数量。但我的运气并不好。

因此,我想知道您打算如何从变量 $option 中获取信息。和/或来自 LimitBox 的当前选择在 JPagination 中。

Pastebin 链接到我的 implementation [24 小时后到期]

最佳答案

这篇文章在某些方面已经过时了,它最初是为 J1.5 编写的,并且假设了很多关于内部工作原理的知识。我不会推荐它用于 J2.5。

如果您遵循 J2.5 MVC 并使用它的内置(对于大多数)部分用户状态机制,那么今天的分页大部分是自动的。首先,在 J2.5 中,您的模型应该扩展 JModelList如果您要显示内容项列表。 JModelList扩展 JModel通过添加处理列表的有用功能。

这些功能之一是 populateState()方法,在它的基本状态下,如果您使用 <select>,它将为您处理列表限制。命名 limit .它通过为您管理基本 userState 来实现这一点,我建议您通读 /administrator/com_contact/libraries/joomla/application/component/modellist.php ( Joomla API JModelList )。
populateState()用于帮助模型以半自动方式跟踪组件的基础知识。除了列表限制之外,它还将跟踪搜索字段和排序列及其方向。如果您的扩展程序需要跟踪其他用户状态或覆盖设置,您可以创建 populateState()在您的模型文件中 - 请记住事先调用 parent ,这样您仍然可以获得内置的好处。例如

protected function populateState()
{
parent::populateState();
$app = JFactory::getApplication('site');

/* Do some groovy stuff here
* like adding our own form variables to the state to use later
*/
$srid = $this->getUserStateFromRequest($this->context.'.project.srid','srid');
$this->setState('project.srid', $srid);

}

对于用户状态,您可以 read more in this article (which also covers Pagination briefly) "How to use user state variables"

关于php - joomla 2.5! JPagination,不确定如何从 getLimitBox $option 检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11286014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com