var $todaysBirthdays = null;
$('.jsTodaysBirthdays').click(function() {
if ($todaysBirthdays === null) {
- $todaysBirthdays = new WCF.User.List('wcf\\data\\user\\UserBirthdayAction', '{@$box->getTitle()|encodeJS} ({@TIME_NOW|date})', { date: '{@TIME_NOW|date:'Y-m-d'}' });
+ $todaysBirthdays = new WCF.User.List('wcf\\data\\user\\UserBirthdayAction', '{@$box->getTitle()|encodeJS} ({@TIME_NOW|date})', {
+ date: '{@TIME_NOW|date:'Y-m-d'}',
+ sortField: '{$sortField}',
+ sortOrder: '{$sortOrder}'
+ });
}
$todaysBirthdays.open();
});
<?php
namespace wcf\data\user;
+use wcf\data\DatabaseObject;
use wcf\data\user\option\UserOption;
use wcf\data\IGroupedUserListAction;
use wcf\system\cache\builder\UserOptionCacheBuilder;
*/
public function validateGetGroupedUserList() {
$this->readString('date');
+ $this->readString('sortField', true);
+ $this->readString('sortOrder', true);
if (!preg_match('/\d{4}-\d{2}-\d{2}/', $this->parameters['date'])) {
throw new UserInputException();
}
+
+ if ($this->parameters['sortField'] && $this->parameters['sortOrder']) {
+ if (!in_array($this->parameters['sortField'], ['username', 'activityPoints', 'registrationDate'])) {
+ throw new UserInputException('sortField');
+ }
+
+ if (!in_array($this->parameters['sortOrder'], ['ASC', 'DESC'])) {
+ throw new UserInputException('sortOrder');
+ }
+ }
}
/**
}
}
+ if ($this->parameters['sortField'] && $this->parameters['sortOrder']) {
+ DatabaseObject::sort($users, $this->parameters['sortField'], $this->parameters['sortOrder']);
+ }
+
WCF::getTPL()->assign([
'users' => $users,
'year' => $year
DatabaseObject::sort($visibleUserProfiles, $this->sortField, $this->sortOrder);
$this->content = WCF::getTPL()->fetch($this->templateName, 'wcf', [
- 'birthdayUserProfiles' => $visibleUserProfiles
+ 'birthdayUserProfiles' => $visibleUserProfiles,
+ 'sortField' => $this->sortField,
+ 'sortOrder' => $this->sortOrder,
], true);
}
}