Joomla 2.5 分页 [英] Joomla 2.5 pagination

查看:20
本文介绍了Joomla 2.5 分页的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想为我的组件添加分页,我创建了一个带有查询的简单模型.我肯定错过了什么.我还需要什么?

I want to add pagination to my component, i've created a simple model with query. I must be missing something. What else do I need here ?

MODEL
jimport('joomla.application.component.modellist');
class PaieskaModelPradinis extends JModelList
{
    public function getListQuery() 
    {
    $db = JFactory::getDBO();
    $query = "SELECT * FROM #__content";
    $db->setQuery( $query );
    $db->query( $query );
    $result = $db->LoadObjectList();
    return $result;
    }
}

VIEW

jimport( 'joomla.application.component.view');
class PaieskaViewPradinis extends JView
{
    protected $items;
    protected $pagination;
    function display ($tpl = null)
    {
        $this->items = $this->get('ListQuery');
        $this->pagination = $this->get('Pagination');

        parent::display($tpl);
    }
}
TPL
foreach ($this->items as $item) {
    echo $item->title;
}

我编辑了一些代码,现在几乎可以正常工作了.按钮显示(要显示的行数)不起作用.我想知道这部分是否可以以不同的方式完成?

I edited a bit code, so now it works fine, almost. Button display(number of rows to display) is not working. And I wonder if this part can be done in a different way ?

    $limit      = JRequest::getVar('limit' , 25);
    $start      = JRequest::getVar('start' , 0);        
    $query      = "SELECT * FROM #__content LIMIT $start, $limit";

-

class PaieskaModelPradinis extends JModelList
{
    public function getItems() 
    {
        $db         = JFactory::getDBO();
        $limit      = JRequest::getVar('limit' , 25);
        $start      = JRequest::getVar('start' , 0);        
        $query      = "SELECT * FROM #__content LIMIT $start, $limit";
        $db->setQuery( $query );
        $db->query( $query );
        $lists = $db->LoadObjectList();

        return $lists;
    }
    function getPagination()
    {
        $main = JFactory::getApplication();
        $db         = JFactory::getDBO();
        $limit      = JRequest::getVar('limit' , 25);
        $limitstart = JRequest::getVar('limitstart', 0);

        $query      = "SELECT count(title) FROM #__content";
        $db->setQuery( $query );
        $total      = $db->loadResult();

                // include a pagination library

        jimport('joomla.html.pagination');
        $pagination = new JPagination($total, $limitstart, $limit);

        return $pagination;
    }
}

VIEW

jimport( 'joomla.application.component.view');
class PaieskaViewPradinis extends JView
{
    function display($tpl = null)
    {
        $this->items  = $this->get('items');
        $this->pagination = $this->get('pagination');

        parent::display($tpl);
    }
}

推荐答案

使用原始代码,而不是编辑后的版本.

Going off your original code, not the edited version.

getListQuery 方法仅构建您的数据库查询,因此您不要在此处执行查询.使用 com_weblinks 作为构建模型的示例:https://github.com/joomla/joomla-cms/blob/2.5.x/components/com_weblinks/models/category.php

The getListQuery method only builds your database query, so you don't execute your query here. Use com_weblinks as an example for building out your model: https://github.com/joomla/joomla-cms/blob/2.5.x/components/com_weblinks/models/category.php

这篇关于Joomla 2.5 分页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆