This is an old revision of the document!
This is a work-in-progress page for NancyDru and fgm to update http://drupal.org/node/266511 and will be updated there once finished. In the meantime, please refere to http://drupal.org/node/266511 instead.
Glossary and G2 Glossary are both targeted to sites needing a glossary section. However, the modules are quite different, targeted to different types of glossary needs, and once you choose one, it will take a significant amount of work to switch to the other one after the fact, so the current maintainers of the two modules have set up this page to help you choose which module you should probably be using, or if you should really write your own.
|Revision support||Drupal core|
|Drupal 7.x||Dev branch||port announced|
|AJAX UI||Entry selectors|
|Glossaries per site||Multiple||Single|
|RSS feeds||On entries||Drupal core|
|On content tags||Drupal core|
|Classify entries using taxonomy||Entries are terms already||Drupal core|
|Commenting on entries||Drupal core|
|XML-RPC services provided||Alphabar|
|XML-RPC||IP-based access control|
|Input filtering||Automatic||<dfn> elements|
|Memory needs vs number of entries||O(n)||O(1)|
|Speed on small glossaries||Faster||Slower|
|Speed on larger glossaries||Slower with size||Remains constant|
|Themeability||Search form||Drupal core|
|Each feature block|
|Each part of an entry|
|Translation template supplied||Except D5 branch|
Obviously, in all cases, a "No" actually means: "roll your own", as in all Open Source software.
|Terms and nodes||
Glossary uses Taxonomy to define its terms, allowing definitions to be used as tags for existing nodes.
Since Glossary is taxonomy-based, that opens the range of taxonomy-based modules to work together.
G2 uses Node to store its terms.
This allows access control, attachment uploads, commenting, content tagging, revision control, and integration will the vast number of node-related modules.
Extensibility is directly available from core for G2 content through the extensive core hook system for nodes. Control is available at the individual field level, and includes editor-only information, which is required in publishing situations.
Glossary is faster than G2 for small glossaries.
While most sites have a smaller glossary than the one G2 was designed for, there are also sites with larger glossaries.
G2 is optimized for large glossaries, not small ones. As such, its requirements do not increase with the number of entries.
At the time of its creation (4.7), supporting a 5000 terms dictionary with glossary.module on a shared hosting plan, was causing severe load issues.
|Single vs multiple||The ability to handle multiple vocabularies as glossaries gives Glossary additional flexibility||G2 is designed around a single glossary by site: multiple glossaries were not necessary to the initial sponsor. More generally, sites maintaining a large glossary are typically centered around it, and won't maintain more than one per site.|
|Community||Glossary has largely been designed by its users. Many, if not most, of its features have been added and refined by the input of the community.||G2 has been developed for the specific need of one user and shared afterwards. Its original feature set was designed around that need, and has only been expanded and modified by community input afterwards.|
|Maintenance and support||Glossary is actively maintained. There have been performance efforts to make sure it runs as fast as possible. Community support is available, and several Drupal professionals, include some core developers, can support it.||G2 is actively maintained. There have been performance efforts to make sure it runs fast even with large glossaries. Community support is available, and commercial-level support is available from its maintainer.|
|Alphabar maintenance||Automatic maintenance reduces the need for administrator intervention.||Any large glossary will use all available initials from the onset, so administrator intervention is not needed past the initial module configuration, and the processing cost of maintaining it afterwards is useless system load.|
|Internationalization and localization||
Considerable work has been done to make sure that i18n (internationalization) can be effectively used with Glossary.
A translation template is provided.
G2 relies on core for i18n and is expected to work normally on sites with i18n ; its demo site is actually not english. Specific mechanisms have been applied to support non-occidental scripts.
A translation template is provided except for Drupal 5.
The base URL for the glossary pages is admin-defined, thus allowing for translation and module masking.
|Term presentation and links||The Glossary filter locates terms within administrator-selectable content and adds additional HTML to them to show or (optionally) link the term's definition to the end-user as they view the content. The terms may be marked with a superscript or icon that links to the term or the term may be converted to an "acronym," "abbr," "cite," or "dfn" element with browser help tips. If the Hovertips and Clicktips module is installed, it may be used to provide hovertips. There are also three mechanisms for marking a section of the content to not be filtered. Matching of terms may be selected as whole words or substrings, and may be either case-sensitive or not.||The G2 filter only applies its matching patterns to <dfn> elements in the input.|
|Links||When a user clicks on a linked term, they will go to the entire glossary or the individual term, depending on which option the administrator chose.||G2 links terms wrapped in a DFN to valid XHTML <a class="g2-dfn-link" href=...> links including a title attribute, pointing to the G2 page for the term, which may be either a disambiguation page or the single destination page, depending on whether homonyms exist or not and whether administrators enable the direct link on single matches.|
Both modules work as a Drupal input filter applying to content depending on its input format. These filters are cacheable for performance reasons.
Since the modules filter content, the first time a piece of content is shown, there will be a small delay while the filtering is done. The filtered content is then cached, so the next time, the filtering is unnecessary and the delay does not occur.
When a user clicks on a linked term, they will go to the entire glossary or the individual term, depending on which option the administrator chose. When displaying the entire glossary, there is an alphabar on top, which fills in automatically. The administrator may define his/her own alphabet for those who use some language other than English. The terms are then organized by the first letter of the term's name. Each section may be separated by a CSS-themable separator. At the bottom of the display, if the user has the appropriate permissions, are shortcut links to the vocabulary and module settings pages.
Within the glossary display, each term may be followed by a link that will initiate a search for the term, if the search module is enabled. For those who have the proper permission, there will also be a link to edit the term itself.
The type of glossary indicator that is used is specified for each input format, so, for example, "Filtered HTML" may use a superscript type of indicator, while "Full HTML" may use a hovertip. Additionally, each input format also selects which vocabularies are to be used. So one may, again for example, specify that "Filtered HTML" filter for Bible verses, while "Full HTML" filters for technical terms.