Здравствуйте!
Можно ли сделать как-то, чтобы поиск по сайту искал текст во всех записях профиля пользователя?
И вообще возможно ли это?
Здравствуйте!
Можно ли сделать как-то, чтобы поиск по сайту искал текст во всех записях профиля пользователя?
И вообще возможно ли это?
Здравствуйте!
Можно ли сделать как-то, чтобы поиск по сайту искал текст во всех записях профиля пользователя?
И вообще возможно ли это?
добавить индекс в таблицу базы, используя допустим phpmyadmin sql запросом:
ALTER TABLE `cms_wall_entries` ADD FULLTEXT( `content`);
в /system/controllers/wall/hooks/fulltext_search.php создать файл fulltext_search.php с содержимым:
<?php class onWallFulltextSearch extends cmsAction { public function run($search_controller) { $name = 'wall'; $sources[$name] = 'Запись на стене'; $table_names[$name] = 'wall_entries'; return [ 'name' => $name, 'sources' => $sources, 'table_names' => $table_names, 'match_fields' => $match_fields, 'select_fields' => $select_fields, 'filters' => $filters, 'item_callback' => function ($item, $model, $sources_name, $match_fields, $select_fields) { $fields = []; foreach ($match_fields as $match_field) { if ($match_field === 'title') { continue; } $fields[$match_field] = $item[$match_field]; } 'url' => href_to('users', $item['user_id']).'?wid='.$item['id'], 'title' => 'Запись со стены', 'fields' => $fields, 'date_pub' => $item['date_pub'], 'image' => '' ]); } ]; } }
в панели обновить список событий компонентов:
админка > компоненты > события ( /admin/controllers/events)