Nodereference Explorer
The overall purpose of the Nodereference Explorer module is to provide a comfortable and user-friendly way of referencing content. Content authors should be able to link internal arbitrary nodes, e. g. content types such as pages, stories, news, images etc., to each other. Typical use-cases are for instance:
- Reuse of assets, such as images, audio and video clips for display on other pages
- Providing a list of links to internal pages
This module is developed in scope of the OSCE 3.0 website and CMS relaunch (http://www.osce.org)
Features
This widget is highly configurable and it focusses stronlgy on usability. The most important features are:
- Selectable view items for all view display plugins, like grid, table, list and unformatted
- Exposed view filter forms for content search/exploration
- Plugin architecture for integration of third party CCK fields, e. g. Link is already built-in and fully supported
- Highly configurable jQuery dialog including custom theming
- Module theme
- Global theme
- jQuery UI themes
- Supported Dialog APIs
- Built-in
- Modal Frame
- Field preview (also for common autocomplete widget)
- Supported third party modules
- Leveraging indirectly the power of views:
- Multilinguality
- Image, Imagefield, Imagecache compatiblity
- Lightbox or thickbox support
- ... and much more
Quick start guide
- Enable the Nodererence Explorer module and the dependent modules (see the module info file for dependencies).
- You should now be able to select the "Explorer" widget when attaching a nodereference or link field to a content type.
- Field settings:
- Content: Choose the field preview display from the list the displays (depends on choosen View).
- Dialog: Specify dialog related settings here, e. g. title or window size. Choose a dialog theme from the available options. Note that you might specify a CSS scope for certain themes.
- Global settings (two possibilities):
- Content types that can be referenced: A default view shipped with the module will be referenced with
three displays: table, grid and list. Use this as a starting point for your custom view. - View used to select the nodes: A customized view can be referenced here. Be aware to create a view with
displays having a table (selectable) or fields (selectable) plugin. Otherwise view items cannot be selected
visually and logically. Note that the default display will not be rendered.
- Content types that can be referenced: A default view shipped with the module will be referenced with
- Finally, save the settings and optionally the view.
- Now go to the edit page of your content type instance via 'Create Content' or 'Content Management->Content'.
You should now see one or more enhanced autocomplete input fields. Choose your content via the dialog box you open with 'Browse...' and delete the reference with 'Remove'. Have fun using the exposed filters for exploring the content.
Foundation and motivation
The basic functionality of referencing nodes is provided by CCK. Its inbuilt nodereference widgets, i.e. the select list, option boxes or autocomplete, are rather simple and don't offer advanced search functionality in retrieving the desired content effectively. Rich widgets with a similiar approaches as the Nodereference Explorer are implemented by the modules Noderelationships, Node Reference Views Select, Nodereference popup and CCK Node Reference ASM Select.
The explorer widget is built on top of the Node Reference module. It simply enhances the autocomplete widget with a modal jQuery dialog (see demo screenshot) and a detailled node preview. The dialog supplies a content browser which displays the content items in various styles: table, grid (thumbnail), list or unformatted. An advanced filter form lets the user explore and search for content items which can be selected by a simple mouse click. The filtering options and the content displays are completely customizable as they heavily rely on Views.
History
- Version 1.0 (Alpha release): Patchwork of different third party modules, like flexigrid for a browse table and aqCookie for the session. This first prototype was developed in scope of a Proof of Concept: Can Drupal offer rich user experience? The answer: Yes, with some effort.
- Version 1.1-beta1: Drupalized version solely relying on Drupal + CCK + Views + jQuery. Including of the bgiframe (IE 6 z-Index problem) plugin and switch to jQuery UI version 1.6. Still a lot of issues to be solved.
- Version 1.1-beta2: Flexibilisation of the JavaScript component (multiple field per node, quite working add more button). Theming concept and built-in theme has been reengineered as well as critical issues have been resolved. The module now support an additional Dialog API called "Modal Frame". Code is quite solid now due to the contributions of bangpound
- Version 1.1-beta3: "Add another item" button problem solved including experimental support for Link field type. This version is quite stable now.
- Version 1.1-beta4: Plugin architecture, full support for Link field type.
- Version 1.1-beta5&6: Various bug fixes
TO-DOs
- Universial CCK browser: Deploy and use the explorer widget on any field type
- Extract and separate the foundation for a 'jQuery UI Widget' module
- Use outside of CCK context
- Integration with WYSIWIG editors
- Taxonomy browser
- Port to Drupal 7 (and then into the Drupal core of course :))
"However, things may break in future releases, as we are at a early stage of development. In other words, we may change the internal design as we like: "We provide no warranty of any kind, expressed or implied."
Releases
| Official releases | Date | Size | Links | Status | |
|---|---|---|---|---|---|
| 6.x-1.1-beta6 | 2009-Aug-31 | 39.43 KB | Download · Release notes | Recommended for 6.x | |
| Development snapshots | Date | Size | Links | Status | |
|---|---|---|---|---|---|
| 6.x-1.x-dev | 2009-Aug-21 | 39.43 KB | Download · Release notes | Development snapshot | |
