Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Ну вот так и слушайте советы по лазанию в базу от челов с 20 мессагами.
НЕЛЬЗЯ ЛЕЗТЬ В БАЗУ БЕЗ ПОНИМАНИЯ ВНУТРЕННИХ МЕХАНИЗМОВ ДВИЖКА
Mirovinger, может бахнуть уже красным текстом на все страницы?
Иконка остаётся потому что в базе имеется ещё поле, с датой последнего изменения ника. На него и полагается движок, рисуя иконку. Лог вы, конечно, удаляете, да. Но дату эту обнулять тоже в таком случае надо. И не факт, что это всё, что нужно сделать для корректной очистки.
PHP:
public function hasViewableUsernameHistory(): bool
{
if ($this->username_date == 0)
{
// username has never been changed
return false;
}
if ($this->canViewFullUsernameHistory())
{...
Не знаю как почистить её полностью, мб в базе можно почистить, но зато подскажу как скрыть информацию о смене ника пользователя
Выключаем тоглер и теперь инфа будет не публичной
Ну вот так и слушайте советы по лазанию в базу от челов с 20 мессагами.
НЕЛЬЗЯ ЛЕЗТЬ В БАЗУ БЕЗ ПОНИМАНИЯ ВНУТРЕННИХ МЕХАНИЗМОВ ДВИЖКА
Mirovinger, может бахнуть уже красным текстом на все страницы?
Иконка остаётся потому что в базе имеется ещё поле, с датой последнего изменения ника. На него и полагается движок, рисуя иконку. Лог вы, конечно, удаляете, да. Но дату эту обнулять тоже в таком случае надо. И не факт, что это всё, что нужно сделать для корректной очистки.
PHP:
public function hasViewableUsernameHistory(): bool
{
if ($this->username_date == 0)
{
// username has never been changed
return false;
}
if ($this->canViewFullUsernameHistory())
{
// if you have the ability to view this user's full history, then you're bypassing any visible/date checks
return true;
}
// otherwise, we only look for recent visible changes...
$cutOff = \XF::$time - 86400 * $this->app()->options()->usernameChangeRecentLimit;
return ($this->username_date_visible >= $cutOff);
}
В теории, вот такого скрипта должно быть достаточно. Заранее предупреждаю, что не проверял, бекаптесь перед запуском и вот это вот всё.
Код:
<?php
/**
* Created by PhpStorm.
* User: West
* Date: 30.10.2021
* Time: 22:18
* Made with <3 by West from Bubuni Team
*/
use XF\Entity\UsernameChange;
$phpVersion = phpversion();
if (version_compare($phpVersion, '7.0.0', '<'))
{
die("PHP 7.0.0 or newer is required. $phpVersion does not meet this requirement. Please ask your host to upgrade PHP.");
}
$dir = __DIR__;
require($dir . '/src/XF.php');
XF::start($dir);
XF::setupApp('XF\App');
// Идентификатор (или массив оных) пользователя, историю для которых нужно подчистить
$userId = -1;
/** @var UsernameChange[] $changeList */
$changeList = XF::finder('XF:UsernameChange')
->where('user_id', '=', $userId)
->fetch();
foreach ($changeList as $usernameChange)
{
$usernameChange->delete();
}
В случае, если вы уже всё затерли с таблички этот скрипт результата никакого не даст. Меняйте поле с датой в таблице пользователей на 0 и впредь трижды думайте прежде чем лезть в базу.
Ну вот так и слушайте советы по лазанию в базу от челов с 20 мессагами.
НЕЛЬЗЯ ЛЕЗТЬ В БАЗУ БЕЗ ПОНИМАНИЯ ВНУТРЕННИХ МЕХАНИЗМОВ ДВИЖКА
Mirovinger, может бахнуть уже красным текстом на все страницы?
Иконка остаётся потому что в базе имеется ещё поле, с датой последнего изменения ника. На него и полагается движок, рисуя иконку. Лог вы, конечно, удаляете, да. Но дату эту обнулять тоже в таком случае надо. И не факт, что это всё, что нужно сделать для корректной очистки.
PHP:
public function hasViewableUsernameHistory(): bool
{
if ($this->username_date == 0)
{
// username has never been changed
return false;
}
if ($this->canViewFullUsernameHistory())
{
// if you have the ability to view this user's full history, then you're bypassing any visible/date checks
return true;
}
// otherwise, we only look for recent visible changes...
$cutOff = \XF::$time - 86400 * $this->app()->options()->usernameChangeRecentLimit;
return ($this->username_date_visible >= $cutOff);
}
В теории, вот такого скрипта должно быть достаточно. Заранее предупреждаю, что не проверял, бекаптесь перед запуском и вот это вот всё.
Код:
<?php
/**
* Created by PhpStorm.
* User: West
* Date: 30.10.2021
* Time: 22:18
* Made with <3 by West from Bubuni Team
*/
use XF\Entity\UsernameChange;
$phpVersion = phpversion();
if (version_compare($phpVersion, '7.0.0', '<'))
{
die("PHP 7.0.0 or newer is required. $phpVersion does not meet this requirement. Please ask your host to upgrade PHP.");
}
$dir = __DIR__;
require($dir . '/src/XF.php');
XF::start($dir);
XF::setupApp('XF\App');
// Идентификатор (или массив оных) пользователя, историю для которых нужно подчистить
$userId = -1;
/** @var UsernameChange[] $changeList */
$changeList = XF::finder('XF:UsernameChange')
->where('user_id', '=', $userId)
->fetch();
foreach ($changeList as $usernameChange)
{
$usernameChange->delete();
}
В случае, если вы уже всё затерли с таблички этот скрипт результата никакого не даст. Меняйте поле с датой в таблице пользователей на 0 и впредь трижды думайте прежде чем лезть в базу.
Жив, но в некоторых местах потрепан. Ваш совет не является правильным, из-за этого у человека появился дополнительный вопрос, а вы ему следом советуете в шаблонах что-то поменять, хотя надо было изначально просто дать другой запрос в базу
Никто не говорит что вы убили форум, но всё-таки раз вы даёте совет, надо разобраться немного более предметно, а не поверхностно
JustPayMe, а ещё можно в туалет под себя ходить - действие не смертельное, живы останетесь, но последствия не очень то и приятные. Как минимум - для окружающих, если они есть.
Написал к тому, что Вами был предоставлен некорректный совет, который меня очень сильно возмутил. Подмечу, что я аргументировал свою позицию и предоставил решение, которое с технической точки зрения лучше Вашего.