Skip to content

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

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

 

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

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

Featured Replies

\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' )

  • Author

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

 

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

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

field_ид

 

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

Поправил.

  • Author

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

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

  • Author

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

 

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

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

\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' )

  • Author

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

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.