|
@@ -95,7 +95,13 @@ class SortableTable extends HTML_Table
|
|
|
public $use_jqgrid = false;
|
|
|
public $table_id = null;
|
|
|
public $headers = [];
|
|
|
+
|
|
|
+ /**
|
|
|
+ * The array containing all data for this table.
|
|
|
+ */
|
|
|
+ public $table_data;
|
|
|
/**
|
|
|
+ *
|
|
|
* @var array Columns to hide
|
|
|
*/
|
|
|
private $columnsToHide = [];
|
|
@@ -1060,194 +1066,12 @@ class SortableTable extends HTML_Table
|
|
|
|
|
|
return $data;
|
|
|
}
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * Sortable table which can be used for data available in an array.
|
|
|
- *
|
|
|
- * @package chamilo.library
|
|
|
- */
|
|
|
-class SortableTableFromArray extends SortableTable
|
|
|
-{
|
|
|
- /**
|
|
|
- * The array containing all data for this table.
|
|
|
- */
|
|
|
- public $table_data;
|
|
|
-
|
|
|
- /**
|
|
|
- * Constructor.
|
|
|
- *
|
|
|
- * @param array $table_data
|
|
|
- * @param int $default_column
|
|
|
- * @param int $default_items_per_page
|
|
|
- * @param string $tableName
|
|
|
- * @param string $get_total_number_function
|
|
|
- * @param string $tableId
|
|
|
- */
|
|
|
- public function __construct(
|
|
|
- $table_data,
|
|
|
- $default_column = 1,
|
|
|
- $default_items_per_page = 20,
|
|
|
- $tableName = 'tablename',
|
|
|
- $get_total_number_function = null,
|
|
|
- $tableId = ''
|
|
|
- ) {
|
|
|
- parent:: __construct(
|
|
|
- $tableName,
|
|
|
- $get_total_number_function,
|
|
|
- null,
|
|
|
- $default_column,
|
|
|
- $default_items_per_page,
|
|
|
- null,
|
|
|
- $tableId
|
|
|
- );
|
|
|
- $this->table_data = $table_data;
|
|
|
- }
|
|
|
|
|
|
/**
|
|
|
- * Get table data to show on current page.
|
|
|
- *
|
|
|
- * @see SortableTable#get_table_data
|
|
|
+ * @param array $data
|
|
|
*/
|
|
|
- public function get_table_data(
|
|
|
- $from = 1,
|
|
|
- $per_page = null,
|
|
|
- $column = null,
|
|
|
- $direction = null,
|
|
|
- $sort = true
|
|
|
- ) {
|
|
|
- if ($sort) {
|
|
|
- $content = TableSort::sort_table(
|
|
|
- $this->table_data,
|
|
|
- $this->column,
|
|
|
- $this->direction === 'ASC' ? SORT_ASC : SORT_DESC
|
|
|
- );
|
|
|
- } else {
|
|
|
- $content = $this->table_data;
|
|
|
- }
|
|
|
-
|
|
|
- return array_slice($content, $from, $this->per_page);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Get total number of items.
|
|
|
- *
|
|
|
- * @see SortableTable#get_total_number_of_items
|
|
|
- */
|
|
|
- public function get_total_number_of_items()
|
|
|
+ public function setTableData($data)
|
|
|
{
|
|
|
- if (isset($this->total_number_of_items) && !empty($this->total_number_of_items)) {
|
|
|
- return $this->total_number_of_items;
|
|
|
- } else {
|
|
|
- if (!empty($this->table_data)) {
|
|
|
- return count($this->table_data);
|
|
|
- }
|
|
|
-
|
|
|
- return 0;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * Sortable table which can be used for data available in an array.
|
|
|
- *
|
|
|
- * Is a variation of SortableTableFromArray because we add 2 new arrays $column_show and $column_order
|
|
|
- * $column_show is an array that lets us decide which are going to be the columns to show
|
|
|
- * $column_order is an array that lets us decide the ordering of the columns
|
|
|
- * i.e: $column_header=array('a','b','c','d','e'); $column_order=array(1,2,5,4,5);
|
|
|
- * These means that the 3th column (letter "c") will be sort like the order we use in the 5th column
|
|
|
- *
|
|
|
- * @package chamilo.library
|
|
|
- */
|
|
|
-class SortableTableFromArrayConfig extends SortableTable
|
|
|
-{
|
|
|
- /**
|
|
|
- * The array containing the columns that will be show
|
|
|
- * i.e $column_show=array('1','0','0'); we will show only the 1st column.
|
|
|
- */
|
|
|
- private $column_show;
|
|
|
-
|
|
|
- /**
|
|
|
- * The array containing the real sort column
|
|
|
- * $column_order=array('1''4','3','4');
|
|
|
- * The 2nd column will be order like the 4th column.
|
|
|
- */
|
|
|
- private $column_order;
|
|
|
- /**
|
|
|
- * The array containing all data for this table.
|
|
|
- */
|
|
|
- private $table_data;
|
|
|
- private $doc_filter;
|
|
|
-
|
|
|
- /**
|
|
|
- * Constructor.
|
|
|
- *
|
|
|
- * @param array $data All the information of the table
|
|
|
- * @param int $column Default column that will be use in the sorts functions
|
|
|
- * @param int $itemsPerPage quantity of pages that we are going to see
|
|
|
- * @param string $tableName Name of the table
|
|
|
- * @param array $column_show An array with binary values 1: we show the column 2: we don't show it
|
|
|
- * @param array $column_order an array of integers that let us decide how the columns are going to be sort
|
|
|
- * @param string $direction
|
|
|
- * @param bool $doc_filter special modification to fix the document name order
|
|
|
- */
|
|
|
- public function __construct(
|
|
|
- $data,
|
|
|
- $column = 1,
|
|
|
- $itemsPerPage = 20,
|
|
|
- $tableName = 'tablename',
|
|
|
- $column_show = [],
|
|
|
- $column_order = [],
|
|
|
- $direction = 'ASC',
|
|
|
- $doc_filter = false
|
|
|
- ) {
|
|
|
- $this->column_show = $column_show;
|
|
|
- $this->column_order = $column_order;
|
|
|
- $this->doc_filter = $doc_filter;
|
|
|
-
|
|
|
- parent::__construct(
|
|
|
- $tableName,
|
|
|
- null,
|
|
|
- null,
|
|
|
- $column,
|
|
|
- $itemsPerPage,
|
|
|
- $direction
|
|
|
- );
|
|
|
$this->table_data = $data;
|
|
|
}
|
|
|
-
|
|
|
- /**
|
|
|
- * Get table data to show on current page.
|
|
|
- *
|
|
|
- * @see SortableTable#get_table_data
|
|
|
- */
|
|
|
- public function get_table_data(
|
|
|
- $from = 1,
|
|
|
- $per_page = null,
|
|
|
- $column = null,
|
|
|
- $direction = null,
|
|
|
- $sort = true
|
|
|
- ) {
|
|
|
- $content = TableSort::sort_table_config(
|
|
|
- $this->table_data,
|
|
|
- $this->column,
|
|
|
- $this->direction === 'ASC' ? SORT_ASC : SORT_DESC,
|
|
|
- $this->column_show,
|
|
|
- $this->column_order,
|
|
|
- SORT_REGULAR,
|
|
|
- $this->doc_filter
|
|
|
- );
|
|
|
-
|
|
|
- return array_slice($content, $from, $this->per_page);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Get total number of items.
|
|
|
- *
|
|
|
- * @see SortableTable#get_total_number_of_items
|
|
|
- */
|
|
|
- public function get_total_number_of_items()
|
|
|
- {
|
|
|
- return count($this->table_data);
|
|
|
- }
|
|
|
}
|