2012-12-22 80 views
1

我是joomla的新手。我正在嘗試創建一個顯示來自我的數據庫的數據的網頁(我使用的是Sourcerer插件的PHP)。數據包含使用圖像的用戶個人資料。現在我想每頁顯示5個用戶配置文件(使用分頁)。這只是一個我想要分頁的菜單(頁面)。 我已經通過許多鏈接,但無法找到確切的解決方案。 Plz幫助我。在Joomla尋呼

感謝

+0

分頁是遍佈核心,你有沒有嘗試過看例子fr那裏?例如,查看任何類別列表佈局以及它如何使用核心分頁。 – Elin

回答

0

上面的構造函數和下面的類定義把這段代碼

class ComUserModel extends JModel 
{ 

    var $_pagination = null; 

    function __construct() 
    { 

在你正在使用的模型的構造,讓我們假定它是用戶模型

function __construct() 
{ 
    $this->_app =& JFactory::getApplication(); 
    parent::__construct(); 

    // Get pagination request variables 
    $limit = $this->_app->getUserStateFromRequest(OPTIOIN_NAME.'.user.limit', 'limit', $this->_app->getCfg('list_limit'), 'int'); 
    $limitstart = $this->_app->getUserStateFromRequest(OPTIOIN_NAME.'.user.limitstart', 'limitstart', 0, 'int'); 

    // In case limit has been changed, adjust it 
    $limitstart = ($limit != 0 ? (floor($limitstart/$limit) * $limit) : 0); 

    // Set States 
    $this->setState(OPTIOIN_NAME.'.user.limit', $limit); 
    $this->setState(OPTIOIN_NAME.'.user.limitstart', $limitstart); 
} 

將以下功能添加到型號

function pagination() 
{ 
    if($this->_pagination == NULL) 
     $this->_pagination = new JPagination(20, $this->getState(OPTIOIN_NAME.'.user.limitstart'), $this->getState(OPTIOIN_NAME.'.user.limit')); 
    return $this->_pagination; 
} 

當你retrive數據,

function getUsers() 
{ 
    // Set the Limits and Filters 
    $limit = $this->getState(OPTIOIN_NAME.'.user.limit'); 
    $limitstart = $this->getState(OPTIOIN_NAME.'.user.limitstart'); 

    //get db    
    $db = JFactory::getDBO(); 
    $count_query = 'count(*)'; 
    $select_query = '*'; 
    $from_query = $db->nameQuote(TABLE_PREFIX.'user_table');    


    //build the query 
    $query = $db->getQuery(true); 
    $query->select($select_query); 
    $query->from($from_query); 
    $query->order($db->nameQuote('id').' desc');  
    $db->setQuery($query);    


    //build count query 
    $cquery = $db->getQuery(true); 
    $cquery->select($count_query); 
    $cquery->from($from_query); 
    $cquery->order($db->nameQuote('id').' desc');  
    $db->setQuery($cquery);    
    $total = $db->loadResult(); 


    if ($db->getErrorNum()) 
    { 
     $this->_app->enqueueMessage($db->stderr(), 'error'); 
     return false; 
    }   
    //setup the pagination 
    $this->_pagination = new JPagination($total, $limitstart, $limit);  

    //get the data within limits 
    $data  = $this->_getList($query, $limitstart, $limit);   

    if ($db->getErrorNum()) 
    { 
     $this->_app->enqueueMessage($db->stderr(), 'error'); 
     return false; 
    } 

    return $data; 
} 

在控制器

function getalluser() 
{ 

    $model  = $this->getModel('user');   
    $data  = $model->getUsers(); 
    $pagination = $model->pagination(); 

    $view = $this->getView('userlist', 'html'); 
    $view->assignRef('data',$data); 
    $view->assignRef('pagination', $pagination);   
    $view->display(); 
} 

在視圖中把你想要的分頁

<?php echo $this->pagination->getListFooter(); ?> 

代碼如果您有任何問題,讓我知道