Adding a date (and ideally uid) to Drupal's system table site would provide the basis for significant usability improvements for administrators.

A re-playable, reversible record of all administrative changes would be a game-changing feature for Drupal. For now, simply adding a column or two to the system table will allow:

  1. listing of recently enabled modules as an administration aid ("what settings should I be configuring now?")
  2. smarter installation profile wizards regarding the order of installation
  3. a bit of site history that may be useful or interesting to administrators as development continues

Somewhat related: any thoughts about moving the info column to a separate table? Seems to have a tendency to bloat for themes. If we move less used columns to another table, we could without too much fear add an installation timestamp and user ID as well as enabled/disabled (or maybe that's what should be in system table instead of last status change time, and any recording of enabling or disabling should go elsewhere).

The main request is a way to see what modules have recently been installed. As of Drupal 5 and from what I can tell from less comprehensive looks at 6 and 7, there is no way for other modules to react to another module's installation, but this would be another way to enable the recording of module installations.

Comments

dave reid’s picture

Aha, but there will be a way to tell! See #253569: DX: Add hook_modules to act on other module status changes. This could easily be implemented as a contrib module that adds a watchdog entry whenever a module is changed.

mlncn’s picture

Thank you Dave! That's what I wanted (for Enabled Modules module, specifically).

I consider this request resolved but I'll leave it open a couple days to see if anyone wants to weigh in on:

  • Moving system table's info column to another table, and using the excellent new module status change hooks to record timestamp and other data in such a table
  • Can watchdog be made more useful for machine interpretation, rather than simply being looked at by a human (or is it already more useful than I realize?)

benjamin, Agaric Design Collective

dave reid’s picture

Benjamin, you could always pull data from the watchdog table directly. That should be pretty machine-interpretable for you. :) Using something like:

module_logger_modules_enabled($modules) {
  watchdog('modules', 'The following modules were enabled: @modules', implode(', ', $modules));
}

and then use the following sql:
SELECT * FROM {watchdog} WHERE type = 'modules' ORDER BY timestamp DESC

dave reid’s picture

Status: Active » Closed (won't fix)

Marking as wont-fix.