User Tools

Site Tools


g2:choosing

This is an old revision of the document!


Back to G2 main

Choosing between glossary.module and g2.module

G2 is not intended as a direct replacement for the glossary module already available with drupal for quite some time now. It is designed for slightly different needs, and this page is here to help you choose which module you should probably be using, or if you should really write your own.

Feature Glossary G2
Drupal-related
Drupal 4.7.x Yes Yes
Drupal 4.6.x Yes No
AJAX No Entry selector
architecture term-based node-based
Services provided
multiple glossaries on one site Yes No
RSS feeds on entries Yes, Drupal core No
RSS feeds on additional vocabularies No Yes, Drupal core
classify entries using taxonomy No Yes, Drupal core
commenting on entries No Yes, Drupal core
private editorial information No Yes
feature blocks No alphabar
latest
top
random
word of the day
XML-RPC services provided No alphabar
latest
top
random
word of the day
Security Drupal core Drupal core
XML-RPC access control
XML-RPC throttling
alphabar maintenance automatic manual
content filtering automatic dfn elements
Performance
memory needs/number of entries proportional constant
speed on small glossaries faster slower
speed on large glossaries slower with size remains constant
Themeability search form
node overview
Drupal core node themeing
Independent themeing for all 5 feature blocks
Independent themeing for all parts of a term definition

Obviously, in all cases, a “No” actually means: “roll your own”, as in all Open Source software.

Rationale for G2 specificities

  • Optimization for large glossaries: this is the need expressed by OSInet, which funded development, to support its 5000+ term glossary of computing, for which glossary.module, even when coupled with flexinode to bind blob content to terms, is not really efficient enough.
  • Single glossary: multiple glossaries were not necessary to OSInet, which funded development
  • Explicit linking to terms with dfn elements:
    • limits system workload
    • allows invisible marking of entries made of other entries. Think: XML-RPC, points to XML and to RPC with glossary.module and various wiki filters, but can point to 'XML-RPC' with G2. Wrapping XML-RPC in quotes is necessary to allow linking to this entry in glossary, but the quotes remain visible, degrading the UI.
    • allows redactor-level choice of
      • whether to link to an entry: glossary always links if the term matches, which is not always meaningful (“and” can be present in a glossary and you don't want “and” to be linked from in all nodes on the site).
      • where to link to an entry: glossary allows only a predefined set of positions (first, last or all matches)
  • nodes vs terms: this is the most salient difference.
    • Using custom nodes (g2_entry in g2.module) allows large definitions, with the complete drupal feature set for nodes,
    • Using terms (glossary.module) allows definitions to be bound to custom nodes instead of being nodes on their own
  • Alphabar maintenance: large glossaries will most of the time use all available initials, so the processing cost of maintaining it is not justifiable
g2/choosing.1198334713.txt.gz · Last modified: 2020/11/23 17:23 (external edit)