Problem/Motivation
The help system needs search capability.
Proposed resolution
Probably, using the existing Drupal core Search module to build the search functionality would make the most sense.
Remaining tasks
a) Implement search indexing and searching, using the core Search module. The latest patch (#29) has this working, with some @todo items in the patch. Also, once it's finalized, we'll need to update its hook_help, and also add a Help Topic for it.
b) Add a search box to the main Help page, and possibly to each individual help topic page. Problem: This uses core Search and SearchPage config entities, meaning that the URL for searching is configurable, besides which a site builder can delete the help search page that this module provides. So... how to provide a search form, if we don't know whether a search page even exists? The core Search module only provides a block that searches the default search page... Probably the solution is to add a feature to core Search that would provide blocks attached to each search page (kind of like Menu does with blocks associated with each Menu). Then a site builder could add that block to any page. Probably need to spin this off to a separate issue. Then come back and provide default config that gives you this block on the admin/help page.
c) We discussed having a keyword functionality -- a field added to the HelpTopic plugin that would define keywords that could be emphasized in the search, but decided that would not be part of this patch.
d) Write a test. Things to test:
- If you install with Standard profile, you get the search block present on the help page.
- Search works for some keywords. Probably best to use the test module HelpSection plugin for that.
- Search permissions -- both the overall permission and the one that is used for a given help section. The existing help tests verify this with a section that has permissions, so we could make that HelpSection plugin searchable for further testing.
- Internationalization of search -- again with that test plugin... the HelpSection plugins have control over how to render items for indexing/results in a given language, so it would not be too hard to fake the internationalization bit in the test.
- Also add tests in the Help Topics module that verify that searching works with Help Topics in particular, and the internationalization of search works for Help Topics. But best to have the main tests independent of Help Topics I think?
User interface changes
Help topics provided by the Help Topics module will be searchable.
API changes
No.
Data model changes
None.
Original summary
It seems like a search feature or an index would be useful for the help topics system.
Search: could use core Search and index each topic's full text. It could also include hook_help() topics. The search could appear on the admin/help page as a "section".
Index: Could have a way to add index entries to each topic, and there could be an automatically-generated index that would be built during a cron job, which would list the index entries with links to the topics.
So this issue:
a) Decide on what feature(s) to add.
b) Build them.
Release notes snippet
To be determined, once we get the blocks sorted out.