mirror of
https://github.com/moodle/moodle.git
synced 2025-04-25 10:26:17 +02:00
MDL-11416 support for nonsortable columns in table lib
This commit is contained in:
parent
a3fbd4943d
commit
353f3f2037
@ -16,6 +16,7 @@ class flexible_table {
|
||||
var $column_style = array();
|
||||
var $column_class = array();
|
||||
var $column_suppress = array();
|
||||
var $column_nosort = array('userpic');
|
||||
var $setup = false;
|
||||
var $sess = NULL;
|
||||
var $baseurl = NULL;
|
||||
@ -64,6 +65,29 @@ class flexible_table {
|
||||
$this->sort_default_order = $defaultorder;
|
||||
}
|
||||
|
||||
/**
|
||||
* Do not sort using this column
|
||||
* @param string column name
|
||||
*/
|
||||
function no_sorting($column) {
|
||||
$this->column_nosort[] = $column;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the column sortable?
|
||||
* @param string column name, null means table
|
||||
* @return bool
|
||||
*/
|
||||
function is_sortable($column=null) {
|
||||
if (empty($column)) {
|
||||
return $this->is_sortable;
|
||||
}
|
||||
if (!$this->is_sortable) {
|
||||
return false;
|
||||
}
|
||||
return !in_array($column, $this->column_nosort);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the is_collapsible variable to the given boolean.
|
||||
* @param bool $bool
|
||||
@ -297,7 +321,7 @@ class flexible_table {
|
||||
}
|
||||
|
||||
if(
|
||||
!empty($_GET[$this->request[TABLE_VAR_SORT]]) &&
|
||||
!empty($_GET[$this->request[TABLE_VAR_SORT]]) && $this->is_sortable($_GET[$this->request[TABLE_VAR_SORT]]) &&
|
||||
(isset($this->columns[$_GET[$this->request[TABLE_VAR_SORT]]]) ||
|
||||
(($_GET[$this->request[TABLE_VAR_SORT]] == 'firstname' || $_GET[$this->request[TABLE_VAR_SORT]] == 'lastname') && isset($this->columns['fullname']))
|
||||
))
|
||||
@ -603,7 +627,7 @@ class flexible_table {
|
||||
switch($column) {
|
||||
|
||||
case 'fullname':
|
||||
if($this->is_sortable) {
|
||||
if($this->is_sortable($column)) {
|
||||
$icon_sort_first = $icon_sort_last = '';
|
||||
if($primary_sort_column == 'firstname') {
|
||||
$lsortorder = get_string('asc');
|
||||
@ -640,7 +664,7 @@ class flexible_table {
|
||||
break;
|
||||
|
||||
default:
|
||||
if($this->is_sortable) {
|
||||
if($this->is_sortable($column)) {
|
||||
if($primary_sort_column == $column) {
|
||||
if($primary_sort_order == SORT_ASC) {
|
||||
$icon_sort = ' <img src="'.$CFG->pixpath.'/t/down.gif" alt="'.get_string('asc').'" />';
|
||||
|
Loading…
x
Reference in New Issue
Block a user