1
我是joomla的新手。我正在嘗試創建一個顯示來自我的數據庫的數據的網頁(我使用的是Sourcerer插件的PHP)。數據包含使用圖像的用戶個人資料。現在我想每頁顯示5個用戶配置文件(使用分頁)。這只是一個我想要分頁的菜單(頁面)。 我已經通過許多鏈接,但無法找到確切的解決方案。 Plz幫助我。在Joomla尋呼
感謝
我是joomla的新手。我正在嘗試創建一個顯示來自我的數據庫的數據的網頁(我使用的是Sourcerer插件的PHP)。數據包含使用圖像的用戶個人資料。現在我想每頁顯示5個用戶配置文件(使用分頁)。這只是一個我想要分頁的菜單(頁面)。 我已經通過許多鏈接,但無法找到確切的解決方案。 Plz幫助我。在Joomla尋呼
感謝
上面的構造函數和下面的類定義把這段代碼
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(); ?>
代碼如果您有任何問題,讓我知道
分頁是遍佈核心,你有沒有嘗試過看例子fr那裏?例如,查看任何類別列表佈局以及它如何使用核心分頁。 – Elin