Node Link Consolidator for Drupal, a “ShareThis” approach to Node links presented by contrib modules

October 25, 2008

so, how about this:  a new simple 2-step module called “node link consolidator” – what’s it do? well, it simply allows exposed ‘node link’ items produced by both drupal core and drupal contrib modules to be consolidated into one or more ‘grouped’ sets to improve the user experience….

if you’ve been on any site that uses the “sharethis” button, then you know exactly what i’m talking about! it’s a popup, it’s fast and ajaxy feeling, but degrades when required…

i can NOT write code, but after some brief discussion with moshe (link on the right), he suggested i consolidate the notes….so here’s what i imagine as interface:

  1. drop in module
  2. activate it
  3. go to configuration via ‘content management’

Step One: create a new Node Link Group

—user names it, for example, “Subscribe Activity”

select one or more content types for this to appear on (kind of like how a cck field may be summoned once within each content type)

–based on rules and workflow for content type(s) selected (e.g. post to public, post to group(s), both public and group, etc), this selection then dynamically invokes a list of available links on such nodes by examining the content types and interacting modules:

—“Available items for Story” [selected content type from step above]
——-Subscribe to this post (*or unsubscribe if already subscribed)
——-Subscribe to posts of type Story
——-Flag content (*this would appear because, for example, flag content has made this ‘link’ available to this content type)
——-Print this (*ditto)

——-Email this (*ditto)
——-Subscribe to posts in Group X (if displayed within a Group based on content type rules/workflow)

common theme: all modules above add such links, not just notifications (which is where this discussion began)

Step Two: choose a display style


——Ajaxy Tab style with customizable header (e.g. name it “do something with this node” and click this to show grouped items in stacked list, next tab shows other groups actions – analogy: CCK Fieldgroup Tabs)
——clickable icon that pops up options (choose/upload icon), analogy: “ShareThis” – in this case user uploads the icon to use (ideally tiny, 45x45ish)
——clickable text that popus up options (instead of using icon, text prompts the popup for those who want to avoid icon use)

that’s it – 2 steps after install/enable…

other ideas: an option to select a “consolidated node link” group from within the Content Type edit interface (for example, for new content types)…

logical invocation: if many links are available to a ‘group post’ (like ‘subscribe to this group’) but the same “consolidated node link” group appears on a forum or some non-group (unentitled) content, the groupin intelligently ignores “not available in that content type” links and just presents what’s good to go…


is this approachable, or does it seem like too much workflow going on?

THE POINT: this came up within notifications as a feature request, but it is NOT just a notifications issue – this particular MODULE idea extends beyond notifications to encompass a “clean up” of all node link crap…this would solve a huge problem for tons of users and module creators who present node links (flag content, abuse, the list goes on and on and on), perhaps giving them an api or something analogous to reference the module (in much the way cck contribs are exposed to cck and so on)

so imagine you now view a Story and at bottom, instead of seeing 8 enormously long text links wrapping over three lines (depending on theme) and interrupting flow between node and comments, you instead see logical simple groups, maybe just 2 side by side like: 

Track this
—presents multiple subscriptions options in list popup, or option to add to favorites and so on
—this includes OG related option
Share this
—could be sharethis module, could be just “print this” and “email this” and “print as pdf” and “mark as favorite” etc….

i believe that this could dramatically improve the user experience as well as the admin experience because this transcends typical theming issues…themers could simply reference the object and provide unique placement if desired (e.g. put these items at top of node by default instead of bottom, inline with tags or above, or whatever…thoughts??