[3.2][3.3] Simple mentions

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

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

Re: [3.2][3.3] Simple mentions

Сообщение rxu »

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

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

usort($return, 'cmp');

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

Re: [3.2][3.3] Simple mentions

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

rxu, можно без доп. функций там
Но: я про то, что в выборке уже не будет нужных первых результатов, и, как ни сортируй, они не появятся. Даже в итоговый вариант точное совпадение короткого ника может не попасть
romeo_piter
phpBB 2.0.22
Сообщения: 1375
Стаж: 17 лет 6 месяцев
Благодарил (а): 260 раз
Поблагодарили: 32 раза

Re: [3.2][3.3] Simple mentions

Сообщение romeo_piter »

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

Re: [3.2][3.3] Simple mentions

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

romeo_piter писал(а): 19.01.2024 6:26 Это реально?
Реально, только снова утяжелит запрос (ещё одно условие)
Аватара пользователя
KEMnEP
phpBB 2.0.18
Сообщения: 1176
Стаж: 11 лет 7 месяцев
Благодарил (а): 47 раз
Поблагодарили: 314 раз

Re: [3.2][3.3] Simple mentions

Сообщение KEMnEP »

Можно запросы на стороне клиента делать по таймауту последнего нажатия клавиши. если после последнего нажатия прошла секунда (либо свой интервал) - обрабатываем. мелочь, но снизит нагрузку.
er107
phpBB 2.0.19
Сообщения: 1204
Стаж: 15 лет 7 месяцев
Благодарил (а): 331 раз
Поблагодарили: 93 раза

Re: [3.2][3.3] Simple mentions

Сообщение er107 »

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

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

Re: [3.2][3.3] Simple mentions

Сообщение rxu »

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

Re: [3.2][3.3] Simple mentions

Сообщение ReXtor »

er107 писал(а): 19.01.2024 10: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.19
Сообщения: 1204
Стаж: 15 лет 7 месяцев
Благодарил (а): 331 раз
Поблагодарили: 93 раза

Re: [3.2][3.3] Simple mentions

Сообщение er107 »

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

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.19
Сообщения: 1204
Стаж: 15 лет 7 месяцев
Благодарил (а): 331 раз
Поблагодарили: 93 раза

Re: [3.2][3.3] Simple mentions

Сообщение er107 »

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

Re: [3.2][3.3] Simple mentions

Сообщение ReXtor »

er107 писал(а): 19.01.2024 16: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.22
Сообщения: 1375
Стаж: 17 лет 6 месяцев
Благодарил (а): 260 раз
Поблагодарили: 32 раза

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 17:10, всего редактировалось 1 раз.
er107
phpBB 2.0.19
Сообщения: 1204
Стаж: 15 лет 7 месяцев
Благодарил (а): 331 раз
Поблагодарили: 93 раза

Re: [3.2][3.3] Simple mentions

Сообщение er107 »

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

Отправлено спустя 1 минуту 5 секунд:
romeo_piter писал(а): 19.01.2024 17:01 Как отсечь давно не заходивших.
Похоже, что в другую сторону уже уклоняемся...
romeo_piter
phpBB 2.0.22
Сообщения: 1375
Стаж: 17 лет 6 месяцев
Благодарил (а): 260 раз
Поблагодарили: 32 раза

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 17:10 Похоже, что в другую сторону уже уклоняемся...
Штатная работа расширения, т.е. то, как ее задумал автор, на мой взгляд не логична (его, кстати, не раз просили на англ. офе пояснить за сортировку). Вот этот вариант уже делает работу приемлемой: Re: [3.2][3.3] Simple mentions
Если к нему ещё добавить отсечение мертвых, то будет практически хорошо.

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

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