Update PM

For the case when usernames will only consist of numbers.
This commit is contained in:
Visman 2021-11-16 17:03:18 +07:00
parent ab2ad0cfbe
commit 0407139360
3 changed files with 32 additions and 17 deletions

View file

@ -224,7 +224,7 @@ class Model extends ParentModel
/**
* Инициализирует массивы индексов приватных тем текущего пользователя
* Инициализирует число приватных тем без фильтра
* Может использовать фильтр по второму пользователю: id или username
* Может использовать фильтр по второму пользователю: id или "username" (именно в кавычках)
*/
public function init(/* null|int|string */ $second = null): self
{
@ -293,7 +293,7 @@ class Model extends ParentModel
if (
null === $second
|| $row['target_id'] === $second
|| $row['target'] === $second
|| '"' . $row['target'] . '"' === $second
) {
$idsArc[$id] = $lp;
}
@ -305,7 +305,7 @@ class Model extends ParentModel
if (
null === $second
|| $row['target_id'] === $second
|| $row['target'] === $second
|| '"' . $row['target'] . '"' === $second
) {
if ($lp > $row['poster_visit']) {
$idsNew[$id] = $lp;
@ -328,7 +328,7 @@ class Model extends ParentModel
if (
null === $second
|| $row['poster_id'] === $second
|| $row['poster'] === $second
|| '"' . $row['poster'] . '"' === $second
) {
$idsArc[$id] = $lp;
}
@ -340,7 +340,7 @@ class Model extends ParentModel
if (
null === $second
|| $row['poster_id'] === $second
|| $row['poster'] === $second
|| '"' . $row['poster'] . '"' === $second
) {
if ($lp > $row['target_visit']) {
$idsNew[$id] = $lp;

View file

@ -24,10 +24,20 @@ class PM extends Page
$second = null;
if (isset($args['second'])) {
if ('' === \trim($args['second'], '1234567890')) {
$second = (int) $args['second'];
} else {
$second = $args['second'];
$second = $args['second'];
if ('' === \trim($second, '1234567890')) {
$second = (int) $second;
if ($second < 2) { // ???? вынести все в роутер?
return $this->c->Message->message('Bad request');
}
} elseif (
\strlen($second) < 3
&& '"' !== $second[0]
&& '"' !== $second[-1]
) {
return $this->c->Message->message('Bad request');
}
}

View file

@ -147,14 +147,17 @@ abstract class AbstractPM extends Page
if ($viewArea) {
if (null !== $pms->second) {
if (
\is_int($pms->second)
&& ($user = $this->c->users->load($pms->second)) instanceof User
&& ! $user->isGuest
) {
$name = $user->username;
if (\is_int($pms->second)) {
if (
($user = $this->c->users->load($pms->second)) instanceof User
&& ! $user->isGuest
) {
$name = $user->username;
} else {
$name = 'unknown'; // ????
}
} else {
$name = $pms->second;
$name = \substr($pms->second, 1, -1);
}
switch ($pms->area) {
@ -168,7 +171,9 @@ abstract class AbstractPM extends Page
$this->c->Router->link(
'PMAction',
[
'second' => $this->targetUser->id,
'second' => $this->targetUser->isGuest
? '"' . $this->targetUser->username . '"'
: $this->targetUser->id,
'action' => $pms->area,
]
),