Atlantic Business Technologies, Inc.

How to Get a List of your Drupal Modules

Has a client ever asked you “So what Drupal modules are we using?” With this step-by-step guide, you can now generate a list in a nice table of all of the Drupal modules a website is actively using. This jQuery snippet will help you to generate a table with links to the project page for each Drupal module.  Sign up here to receive more great tips delivered straight to your inbox, like this Drupal Module list generator.

  1. Go to http://yoursite.com/admin/modules
  2. Run the following javascript in your Console (Firebug, Developer Tools, etc – F12)

[js]
(function($, D, boxid){ /*–start–*/var $checkboxes = $(‘:checkbox’)
, $checked = $checkboxes.filter(‘:checked’)
, $dom_render_to_div = false
;
console.log($checked.length, ‘enabled modules’);

// clear old version
$(‘#’+boxid).remove();

var render = function(o, renderfn){
renderfn(o);
};
var render_to_console = function(o){
console.log(o.i, ‘Section:’ + o.s, ‘Module:’ + o.l, o.v);
};
var render_to_div = function(r){
if( false === $dom_render_to_div ){
var $container = $(‘<div id=”‘ + boxid + ‘” class=”debug”><h3>Active Modules</h3></div>’);
$container.append(‘<table></table>’).append(‘<div class=”clearfix”>Copy Above</div>’);
$container.css({
‘background-color’: ‘#FFFFFF’
, ‘left’: ‘20%’
, ‘padding’: ‘5%’
, ‘position’: ‘absolute’
, ‘top’: ‘20%’
});

$(‘body’).append($container);
$dom_render_to_div = $container.find(‘table’);
$dom_render_to_div.append(‘<tr><th>i</th><th>Section</th><th>Label</th><th>Version</th></tr>’);
}
$dom_render_to_div.append(‘<tr><td>’ + r.i + ‘</td><td>’ + r.s + ‘</td><td><a href=”https://drupal.org/project/’ + r.id + ‘”>’ + r.l + ‘</a></td><td>’ + r.v + ‘</td></tr>’);
};

$checked.each(function(i,o){
var $o = $(o);
var $row = $o.parents(‘tr’);
var section = $o.parents(‘fieldset’).find(‘legend’).text();
if( 7 == D ) section = section.replace(/Hide /i, ”);
var label = “” + $row.find(‘td:nth(1) label’).text();
var version = $row.find( 7 == D ?’td:nth(2)’ : ‘td.version’ ).text();
var iden = $row.find(‘:checkbox’).attr(‘name’).match(/][([^]]+)]/)[1];

var row = {“i”: i, “s”: section, “l”: label, “v”: version, “id”: iden};

render(row, render_to_div);
});
/*–end–*/ })(jQuery, 7, ‘module-list-debug’);
[/js]

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *