Класс wAjaxCrosstab предназначен для отображения матриц – разновидности таблиц, где на пересечении строк и столбцов содержатся упорядоченные данные. Подробнее о матрицах описано в п.Матрицы.
Основные параметры класса
| Параметр | Значение по умолчанию | Описание |
| col_objtype | Код (Id) типа объектов, который будет отображаться в столбцах матрицы. | |
| row_objtype | Код (Id) типа объектов, который будет отображаться в строках матрицы. | |
| col_extra_filter | Дополнительный sql-фильтр для отображения данных в столбцах. | |
| row_extra_filter | Дополнительный sql-фильтр для отображения данных в строках. | |
| caption | Заголовок страницы. | |
| _caption_cells | array() | Дополнительные ячейки в области заголовка таблицы. |
| rowslen | 30 | Количество строк на странице. |
| max_rowslen | 100 | Максимальное количество строк на странице. |
| colslen | 6 | Количество столбцов на странице. |
| max_colslen | 50 | Максимальное количество столбцов на странице. |
| jajaxcrosstab | true | Подключение wajaxcrosstab.js. |
| jquery | true | Подключение jquery.js. |
| jqueryui | true | Подключение jqueryui.js. |
| jcontextmenu | true | Подключение contextmenu.js. |
| editing | false | Возможность редактирования записей. |
| edittype | b | Тип ячейки в матрице (b - bool, f - float,crud). |
| listtable | listtable | Css-класс для всей таблицы. |
| listgroup | listgroup | Css-класс для строк. |
| listheader | listheader | Css-класс для строк заголовка таблицы. |
| crossheadercol | crossheadercol | Css-класс для заголовка ячейки. |
| crossfirstcol | crossfirstcol | Css-класс для первой ячейки. |
| headercol | crossheader | Css-класс для заголовка столбца. |
| listodd | listodd | Css-класс для четных строк. |
| listeven | listeven | Css-класс для нечетных строк. |
| en_row_contextmenu | true | Возможность контекстного меню для строк. |
| en_col_contextmenu | true | Возможность контекстного меню для столбцов. |
| reverse | false | Реверсный порядок отображения: первыми появляются данные для столбцов, далее - данные для строк. |
| showMainmenu | true | Отображение главного меню |
| popup_script | false | Подключение popupWindow.js |
| en_mainmenu | true | Возможность отображать (печатать) главное меню |
Описание методов
addHidden()
public function addHidden($name = '', $val = '')
Добавляет скрытое поле к матрице.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wajaxcrosstab.class.php');
$w = new wAjaxCrosstab();
$w->col_objtype = 'sys_rights_roles';
$w->row_objtype = 'sys_users';
$w->addHidden('name_hidden','value_hidden');
$w->show();
В результате работы этого примера в таблице появляется дополнительный html-код:
< input id="name_hidden" name="name_hidden" value="value_hidden" type="hidden" >
addCell()
public function addCell($text = '', $align = '')
Добавляет дополнительную ячейку в заголовок матрицы.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wajaxcrosstab.class.php');
$w = new wAjaxCrosstab();
$w->col_objtype = 'sys_rights_roles';
$w->row_objtype = 'sys_users';
$w->addCell('Data');
$w->show();
addRowContextMenu()
public function addRowContextMenu($name = '',$action = '', $querystring = '')
Добавляет контекстное меню к строке.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wajaxcrosstab.class.php');
$w = new wAjaxCrosstab();
$w->col_objtype = 'sys_rights_roles';
$w->row_objtype = 'sys_users';
$w->addRowContextMenu ($parser->gt('delete', __FILE__),'delete', '', false);
$w->show();
addColContextMenu()
public function addColContextMenu($name = '',$action = '', $querystring = '')
Добавляет контекстное меню к колонке.
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wajaxcrosstab.class.php');
$w = new wAjaxCrosstab();
$w->col_objtype = 'sys_rights_roles';
$w->row_objtype = 'sys_users';
$w-> addColContextMenu ($parser->gt('delete', __FILE__),'delete', '', false);
$w->show();
addMainMenu0()
public function addMainMenu0($name = '', $action = '', $querystring = '')
Добавление элемента в меню (0 уровень) над списком.
$w = wAjaxCrosstab();
//…
$w->addMainMenu0($parser->gt('delete', __FILE__),'delete', '', false);
$w->show();
addMainMenu1()
public function addMainMenu1($name = '', $action = '', $querystring = '')
Добавление элемента в меню (1 уровень) над списком.
$w = wAjaxCrosstab();
//…
$w->addMainMenu1($parser->gt('delete', __FILE__),'delete', '', false);
$w->show();
addMainMenu2()
public function addMainMenu2($name = '', $action = '', $querystring = '')
Добавление элемента в меню (2 уровень) над списком.
$w = wAjaxCrosstab();
//…
$w->addMainMenu2($parser->gt('delete', __FILE__),'delete', '', false);
$w->show();
show()
public function show()
Отображение матрицы. Простой пример отображения матрицы, которая показывает связь между пользователями системы и ролями:
$parser->addCss('main/styles/wad-er.css');
include_once(SYS_BASE_PATH.'main/classes/wajaxcrosstab.class.php');
$w = new wAjaxCrosstab();
// Set object types for rows and columns
$w->col_objtype = 'sys_rights_roles';
$w->row_objtype = 'sys_users';
// Allow editing
$w->editing = true;
// Print the cross-table
$w->show();