Уважаемые пользователи, по техническим причинам загрузка файлов временно недоступна. Приносим извинения за временные неудобства.
Отображение id пользователя вместо логина
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
lord_nikon
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 16 лет 9 месяцев
- Откуда: Бишкек, Кыргызстан
Отображение id пользователя вместо логина
Так сложилось, что появилась острая необходимость сделать анонимный портал для пользователей.
Возможно ли сделать так, чтобы при регистрации (либо входе) пользователей, производилась подмена логина в БД на некий идентификатор, что-то вроде anonim_ID, где ID присваивалось бы либо в хаотичном порядке, либо поочередно в цифрах, типа anonim_001, anonim_002 и т.п.?
или (что было бы удобнее)
пользователь регистрируется с неким логином и выполняет вход на форум тоже с него, а в темах форума и профайле отображается идентификатор, что-то вроде anonim_ID, где ID присваивалось бы либо в хаотичном порядке, либо поочередно в цифрах, типа anonim_001, anonim_002 и т.п.?
Возможно существуют какие-либо модификации? Честно говоря не нашел ничего.
Заранее благодарен за внимание к теме и возможную помощь.
phpBB: 3.0.7-PL1
php: PHP Version 5.2.10
СУБД: MySQL(i) 5.0.77
Возможно ли сделать так, чтобы при регистрации (либо входе) пользователей, производилась подмена логина в БД на некий идентификатор, что-то вроде anonim_ID, где ID присваивалось бы либо в хаотичном порядке, либо поочередно в цифрах, типа anonim_001, anonim_002 и т.п.?
или (что было бы удобнее)
пользователь регистрируется с неким логином и выполняет вход на форум тоже с него, а в темах форума и профайле отображается идентификатор, что-то вроде anonim_ID, где ID присваивалось бы либо в хаотичном порядке, либо поочередно в цифрах, типа anonim_001, anonim_002 и т.п.?
Возможно существуют какие-либо модификации? Честно говоря не нашел ничего.
Заранее благодарен за внимание к теме и возможную помощь.
phpBB: 3.0.7-PL1
php: PHP Version 5.2.10
СУБД: MySQL(i) 5.0.77
-
MAzZY
- Бывший член :)
- Сообщения: 2925
- Стаж: 21 год 5 месяцев
- Благодарил (а): 79 раз
- Поблагодарили: 69 раз
- Забанен: Бессрочно
Re: Отображение id пользователя вместо логина
Искать везде в шаблонах вывод вроде {postrow.POST_AUTHOR_FULL} и заменять на то, что нужно.
-
lord_nikon
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 16 лет 9 месяцев
- Откуда: Бишкек, Кыргызстан
Re: Отображение id пользователя вместо логина
допустим, нашел я {postrow.POST_AUTHOR_FULL}, а на что менять та? Всмысле такая же переменная есть, отображающая что-то вроде этого самого ID?
-
MAzZY
- Бывший член :)
- Сообщения: 2925
- Стаж: 21 год 5 месяцев
- Благодарил (а): 79 раз
- Поблагодарили: 69 раз
- Забанен: Бессрочно
Re: Отображение id пользователя вместо логина
Можно отображать ID пользователя. Но нужно найти, где генерируется вывод {postrow.POST_AUTHOR_FULL} и поменять. А я не могу сейчас сказать, где это сделать. Так что либо сами поищите по файлам php, либо ждите пока кто-то подскажет
-
lord_nikon
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 16 лет 9 месяцев
- Откуда: Бишкек, Кыргызстан
-
Nekstati
- Поддержка

- Сообщения: 3365
- Стаж: 17 лет 7 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 1455 раз
Re: Отображение id пользователя вместо логина
Например:
Имена примут вид Anonymous_431. Но это только во вьютопике. А ещё кучу скриптов копать. Можно и в шаблонах, по принципу {postrow.POST_AUTHOR_FULL} → {postrow.POSTER_ID}, но тогда имена перестанут быть ссылками и потеряют цвета групп.
Код: Выделить всё
==== viewtopic.php
'author_full' => get_username_string('full', $poster_id, $row['username'], $row['user_colour']),
==== заменить на
'author_full' => get_username_string('full', $poster_id, 'Anonymous_' . $poster_id, $row['user_colour']),-
lord_nikon
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 16 лет 9 месяцев
- Откуда: Бишкек, Кыргызстан
Re: Отображение id пользователя вместо логина
спасибо. Это сделал, получилось, но как Вы и сказали только в постах, а во всех других местах (на главной форума, статистике etc...) по прежнему выводится имя пользователя. Попробовал тупо заменить по принципу {postrow.POST_AUTHOR_FULL} → {postrow.POSTER_ID}, но переменной {postrow.POST_AUTHOR_FULL} больше нигде нет, кроме как в одном из файлов шаблона.
В других местах встречается {postrow.USERNAME_FULL}, но при попытке заменить на {postrow.USERNAME_ID} или {postrow.POSTER_ID}, ничего в результате не выводится, просто пустое место вместо ника, тоесть он просто исчезает со страниц и не показывается.
Может есть какой-то ман, где есть разъяснения всех значения данных переменных, чтобы я Вас не забибикивал этим долго?
Заранее благодарен
В других местах встречается {postrow.USERNAME_FULL}, но при попытке заменить на {postrow.USERNAME_ID} или {postrow.POSTER_ID}, ничего в результате не выводится, просто пустое место вместо ника, тоесть он просто исчезает со страниц и не показывается.
Может есть какой-то ман, где есть разъяснения всех значения данных переменных, чтобы я Вас не забибикивал этим долго?
Заранее благодарен
-
MAzZY
- Бывший член :)
- Сообщения: 2925
- Стаж: 21 год 5 месяцев
- Благодарил (а): 79 раз
- Поблагодарили: 69 раз
- Забанен: Бессрочно
Re: Отображение id пользователя вместо логина
Нужно делать аналогично: открывать нужный файл шаблона, искать переменную, открывать соответствующий файл php и выполнять замену по принципу, указанному Nekstati. Ну и кое-что можно выкинуть, например, профили пользователей, список пользователей.
-
Nekstati
- Поддержка

- Сообщения: 3365
- Стаж: 17 лет 7 месяцев
- Благодарил (а): 37 раз
- Поблагодарили: 1455 раз
Re: Отображение id пользователя вместо логина
lord_nikon, вот вам пример для viewforum.php. Открываете viewforum_body.html, ищете переменные, содержащие имена. Очевидно, это {topicrow.TOPIC_AUTHOR_FULL} и {topicrow.LAST_POST_AUTHOR_FULL}. Открываете viewforum.php, находите там эти переменные и изменяете примерно так:
Пример посложнее: для списка форумов на главной странице. Открываете index_body.html, смотрите, где в ней список форумов? — ага, тут есть такая строка: <!-- INCLUDE forumlist_body.html -->. Открываете forumlist_body.html, находите переменную {forumrow.LAST_POSTER_FULL}. Ищете её в index.php. Её там нет? Значит, надо поискать в инклюдах: includes/functions.php, includes/functions_display.php.
Ну и так далее…
Код: Выделить всё
==== было
'TOPIC_AUTHOR_FULL' => get_username_string('full', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']),
'LAST_POST_AUTHOR_FULL' => get_username_string('full', $row['topic_last_poster_id'], $row['topic_last_poster_name'], $row['topic_last_poster_colour']),
==== стало
'TOPIC_AUTHOR_FULL' => get_username_string('full', $row['topic_poster'], 'Anonymous_' . $row['topic_poster'], $row['topic_first_poster_colour']),
'LAST_POST_AUTHOR_FULL' => get_username_string('full', $row['topic_last_poster_id'], 'Anonymous_' . $row['topic_last_poster_id'], $row['topic_last_poster_colour']),Код: Выделить всё
==== было
'LAST_POSTER_FULL' => get_username_string('full', $row['forum_last_poster_id'], $row['forum_last_poster_name'], $row['forum_last_poster_colour']),
==== стало
'LAST_POSTER_FULL' => get_username_string('full', $row['forum_last_poster_id'], 'Anonymous_' . $row['forum_last_poster_id'], $row['forum_last_poster_colour']),-
lord_nikon
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 16 лет 9 месяцев
- Откуда: Бишкек, Кыргызстан
-
lord_nikon
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 16 лет 9 месяцев
- Откуда: Бишкек, Кыргызстан
Re: Отображение id пользователя вместо логина
все вроде бы сделал, но при цитировании все равно оастается ник, а не анонимный идентификатор.
То есть вместо Anonimous_56 писал(а), отображается Admin писал(а) или lord_nikon писал(а)/
Перерыл все кажется, но не могу найти где это можно сменить.
То есть вместо Anonimous_56 писал(а), отображается Admin писал(а) или lord_nikon писал(а)/
Перерыл все кажется, но не могу найти где это можно сменить.
-
FladeX
- Former team member
- Сообщения: 1935
- Стаж: 19 лет 4 месяца
- Откуда: Саранск
- Благодарил (а): 7 раз
- Поблагодарили: 59 раз
Re: Отображение id пользователя вместо логина
А не проще ли один раз переделать функцию get_username_string(), чем переделывать каждый ее вызов?
Измените функцию, чтобы на выходе был айди-юзера, а не его ник. Функция задаётся в includes/functions_content.php
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
-
lord_nikon
- phpBB 1.2.0
- Сообщения: 18
- Стаж: 16 лет 9 месяцев
- Откуда: Бишкек, Кыргызстан
Re: Отображение id пользователя вместо логина
FladeX
хы, там мне привели пример, поэтому я быстро соориентировался что куда. а тут в куске кода я хоть и вижу знакомые значения, но не могу сообразить на что поменять, ибо я не знаю откровенно говоря рнр
хы, там мне привели пример, поэтому я быстро соориентировался что куда. а тут в куске кода я хоть и вижу знакомые значения, но не могу сообразить на что поменять, ибо я не знаю откровенно говоря рнр
Код: Выделить всё
function get_username_string($mode, $user_id, $username, $username_colour = '', $guest_username = false, $custom_profile_url = false)
{
static $_profile_cache;
// We cache some common variables we need within this function
if (empty($_profile_cache))
{
global $phpbb_root_path, $phpEx;
$_profile_cache['base_url'] = append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u={USER_ID}');
$_profile_cache['tpl_noprofile'] = '{USERNAME}';
$_profile_cache['tpl_noprofile_colour'] = '<span style="color: {USERNAME_COLOUR};" class="username-coloured">{USERNAME}</span>';
$_profile_cache['tpl_profile'] = '<a href="{PROFILE_URL}">{USERNAME}</a>';
$_profile_cache['tpl_profile_colour'] = '<a href="{PROFILE_URL}" style="color: {USERNAME_COLOUR};" class="username-coloured">{USERNAME}</a>';
}
global $user, $auth;
// This switch makes sure we only run code required for the mode
switch ($mode)
{
case 'full':
case 'no_profile':
case 'colour':
// Build correct username colour
$username_colour = ($username_colour) ? '#' . $username_colour : '';
// Return colour
if ($mode == 'colour')
{
return $username_colour;
}
// no break;
case 'username':
// Build correct username
if ($guest_username === false)
{
$username = ($username) ? $username : $user->lang['GUEST'];
}
else
{
$username = ($user_id && $user_id != ANONYMOUS) ? $username : ((!empty($guest_username)) ? $guest_username : $user->lang['GUEST']);
}
// Return username
if ($mode == 'username')
{
return $username;
}
// no break;
case 'profile':
// Build correct profile url - only show if not anonymous and permission to view profile if registered user
// For anonymous the link leads to a login page.
if ($user_id && $user_id != ANONYMOUS && ($user->data['user_id'] == ANONYMOUS || $auth->acl_get('u_viewprofile')))
{
$profile_url = ($custom_profile_url !== false) ? $custom_profile_url . '&u=' . (int) $user_id : str_replace(array('={USER_ID}', '=%7BUSER_ID%7D'), '=' . (int) $user_id, $_profile_cache['base_url']);
}
else
{
$profile_url = '';
}
// Return profile
if ($mode == 'profile')
{
return $profile_url;
}
// no break;
}
if (($mode == 'full' && !$profile_url) || $mode == 'no_profile')
{
return str_replace(array('{USERNAME_COLOUR}', '{USERNAME}'), array($username_colour, $username), (!$username_colour) ? $_profile_cache['tpl_noprofile'] : $_profile_cache['tpl_noprofile_colour']);
}
return str_replace(array('{PROFILE_URL}', '{USERNAME_COLOUR}', '{USERNAME}'), array($profile_url, $username_colour, $username), (!$username_colour) ? $_profile_cache['tpl_profile'] : $_profile_cache['tpl_profile_colour']);
}-
FladeX
- Former team member
- Сообщения: 1935
- Стаж: 19 лет 4 месяца
- Откуда: Саранск
- Благодарил (а): 7 раз
- Поблагодарили: 59 раз
Re: Отображение id пользователя вместо логина
Ну попробуйте например сразу изменить значение $username:
это после объявления глобальных переменных вставьте.
Код: Выделить всё
$username = 'user_' . $user_id; //
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
| phpBB Adept ] | Каталог форумов | генератор sitemap для форумов | форум про форумы

