Код: Выделить всё
<dl>
<dt><label for="location">{L_LOCATION}:</label></dt>
<dd><input type="text" name="location" id="location" value="{LOCATION}" class="inputbox" /></dd>
</dl>
Добавлено спустя 1 час 27 минут 56 секунд:
сейчас ковыряю memberlist.php, я так понял это там...
Добавлено спустя 45 минут 21 секунду:
заработало, чуть позже напишу что сделал...
Добавлено спустя 2 часа 32 минуты 12 секунд:
Итак, вот что получилсоь, работает конечно, но как-то не до конца. В общем вот что сделал:
файл memberlist.php:
добавляем 'location' в
Код: Выделить всё
// Search URL parameters, if any of these are in the URL we do a search
$search_params = array('username', 'email', 'location', 'icq', 'aim',....
Код: Выделить всё
// We validate form and field here, only id/class allowed
$form = (!preg_match('/^[a-z0-9_-]+$/i', $form)) ? '' : $form;
$field = (!preg_match('/^[a-z0-9_-]+$/i', $field)) ? '' : $field;
if (($mode == 'searchuser' || sizeof(array_intersect(array_keys($_GET), $search_params)) > 0) && ($config['load_search'] || $auth->acl_get('a_')))
{
$username = request_var('username', '', true);
$email = strtolower(request_var('email', ''));
//add
$location = request_var('location', '', true);
//add
$icq = request_var('icq', '');
...........................................................
Код: Выделить всё
$sql_where .= ($username) ? ' AND u.username_clean ' . $db->sql_like_expression(str_replace('*', $db->any_char, utf8_clean_string($username))) : '';
$sql_where .= ($auth->acl_get('a_user') && $email) ? ' AND u.user_email ' . $db->sql_like_expression(str_replace('*', $db->any_char, $email)) . ' ' : '';
//add
$sql_where .= ($location) ? ' AND u.user_from ' . $db->sql_like_expression(str_replace('*', $db->any_char, utf8_clean_string($location))) . ' ' : '';
//add
$sql_where .= ($icq) ? ' AND u.user..............................
....................................................................
Код: Выделить всё
// We do not use request_var() here directly to save some calls (not all variables are set)
$check_params = array(
'g' => array('g', 0),
'sk' => array('sk', $default_key),
'sd' => array('sd', 'a'),
'form' => array('form', ''),
'field' => array('field', ''),
'select_single' => array('select_single', $select_single),
'username' => array('username', '', true),
'email' => array('email', ''),
//add
'location' => array('location', '', true),
//add
'icq' => array('icq', ''),..........
.........................................................
Код: Выделить всё
if ($group_selected !== 0 && !in_array($group_selected, $group_ids))
{
trigger_error('NO_GROUP');
}
$template->assign_vars(array(
'USERNAME' => $username,
'EMAIL' => $email,
//add
'LOCATION' => $location,
//add
'ICQ' => $icq,
с этими изменениями поиск работает, но такое ощущени, что какой-то обработки поля не хватает... например:
- Работаем с критерием "Имя пользователя":
- вводим поисковый параметр "о*" (о - буква [о] русская)
- нажимаем поиск и видим пользователей: "orehov", "Orehov", "орехов"
все вроде бы устраивает.... - Работаем с критерием "Откуда":
вводим поисковый параметр "о*" (о - буква [о] русская)
- ничего не выводится
вводим поисковый параметр "*о*" (о - буква [о] русская)
- выводится пользователь, у которого "Откуда" - "Ozersk"
вводим поисковый параметр "*O*" (о - буква [о] русская)
- ничего не выводится
вводим поисковый параметр "*з*" (з - буква [зэ] русская)
- выводится пользователь, у которого "Откуда" - "Озерск"
Добавлено спустя 25 минут 11 секунд:
в таблице phpbb_users хранятся данные в поле username:
"orehov", "орехов"
а в поле usre_from:
"Ozersk" и вместо нормального "Озерск" хранится "d09ed0b7d0b5d180d0bed0b220d090d0bbd0b5d0bad181d0b5d0b9"
Т.е. при регистрации если пользователь ввел русское username оно как-то правильно в базу сохраняется...
....вот такая фигнотень
Добавлено спустя 12 минут 56 секунд:
разговор с самим собой
подскажите пожалуйста где происходит обработка нажатия кнопки "Submit" при регистрации нового пользователя? Мне кажется там проичходит обработка имени пользователя и оно нормально в БД сохраняется если русскими буквами названо...
Добавлено спустя 1 час 38 минут 30 секунд:
монолог продолжается...
вот что удалось выяснить utf_normalizer начинает что-то мудрить при вводе буквы "й" при вводе этой буквы все слово сохраняется в виде:
"d09ed0b7d0b5d180d0bed0b220d090d0bbd0b5d0bad"
без этой буквы сохраняется в нормальном виде..
я так понимаю нет смысла спрашивать: "как победить?"
Добавлено спустя 10 минут 48 секунд:
проверил все русские буквы, метамарфозы начинают при: "й" - d0b9, "ш" - d188, "Й" - d099

