Перейти к содержимому
Русский язык для Invision Community 5

Поиск по допполнительному полю

Подскажите, что и где нужно отредактировать, что бы при создании личного сообщения (а также просто в редакторе сообщений после символа @), при вводе текста в графу "Получатель" он предлагал пользователей не только по логину, но и по определенному дополнительному полю, которое я создал?

 

Подробнее.. Создаю личное сообщение и ввожу ник пользователя, мне форум предлагает выбор: http://i.imgur.com/b58QjSd.png

Как сделать, чтобы он мне предлагал выбор пользователей, у которых в доп. поле, к примеру, "Ваша Фамилия" есть сочетание Test?

Рекомендованные сообщения

\applications\core\modules\front\system\ajax.php

 

Найти

 

	$where = array( "name LIKE CONCAT('%', ?, '%')" );
	$binds = array( $input );

Ниже добавить

 

	$where[] = "pf.field_ид дополнительного поле LIKE CONCAT('%', ?, '%')";
	$binds[] = \IPS\Request::i()->input;

 

Найти

 

\IPS\Db::i()->select( '*', 'core_members', array_merge( array( implode( ' OR ', $where ) ), $binds ), 'LENGTH(name) ASC', array( 0, 20 ) )

Заменить на

 

\IPS\Db::i()->select( 'm.*', array( 'core_members', 'm' ), array_merge( array( implode( ' OR ', $where ) ), $binds ), 'LENGTH(name) ASC', array( 0, 20 ) )->join( array( 'core_pfields_content', 'pf'), array( 'm.member_id=pf.member_id' ), 'LEFT' )

  • Автор

Почему-то не работает. Вообще никого не находит даже просто по нику. Кеш чистил, может что-то еще надо? У меня получилось вот так:

 

fields_10 - это правильно? В базе глянул, этот столбец называется field_10. Хотя пробовал и так.

fields_10 - это правильно?

field_ид

 

Вообще никого не находит даже просто по нику.

Поправил.

  • Автор

Также ничего не предлагает (даже по имени пользователя перестал искать)

На самом форуме, когда пишешь имя пользователя после @ всё нормально, но по доп. полю так же не ищет.

  • Автор

Заработало при выборе получателя ЛС! Спасибо Вам огромное!

 

А тоже самое для обычных постов в темках при выборе пользователя через @ надо другой файл править? Если да, то на этом всё! Спасибо еще раз!

А тоже самое для обычных постов в темках при выборе пользователя через @ надо другой файл править?

\applications\core\modules\front\system\editor.php

 

Найти

 

\IPS\Db::i()->select( '*', 'core_members', array( "name LIKE CONCAT( ?, '%' )", mb_strtolower( \IPS\Request::i()->input ) ), 'name', 10 )

Заменить на

 

\IPS\Db::i()->select( 'm.*', array( 'core_members', 'm' ), array( "name LIKE CONCAT( ?, '%' ) OR field_ид LIKE CONCAT( '%', ?, '%' )", mb_strtolower( \IPS\Request::i()->input ), \IPS\Request::i()->input ), 'name', 10 )->join( array( 'core_pfields_content', 'pf' ), 'm.member_id=pf.member_id', 'LEFT' )

  • Автор

Все отлично работает. Большое спасибо за помощь!

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.