Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[3.2][3.3] Simple mentions

Поддержка расширений, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с расширениями для phpBB, кроме относящихся к форуму Для авторов.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Re: [3.2][3.3] Simple mentions

Сообщение rxu »

Примерно так:

Код: Выделить всё

usort($return, 'cmp');

function cmp($a, $b)
{
	return strtolower($a['key']) <=> strtolower($b['key']);
}
Изображение
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12430
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2478 раз

Re: [3.2][3.3] Simple mentions

Сообщение Татьяна5 »

rxu, можно без доп. функций там
Но: я про то, что в выборке уже не будет нужных первых результатов, и, как ни сортируй, они не появятся. Даже в итоговый вариант точное совпадение короткого ника может не попасть
romeo_piter
phpBB 2.0.21
Сообщения: 1317
Стаж: 15 лет
Благодарил (а): 159 раз
Поблагодарили: 21 раз

Re: [3.2][3.3] Simple mentions

Сообщение romeo_piter »

Сегодня мне на форуме предложили, как мне кажется, ну очень хорошую мысль. Зачем искать мертвые души. Они никому не нужны. Функционал актуален для тех кто хоть иногда бывает на форуме. Если в начальной выборке отсечь тех, кто был на форуме последний раз, например, более полугода назад, то список оооооооооочень сократится. Это реально?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12430
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2478 раз

Re: [3.2][3.3] Simple mentions

Сообщение Татьяна5 »

romeo_piter писал(а): 19.01.2024 9:26 Это реально?
Реально, только снова утяжелит запрос (ещё одно условие)
Аватара пользователя
KEMnEP
phpBB 2.0.17
Сообщения: 1118
Стаж: 9 лет 1 месяц
Благодарил (а): 42 раза
Поблагодарили: 279 раз

Re: [3.2][3.3] Simple mentions

Сообщение KEMnEP »

Можно запросы на стороне клиента делать по таймауту последнего нажатия клавиши. если после последнего нажатия прошла секунда (либо свой интервал) - обрабатываем. мелочь, но снизит нагрузку.
er107
phpBB 2.0.14
Сообщения: 973
Стаж: 13 лет 1 месяц
Благодарил (а): 166 раз
Поблагодарили: 44 раза

Re: [3.2][3.3] Simple mentions

Сообщение er107 »

А в телеграме оказывается тоже есть такая всплывашка при наборе @.
Проверил как сортирует, так тоже неправильно, например, ввожу @te
Всплывает окно всех ников в моей группе, и сортировка выглядит вот так:
@Aleks_tech
@test
@tech

То есть вообще непонятно как. Похоже так же же ищет, как и в этом расширении - совпадения ищет не с начала ника, а везде, где оно в нике встречается
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16367
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1744 раза

Re: [3.2][3.3] Simple mentions

Сообщение rxu »

KEMnEP писал(а): 19.01.2024 9:58 Можно запросы на стороне клиента делать по таймауту последнего нажатия клавиши
Можно в настройках задать минимальное число набранных символов, с которых начинает искать.
er107 писал(а): 19.01.2024 13:09 А в телеграме оказывается тоже
Если исходить из кода этого расширения, должно искать ники, начинающиеся с вводимых символов, а не вводимые символы в любом месте ника.
Изображение
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 7 месяцев
Откуда: Сибирь
Благодарил (а): 66 раз
Поблагодарили: 75 раз

Re: [3.2][3.3] Simple mentions

Сообщение ReXtor »

er107 писал(а): 19.01.2024 13:09 Похоже так же же ищет, как и в этом расширении - совпадения ищет не с начала ника, а везде, где оно в нике встречается
Так сделано для того, чтобы иметь возможность вводить только некоторую часть ника если пользователь не помнит весь ник целиком.
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
er107
phpBB 2.0.14
Сообщения: 973
Стаж: 13 лет 1 месяц
Благодарил (а): 166 раз
Поблагодарили: 44 раза

Re: [3.2][3.3] Simple mentions

Сообщение er107 »

ReXtor,
И почему тогда при вводе @te на первом месте какой то Akeks_tech, а не test?
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 7 месяцев
Откуда: Сибирь
Благодарил (а): 66 раз
Поблагодарили: 75 раз

Re: [3.2][3.3] Simple mentions

Сообщение ReXtor »

er107, ну потому что сортировка сделана таким образом, а не другим. Но я говорил именно про поиск совпадений, а не про сортировку найденного.
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
er107
phpBB 2.0.14
Сообщения: 973
Стаж: 13 лет 1 месяц
Благодарил (а): 166 раз
Поблагодарили: 44 раза

Re: [3.2][3.3] Simple mentions

Сообщение er107 »

ReXtor, А сейчас то как? (с доработкой, которую сделала Татьяна5)
Аватара пользователя
ReXtor
phpBB 2.0.0
Сообщения: 232
Стаж: 1 год 7 месяцев
Откуда: Сибирь
Благодарил (а): 66 раз
Поблагодарили: 75 раз

Re: [3.2][3.3] Simple mentions

Сообщение ReXtor »

er107 писал(а): 19.01.2024 19:26 А сейчас то как?
Понятия не имею. Я про подобное в телеграм (и других) говорил же.
[phpBB 3.3.8 | Prolight | STK 1.0.19-dev] _ [PHP 7.4.28 | MySQL(i) 5.7.27-30]
romeo_piter
phpBB 2.0.21
Сообщения: 1317
Стаж: 15 лет
Благодарил (а): 159 раз
Поблагодарили: 21 раз

Re: [3.2][3.3] Simple mentions

Сообщение romeo_piter »

Как отсечь давно не заходивших. Пробовал вот такую конструкцию - не работает:

Код: Выделить всё

$six_months_ago = time() - (180 * 24 * 60 * 60); //180 days; 24 hours; 60 mins; 60 Secs
    		$sql = 'SELECT user_id, username 
    					FROM ' . USERS_TABLE . ' 
    					WHERE user_id <> ' . ANONYMOUS . ' 
					AND user_lastpost < ' . $six_months_ago . '
    					AND ' . $this->db->sql_in_set('user_type', [USER_NORMAL, USER_FOUNDER]) .  '
    					AND username_clean ' . $this->db->sql_like_expression($name . $this->db->get_any_char()) . ' 
    					ORDER BY username ASC';
Последний раз редактировалось romeo_piter 19.01.2024 20:10, всего редактировалось 1 раз.
er107
phpBB 2.0.14
Сообщения: 973
Стаж: 13 лет 1 месяц
Благодарил (а): 166 раз
Поблагодарили: 44 раза

Re: [3.2][3.3] Simple mentions

Сообщение er107 »

ReXtor писал(а): 19.01.2024 18:00 Но я говорил именно про поиск совпадений, а не про сортировку найденного.
Просто я не понял, это про телеграм или расширение?

Отправлено спустя 1 минуту 5 секунд:
romeo_piter писал(а): 19.01.2024 20:01 Как отсечь давно не заходивших.
Похоже, что в другую сторону уже уклоняемся...
romeo_piter
phpBB 2.0.21
Сообщения: 1317
Стаж: 15 лет
Благодарил (а): 159 раз
Поблагодарили: 21 раз

Re: [3.2][3.3] Simple mentions

Сообщение romeo_piter »

И так тоже не работает:

Код: Выделить всё

$sql = 'SELECT user_id, username 
    					FROM ' . USERS_TABLE . ' 
    					WHERE user_id <> ' . ANONYMOUS . ' 
						AND user_lastpost < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 day))
    					AND ' . $this->db->sql_in_set('user_type', [USER_NORMAL, USER_FOUNDER]) .  '
    					AND username_clean ' . $this->db->sql_like_expression($name . $this->db->get_any_char()) . ' 
    					ORDER BY username ASC';
Отправлено спустя 3 минуты 50 секунд:
er107 писал(а): 19.01.2024 20:10 Похоже, что в другую сторону уже уклоняемся...
Штатная работа расширения, т.е. то, как ее задумал автор, на мой взгляд не логична (его, кстати, не раз просили на англ. офе пояснить за сортировку). Вот этот вариант уже делает работу приемлемой: Re: [3.2][3.3] Simple mentions
Если к нему ещё добавить отсечение мертвых, то будет практически хорошо.

В идеале, имхо конечно, он просто должен искать не вхождение строки в строку, а с первого символа смотреть. Но с другой стороны, возможно, действительно, кто-то будет искать по куску, хотя кмк это маловероятно.

Вернуться в «Поддержка расширений для phpBB»