[英]How to make a Joomla Table sortable?
我在我的Joomla Web應用程序中添加了以下PHP代碼。 這將創建一個用戶組中所有用戶的表 。
如何使該表可排序?
是否有一些Joomla / PHP代碼或插件可以按名稱排序此列表? 我可以添加參數以按任何列對它進行排序嗎?
<?php
$teachers = JAccess::getUsersByGroup(10); //change number in the brackets
echo "<table class=\"table table-striped\">";
echo "<thead>";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Street</th>";
echo "<th>Zip</th>";
echo "<th>City</th>";
echo "<th>Phone</th>";
echo "<th>Email</th>";
echo "</tr>";
echo "</thead>";
echo "<tbody>";
foreach($teachers as $user_id) {
$user = JFactory::getUser($user_id);
$profile = JUserHelper::getProfile($user->id);
echo "<tr>";
echo "<td>".$user->name."</td>";
echo "<td>".$profile->profile['address1']."</td>";
echo "<td>".$profile->profile['postal_code']."</td>";
echo "<td>".$profile->profile['city']."</td>";
echo "<td>".$profile->profile['phone']."</td>";
echo "<td>".$user->email."</td>";
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
?>
例如,如果您希望它使標題可排序,則使用類似下面的代碼來添加表頭
<?php echo JHTML::_('grid.sort', JText::_('TITLE'), 'title',
$this->lists['order_Dir'], $this->lists['order'] ); ?>
並在模式中使用以下函數在SQL中構建where子句。
getUserStateFromRequest(
$option.'filter_order_Dir', 'filter_order_Dir', 'ASC'));
上述功能將根據用戶選擇返回ASC或DSC
JHTML和JHTMLGRID是用於構建交互式表的有用類
詳情頁279
我認為最簡單的方法是使用jquery或使用jquery插件。 您可以使用DataTables或Tablesorter ,它們是將具有該功能的jquery插件。
我假設您希望表在客戶端可排序,這意味着您將需要一些Javascript代碼。 有一些jquery庫可以做到這一點(例如DataTables),但也有Joomla特定擴展確實可以做到這一點,例如http://www.tabulizer.com上的Tabulizer for Joomla,它具有許多排序選項,另外還要避免使用任何jQuery與其他擴展名沖突。 這是一個排序演示http://www.tabulizer.com/index.php/support-menu/tabulizer-tips/63-sort-second-row
您還可以使用直接為Joomla開發的插件Szaki Table (當前可用於J!2.5和J!3.x)。 檢查一下,它是功能強大且高度可定制的工具。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.