2018-03-05
+ user list
This commit is contained in:
parent
2a132adc24
commit
e298386c9a
8 changed files with 187 additions and 52 deletions
|
@ -77,7 +77,8 @@ class Routing
|
|||
// юзеры
|
||||
if ($user->g_view_users == '1') {
|
||||
// список пользователей
|
||||
$r->add('GET', '/userlist[/{sort:username|registered|num_posts}/{dir:ASC|DESC}/{group:\-1|[1-9]\d*}/{name}][/{page:[1-9]\d*}]', 'Userlist:view', 'Userlist');
|
||||
$r->add('GET', '/userlist[/{sort:username|registered|num_posts}/{dir:ASC|DESC}/{group:\-1|[1-9]\d*}/{name}][/{page:[1-9]\d*}]', 'Userlist:view', 'Userlist');
|
||||
$r->add('POST', '/userlist', 'Userlist:view');
|
||||
// юзеры
|
||||
$r->add('GET', '/user/{id:[1-9]\d*}/{name}', 'Profile:view', 'User'); //????
|
||||
}
|
||||
|
|
|
@ -23,16 +23,21 @@ class Userlist extends Page
|
|||
{
|
||||
$this->c->Lang->load('userlist');
|
||||
|
||||
$groups = \array_filter($this->c->groups->getList(), function ($group) {
|
||||
return ! $group->groupGuest;
|
||||
});
|
||||
|
||||
$prefix = 'POST' === $method ? 'required|' : '';
|
||||
$v = $this->c->Validator->reset()
|
||||
->addRules([
|
||||
'sort' => 'string|in:username,registered' . ($this->user->showPostCount ? ',num_posts' : ''),
|
||||
'dir' => 'string|in:ASC,DESC',
|
||||
'group' => 'integer|min:-1|max:9999999999|not_in:0,' . $this->c->GROUP_GUEST,
|
||||
'name' => 'string:trim|min:1|max:25' . ($this->user->searchUsers ? '' : '|in:*'),
|
||||
'sort' => $prefix . 'string|in:username,registered' . ($this->user->showPostCount ? ',num_posts' : ''),
|
||||
'dir' => $prefix . 'string|in:ASC,DESC',
|
||||
'group' => $prefix . 'integer|in:-1,' . \implode(',', \array_keys($groups)),
|
||||
'name' => $prefix . 'string:trim|min:1|max:25' . ($this->user->searchUsers ? '' : '|in:*'),
|
||||
]);
|
||||
|
||||
$error = true;
|
||||
if ($v->validation($args)) {
|
||||
if ($v->validation('POST' === $method ? $_POST : $args)) {
|
||||
$count = (int) (null === $v->sort)
|
||||
+ (int) (null === $v->dir)
|
||||
+ (int) (null === $v->group)
|
||||
|
@ -45,6 +50,9 @@ class Userlist extends Page
|
|||
if ($error) {
|
||||
return $this->c->Message->message('Bad request');
|
||||
}
|
||||
if ('POST' === $method) {
|
||||
return $this->c->Redirect->page('Userlist', $v->getData());
|
||||
}
|
||||
|
||||
$filters = [];
|
||||
if ($v->group < 1) {
|
||||
|
@ -83,7 +91,7 @@ class Userlist extends Page
|
|||
$vars['name'] = $v->name;
|
||||
}
|
||||
|
||||
$this->active = 0;
|
||||
$this->activeLink = 0;
|
||||
|
||||
foreach (['username', 'num_posts', 'registered'] as $i => $sort) {
|
||||
$vars['sort'] = $sort;
|
||||
|
@ -93,7 +101,7 @@ class Userlist extends Page
|
|||
$links[$i * 2 + $j] = $this->c->Router->link('Userlist', $vars);
|
||||
|
||||
if ($v->sort === $sort && $v->dir === $dir) {
|
||||
$this->active = $i * 2 + $j;
|
||||
$this->activeLink = $i * 2 + $j;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -102,16 +110,76 @@ class Userlist extends Page
|
|||
} else {
|
||||
$this->startNum = 0;
|
||||
$this->userList = null;
|
||||
// ни чего не найдено
|
||||
$this->links = [null, null, null, null, null, null];
|
||||
$this->links = [null, null, null, null, null, null];
|
||||
$this->fIswev = ['i', \ForkBB\__('No users found')];
|
||||
}
|
||||
|
||||
$form = [
|
||||
'action' => $this->c->Router->link('Userlist'),
|
||||
'hidden' => [],
|
||||
'sets' => [],
|
||||
'btns' => [
|
||||
'submit' => [
|
||||
'type' => 'submit',
|
||||
'value' => \ForkBB\__($this->user->searchUsers ? 'Search btn' : 'Sort btn'),
|
||||
'accesskey' => 's',
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
$fields = [];
|
||||
|
||||
if ($this->user->searchUsers) {
|
||||
$fields['name'] = [
|
||||
'type' => 'text',
|
||||
'maxlength' => 25,
|
||||
'value' => $v->name ?: '*',
|
||||
'title' => \ForkBB\__('Username'),
|
||||
'info' => \ForkBB\__('User search info'),
|
||||
'required' => true,
|
||||
# 'autofocus' => true,
|
||||
];
|
||||
} else {
|
||||
$form['hidden']['name'] = '*';
|
||||
}
|
||||
$fields['group'] = [
|
||||
'dl' => 'w4',
|
||||
'type' => 'select',
|
||||
'options' => [[-1, \ForkBB\__('All users')]] + \array_map(function ($group) {
|
||||
return [$group->g_id, $group->g_title];
|
||||
}, $groups),
|
||||
'value' => $v->group,
|
||||
'title' => \ForkBB\__('User group'),
|
||||
];
|
||||
$fields['sort'] = [
|
||||
'dl' => 'w4',
|
||||
'type' => 'select',
|
||||
'options' => [
|
||||
['username', \ForkBB\__('Sort by name')],
|
||||
['num_posts', \ForkBB\__('Sort by number'), $this->user->showPostCount ? null : true],
|
||||
['registered', \ForkBB\__('Sort by date')],
|
||||
],
|
||||
'value' => $v->sort,
|
||||
'title' => \ForkBB\__('Sort users by'),
|
||||
];
|
||||
$fields['dir'] = [
|
||||
'dl' => 'w4',
|
||||
'type' => 'radio',
|
||||
'value' => $v->dir ?: 'ASC',
|
||||
'values' => [
|
||||
'ASC' => \ForkBB\__('Ascending'),
|
||||
'DESC' => \ForkBB\__('Descending'),
|
||||
],
|
||||
'title' => \ForkBB\__('User sort order'),
|
||||
];
|
||||
$form['sets'][] = ['fields' => $fields];
|
||||
|
||||
$this->fIndex = 'userlist';
|
||||
$this->nameTpl = 'userlist';
|
||||
$this->onlinePos = 'userlist';
|
||||
$this->canonical = $this->c->Router->link('Userlist', ['page' => $page]); // ????
|
||||
$this->canonical = $this->c->Router->link('Userlist', $args); // ????
|
||||
$this->robots = 'noindex';
|
||||
// $this->form = $form;
|
||||
$this->form = $form;
|
||||
$this->crumbs = $this->crumbs([$this->c->Router->link('Userlist'), \ForkBB\__('User_list')]);
|
||||
$this->pagination = $this->c->Func->paginate($pages, $page, 'Userlist', $args);
|
||||
|
||||
|
|
|
@ -21,9 +21,6 @@ msgstr "You do not have permission to use the search feature."
|
|||
msgid "Search flood"
|
||||
msgstr "At least %s seconds have to pass between searches. Please wait %s seconds and try searching again."
|
||||
|
||||
msgid "Search"
|
||||
msgstr "Search"
|
||||
|
||||
msgid "Search criteria legend"
|
||||
msgstr "Enter your search criteria"
|
||||
|
||||
|
@ -64,7 +61,7 @@ msgid "Sort by"
|
|||
msgstr "Sort by"
|
||||
|
||||
msgid "Sort order"
|
||||
msgstr "Sort order"
|
||||
msgstr "Results sort order"
|
||||
|
||||
msgid "Search results legend"
|
||||
msgstr "Select how to view search results"
|
||||
|
@ -99,9 +96,6 @@ msgstr "Topics"
|
|||
msgid "Show as posts"
|
||||
msgstr "Posts"
|
||||
|
||||
msgid "Search"
|
||||
msgstr "Search"
|
||||
|
||||
msgid "Search results"
|
||||
msgstr "Search results"
|
||||
|
||||
|
|
|
@ -12,14 +12,14 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: en\n"
|
||||
|
||||
msgid "User find legend"
|
||||
msgstr "Find and sort users"
|
||||
msgid "User search head"
|
||||
msgstr "Find users"
|
||||
|
||||
msgid "User sort head"
|
||||
msgstr "Sort users"
|
||||
|
||||
msgid "User search info"
|
||||
msgstr "Enter a username to search for and/or a user group to filter by. The username field can be left blank. Use the wildcard character * for partial matches."
|
||||
|
||||
msgid "User sort info"
|
||||
msgstr "Sort users by name, date registered or number of posts and in ascending/descending order."
|
||||
msgstr "Use the wildcard character * for partial matches."
|
||||
|
||||
msgid "User group"
|
||||
msgstr "User group"
|
||||
|
@ -28,7 +28,7 @@ msgid "No of posts"
|
|||
msgstr "Number of posts"
|
||||
|
||||
msgid "All users"
|
||||
msgstr "All"
|
||||
msgstr "< All >"
|
||||
|
||||
msgid "User_list"
|
||||
msgstr "User list"
|
||||
|
@ -40,3 +40,33 @@ msgstr[1] "<b>%s</b><span> posts,</span>"
|
|||
|
||||
msgid "<span>registered: </span><b>%s</b>"
|
||||
msgstr "<span>registered: </span><b>%s</b>"
|
||||
|
||||
msgid "No users found"
|
||||
msgstr "No users were found matching your criteria."
|
||||
|
||||
msgid "Search btn"
|
||||
msgstr "Serach"
|
||||
|
||||
msgid "Sort btn"
|
||||
msgstr "Sort"
|
||||
|
||||
msgid "Sort users by"
|
||||
msgstr "Sort user list by"
|
||||
|
||||
msgid "Sort by name"
|
||||
msgstr "Name"
|
||||
|
||||
msgid "Sort by number"
|
||||
msgstr "Number of posts"
|
||||
|
||||
msgid "Sort by date"
|
||||
msgstr "Date of registration"
|
||||
|
||||
msgid "User sort order"
|
||||
msgstr "User list sort order"
|
||||
|
||||
msgid "Ascending"
|
||||
msgstr "Ascending"
|
||||
|
||||
msgid "Descending"
|
||||
msgstr "Descending"
|
||||
|
|
|
@ -21,9 +21,6 @@ msgstr "У вас нет прав для использования поиска
|
|||
msgid "Search flood"
|
||||
msgstr "Должно пройти как минимум %s секунд между повторными попытками поиска информации. Пожалуйста, подождите %s секунд, а затем повторите попытку."
|
||||
|
||||
msgid "Search"
|
||||
msgstr "Поиск"
|
||||
|
||||
msgid "Search criteria legend"
|
||||
msgstr "Условия поиска"
|
||||
|
||||
|
@ -64,7 +61,7 @@ msgid "Sort by"
|
|||
msgstr "Сортировать по"
|
||||
|
||||
msgid "Sort order"
|
||||
msgstr "Порядок сортировки"
|
||||
msgstr "Упорядочить по"
|
||||
|
||||
msgid "Search results legend"
|
||||
msgstr "Настройка параметров вывода результатов"
|
||||
|
@ -85,10 +82,10 @@ msgid "Sort by forum"
|
|||
msgstr "разделу"
|
||||
|
||||
msgid "Ascending"
|
||||
msgstr "по возрастанию"
|
||||
msgstr "возрастанию"
|
||||
|
||||
msgid "Descending"
|
||||
msgstr "по убыванию"
|
||||
msgstr "убыванию"
|
||||
|
||||
msgid "Show as"
|
||||
msgstr "Показать как"
|
||||
|
@ -99,9 +96,6 @@ msgstr "темы"
|
|||
msgid "Show as posts"
|
||||
msgstr "сообщения"
|
||||
|
||||
msgid "Search"
|
||||
msgstr "Поиск"
|
||||
|
||||
msgid "Search results"
|
||||
msgstr "Результаты поиска"
|
||||
|
||||
|
|
|
@ -12,14 +12,14 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ru\n"
|
||||
|
||||
msgid "User find legend"
|
||||
msgstr "Поиск и сортировка пользователей"
|
||||
msgid "User search head"
|
||||
msgstr "Поиск пользователей"
|
||||
|
||||
msgid "User sort head"
|
||||
msgstr "Сортировка пользователей"
|
||||
|
||||
msgid "User search info"
|
||||
msgstr "Введите имя пользователя и/или выберите группу по которой хотите фильтровать список. Имя пользователя может быть пустым. Для поиска по маске разрешено использовать символ звездочки (*)."
|
||||
|
||||
msgid "User sort info"
|
||||
msgstr "Сортируйте пользователей по именам, дате регистрации и количеству сообщений; по возрастанию или убыванию."
|
||||
msgstr "Для поиска по маске разрешено использовать символ звездочки (*)."
|
||||
|
||||
msgid "User group"
|
||||
msgstr "Группа пользователей"
|
||||
|
@ -28,7 +28,7 @@ msgid "No of posts"
|
|||
msgstr "Кол-во сообщений"
|
||||
|
||||
msgid "All users"
|
||||
msgstr "<Все>"
|
||||
msgstr "< Все >"
|
||||
|
||||
msgid "User_list"
|
||||
msgstr "Список пользователей"
|
||||
|
@ -41,3 +41,33 @@ msgstr[2] "<b>%s</b><span> сообщений,</span>"
|
|||
|
||||
msgid "<span>registered: </span><b>%s</b>"
|
||||
msgstr "<span>дата регистрации: </span><b>%s</b>"
|
||||
|
||||
msgid "No users found"
|
||||
msgstr "По вашему запросу ничего не найдено."
|
||||
|
||||
msgid "Search btn"
|
||||
msgstr "Найти"
|
||||
|
||||
msgid "Sort btn"
|
||||
msgstr "Сортировать"
|
||||
|
||||
msgid "Sort users by"
|
||||
msgstr "Сортировать по"
|
||||
|
||||
msgid "Sort by name"
|
||||
msgstr "имени"
|
||||
|
||||
msgid "Sort by number"
|
||||
msgstr "количеству сообщений"
|
||||
|
||||
msgid "Sort by date"
|
||||
msgstr "дате регистрации"
|
||||
|
||||
msgid "User sort order"
|
||||
msgstr "Упорядочить по"
|
||||
|
||||
msgid "Ascending"
|
||||
msgstr "возрастанию"
|
||||
|
||||
msgid "Descending"
|
||||
msgstr "убыванию"
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
</div>
|
||||
@if ($form = $p->form)
|
||||
<section class="f-main f-userlist-form">
|
||||
<h2>{!! __('Search') !!}</h2>
|
||||
<h2>{!! __($p->user->searchUsers ? 'User search head' : 'User sort head') !!}</h2>
|
||||
<div class="f-fdiv">
|
||||
@include ('layouts/form')
|
||||
</div>
|
||||
|
@ -51,32 +51,32 @@
|
|||
@endif
|
||||
@if ($p->userList)
|
||||
<section class="f-main f-userlist">
|
||||
<h2>{!! __('User list') !!}</h2>
|
||||
<h2>{!! __('User_list') !!}</h2>
|
||||
<div class="f-ulist">
|
||||
<ol class="f-table">
|
||||
<li class="f-row f-thead" value="{{ $p->startNum }}">
|
||||
<span class="f-hcell f-cusername">
|
||||
<span class="f-hc-table">
|
||||
<span class="f-hc-tasc"><a @if (0 === $p->active) class="active" @endif href="{!! $p->links[0] !!}">▲</a></span>
|
||||
<span class="f-hc-tasc"><a @if (0 === $p->activeLink) class="active" @endif href="{!! $p->links[0] !!}">▲</a></span>
|
||||
<span class="f-hc-tname">{!! __('Username') !!}</span>
|
||||
<span class="f-hc-tdesc"><a @if (1 === $p->active) class="active" @endif href="{!! $p->links[1] !!}">▼</a></span>
|
||||
<span class="f-hc-tdesc"><a @if (1 === $p->activeLink) class="active" @endif href="{!! $p->links[1] !!}">▼</a></span>
|
||||
</span>
|
||||
</span>
|
||||
<span class="f-hcell f-ctitle">{!! __('Title') !!}</span>
|
||||
@if ($p->user->showPostCount)
|
||||
<span class="f-hcell f-cnumposts">
|
||||
<span class="f-hc-table">
|
||||
<span class="f-hc-tasc"><a @if (2 === $p->active) class="active" @endif href="{!! $p->links[2] !!}">▲</a></span>
|
||||
<span class="f-hc-tasc"><a @if (2 === $p->activeLink) class="active" @endif href="{!! $p->links[2] !!}">▲</a></span>
|
||||
<span class="f-hc-tname">{!! __('Posts') !!}</span>
|
||||
<span class="f-hc-tdesc"><a @if (3 === $p->active) class="active" @endif href="{!! $p->links[3] !!}">▼</a></span>
|
||||
<span class="f-hc-tdesc"><a @if (3 === $p->activeLink) class="active" @endif href="{!! $p->links[3] !!}">▼</a></span>
|
||||
</span>
|
||||
</span>
|
||||
@endif
|
||||
<span class="f-hcell f-cdatereg">
|
||||
<span class="f-hc-table">
|
||||
<span class="f-hc-tasc"><a @if (4 === $p->active) class="active" @endif href="{!! $p->links[4] !!}">▲</a></span>
|
||||
<span class="f-hc-tasc"><a @if (4 === $p->activeLink) class="active" @endif href="{!! $p->links[4] !!}">▲</a></span>
|
||||
<span class="f-hc-tname">{!! __('Registered') !!}</span>
|
||||
<span class="f-hc-tdesc"><a @if (5 === $p->active) class="active" @endif href="{!! $p->links[5] !!}">▼</a></span>
|
||||
<span class="f-hc-tdesc"><a @if (5 === $p->activeLink) class="active" @endif href="{!! $p->links[5] !!}">▼</a></span>
|
||||
</span>
|
||||
</span>
|
||||
</li>
|
||||
|
|
|
@ -1873,13 +1873,15 @@ li + li .f-btn {
|
|||
/* padding-top: 0; */
|
||||
}
|
||||
|
||||
.f-search-form .f-fdiv .f-field-w4 {
|
||||
.f-search-form .f-fdiv .f-field-w4,
|
||||
.f-userlist-form .f-fdiv .f-field-w4 {
|
||||
width: 33.33%;
|
||||
float: left;
|
||||
/* padding-top: 0; */
|
||||
}
|
||||
|
||||
.f-search-form .f-label {
|
||||
.f-search-form .f-label,
|
||||
.f-userlist-form .f-label {
|
||||
padding: 0.5rem 0;
|
||||
}
|
||||
|
||||
|
@ -1901,6 +1903,10 @@ li + li .f-btn {
|
|||
/************************/
|
||||
|
||||
.f-userlist > h2 {
|
||||
padding: 0 0.625rem;
|
||||
}
|
||||
|
||||
.f-userlist-form > h2 {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
@ -1922,6 +1928,10 @@ li + li .f-btn {
|
|||
}
|
||||
|
||||
@media screen and (min-width: 50rem) {
|
||||
.f-userlist > h2 {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.f-ulist .f-row {
|
||||
padding: 0;
|
||||
}
|
||||
|
@ -2015,4 +2025,12 @@ li + li .f-btn {
|
|||
padding-top: 0.3125rem;
|
||||
padding-bottom: 0.3125rem;
|
||||
}
|
||||
|
||||
.f-userlist-form fieldset > .f-field-w4:first-child + .f-field-w4 {
|
||||
padding-top: 0.625rem;
|
||||
}
|
||||
|
||||
.f-userlist-form fieldset > .f-field-w4:first-child + .f-field-w4 + .f-field-w4 {
|
||||
padding-top: 0.625rem;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue