protected function sortCmp($col, $asc, $a, $b) { switch ($col) { case 'due': if ($a->{$col} === null) { if ($b->{$col} === null) { return 0; } return 1; } elseif ($b->{$col} === null) { return -1; } $diff = $a->{$col}->diff($b->{$col}); if ($diff->days == 0) { return 0; } if ($diff->invert) { return $asc ? 1 : -1; } else { return $asc ? -1 : 1; } break; default: return parent::sortCmp($col, $asc, $a, $b); break; } }