* @ingroup Pager
*/
abstract class TablePager extends IndexPager {
+ /** @var string */
protected $mSort;
+ /** @var stdClass */
protected $mCurrentRow;
public function __construct( IContextSource $context = null ) {
* @protected
* @return string
*/
- function getStartBody() {
+ protected function getStartBody() {
$sortClass = $this->getSortHeaderClass();
$s = '';
// Make table header
foreach ( $fields as $field => $name ) {
if ( strval( $name ) == '' ) {
- $s .= Html::rawElement( 'th', [], ' ' ) . "\n";
+ $s .= Html::rawElement( 'th', [], "\u{00A0}" ) . "\n";
} elseif ( $this->isFieldSortable( $field ) ) {
$query = [ 'sort' => $field, 'limit' => $this->mLimit ];
$linkType = null;
// We don't actually know in which direction other fields will be sorted by default…
if ( $this->mDefaultDirection == IndexPager::DIR_DESCENDING ) {
$linkType = 'asc';
- $class = "$sortClass TablePager_sort-descending";
+ $class = "$sortClass mw-datatable-is-sorted mw-datatable-is-descending";
$query['asc'] = '1';
$query['desc'] = '';
} else {
$linkType = 'desc';
- $class = "$sortClass TablePager_sort-ascending";
+ $class = "$sortClass mw-datatable-is-sorted mw-datatable-is-ascending";
$query['asc'] = '';
$query['desc'] = '1';
}
* @protected
* @return string
*/
- function getEndBody() {
+ protected function getEndBody() {
return "</tbody></table>\n";
}
$fieldNames = $this->getFieldNames();
foreach ( $fieldNames as $field => $name ) {
- $value = isset( $row->$field ) ? $row->$field : null;
+ $value = $row->$field ?? null;
$formatted = strval( $this->formatValue( $field, $value ) );
if ( $formatted == '' ) {
- $formatted = ' ';
+ $formatted = "\u{00A0}";
}
$s .= Html::rawElement( 'td', $this->getCellAttrs( $field, $value ), $formatted ) . "\n";
$types = [ 'first', 'prev', 'next', 'last' ];
$queries = $this->getPagingQueries();
- $links = [];
$buttons = [];
// * table_pager_prev
// * table_pager_next
// * table_pager_last
+ 'classes' => [ 'TablePager-button-' . $type ],
+ 'flags' => [ 'progressive' ],
+ 'framed' => false,
'label' => $this->msg( 'table_pager_' . $type )->text(),
'href' => $queries[ $type ] ?
$title->getLinkURL( $queries[ $type ] + $this->getDefaultQuery() ) :